Use ALT to move windows in Windows like in Linux

13

6

In most Linux window managers, one can use the Alt key while clicking and dragging to rearrange windows. This is one of my favorite features of Linux window managers.

Is there a way to do this in Windows 7?

Corey D

Posted 2010-02-01T19:15:45.853

Reputation: 327

"one of my favorite features of some Linux window managers". FTFY. And you might want to name one or two that do it so people who aren't aware of the behavior can go try it out... – dmckee --- ex-moderator kitten – 2010-02-01T19:24:18.533

Upgrade to Windows 7 and you're Windows key will make you happy – Ivo Flipse – 2010-02-01T19:29:50.813

AFAIK Gnome, KDE, Xfce, and several *box variants support this either by default or with easy configuration. – Corey D – 2010-02-01T20:16:41.160

1

Possible duplicate of ALT + Left Click to Drag and ALT + Right Click to resize windows on Windows?

– phuclv – 2016-11-01T15:45:32.793

The duplicate should be the other way around. – fixer1234 – 2016-11-02T03:49:17.573

Answers

8

Get AltMove - it does exactly that and a lot more.

AltMove screenshot

AltMove is freeware and portable.

Molly7244

Posted 2010-02-01T19:15:45.853

Reputation:

1wow, such customize, very option :) – Ярослав Рахматуллин – 2019-01-06T00:13:01.223

1

Win-X-Move

This program makes window manipulation (moving/resizing) under MS-Windows, much easier. You can now move and resize by alt-dragging on any point of the window with the left and right mouse button respectively, as it's done on most X11 window managers.

http://winxmove.sourceforge.net/

With the app running, you can move windows simply by left clicking anywhere within them while holding down the Alt key on your keyboard. To resize windows, you hold down the Alt and Ctrl key while right clicking anywhere in the window and moving the mouse pointer in the direction you want the window to be resized.

Win-X-Move: Move Or Resize App Windows By Clicking Anywhere Within Them


AltDrag

AltDrag gives you the ability to move and resize windows in a new way. After starting AltDrag, you can simply hold down the Alt key and then click and drag any window.

This behavior already exists in Linux and other operating systems, and AltDrag was made with the mission to copy that behavior to the Windows platform, and then to further expand it with new intuitive functionality.

https://stefansundin.github.io/altdrag/

It's much more configurable and has more features than the previous one: snap windows, change transparency, change volume, multi-monitor support...


Both the above applications are portable and just need to download, extract then run

phuclv

Posted 2010-02-01T19:15:45.853

Reputation: 14 930

+1 for AltDrag. – JaKu – 2019-09-16T19:09:56.793

0

Use this autohotkey script:

  • works PERFECTLY on windows 10
  • easy to install
  • can be compiled into a standalone app

source: https://autohotkey.com/docs/scripts/EasyWindowDrag_(KDE).htm

; Easy Window Dragging -- KDE style (requires XP/2k/NT) -- by Jonny
; http://www.autohotkey.com
; This script makes it much easier to move or resize a window: 1) Hold down
; the ALT key and LEFT-click anywhere inside a window to drag it to a new
; location; 2) Hold down ALT and RIGHT-click-drag anywhere inside a window
; to easily resize it; 3) Press ALT twice, but before releasing it the second
; time, left-click to minimize the window under the mouse cursor, right-click
; to maximize it, or middle-click to close it.

; This script was inspired by and built on many like it
; in the forum. Thanks go out to ck, thinkstorm, Chris,
; and aurelian for a job well done.

; Change history:
; November 07, 2006: Optimized resizing code in !RButton, courtesy of bluedawn.
; February 05, 2006: Fixed double-alt (the ~Alt hotkey) to work with latest versions of AHK.

; The Double-Alt modifier is activated by pressing
; Alt twice, much like a double-click. Hold the second
; press down until you click.
;
; The shortcuts:
;  Alt + Left Button  : Drag to move a window.
;  Alt + Right Button : Drag to resize a window.
;  Double-Alt + Left Button   : Minimize a window.
;  Double-Alt + Right Button  : Maximize/Restore a window.
;  Double-Alt + Middle Button : Close a window.
;
; You can optionally release Alt after the first
; click rather than holding it down the whole time.

If (A_AhkVersion < "1.0.39.00")
{
    MsgBox,20,,This script may not work properly with your version of AutoHotkey. Continue?
    IfMsgBox,No
    ExitApp
}


; This is the setting that runs smoothest on my
; system. Depending on your video card and cpu
; power, you may want to raise or lower this value.
SetWinDelay,2

CoordMode,Mouse
return

!LButton::
If DoubleAlt
{
    MouseGetPos,,,KDE_id
    ; This message is mostly equivalent to WinMinimize,
    ; but it avoids a bug with PSPad.
    PostMessage,0x112,0xf020,,,ahk_id %KDE_id%
    DoubleAlt := false
    return
}
; Get the initial mouse position and window id, and
; abort if the window is maximized.
MouseGetPos,KDE_X1,KDE_Y1,KDE_id
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
    return
; Get the initial window position.
WinGetPos,KDE_WinX1,KDE_WinY1,,,ahk_id %KDE_id%
Loop
{
    GetKeyState,KDE_Button,LButton,P ; Break if button has been released.
    If KDE_Button = U
        break
    MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position.
    KDE_X2 -= KDE_X1 ; Obtain an offset from the initial mouse position.
    KDE_Y2 -= KDE_Y1
    KDE_WinX2 := (KDE_WinX1 + KDE_X2) ; Apply this offset to the window position.
    KDE_WinY2 := (KDE_WinY1 + KDE_Y2)
    WinMove,ahk_id %KDE_id%,,%KDE_WinX2%,%KDE_WinY2% ; Move the window to the new position.
}
return

!RButton::
If DoubleAlt
{
    MouseGetPos,,,KDE_id
    ; Toggle between maximized and restored state.
    WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
    If KDE_Win
        WinRestore,ahk_id %KDE_id%
    Else
        WinMaximize,ahk_id %KDE_id%
    DoubleAlt := false
    return
}
; Get the initial mouse position and window id, and
; abort if the window is maximized.
MouseGetPos,KDE_X1,KDE_Y1,KDE_id
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
    return
; Get the initial window position and size.
WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
; Define the window region the mouse is currently in.
; The four regions are Up and Left, Up and Right, Down and Left, Down and Right.
If (KDE_X1 < KDE_WinX1 + KDE_WinW / 2)
    KDE_WinLeft := 1
Else
    KDE_WinLeft := -1
If (KDE_Y1 < KDE_WinY1 + KDE_WinH / 2)
    KDE_WinUp := 1
Else
    KDE_WinUp := -1
Loop
{
    GetKeyState,KDE_Button,RButton,P ; Break if button has been released.
    If KDE_Button = U
        break
    MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position.
    ; Get the current window position and size.
    WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
    KDE_X2 -= KDE_X1 ; Obtain an offset from the initial mouse position.
    KDE_Y2 -= KDE_Y1
    ; Then, act according to the defined region.
    WinMove,ahk_id %KDE_id%,, KDE_WinX1 + (KDE_WinLeft+1)/2*KDE_X2  ; X of resized window
                            , KDE_WinY1 +   (KDE_WinUp+1)/2*KDE_Y2  ; Y of resized window
                            , KDE_WinW  -     KDE_WinLeft  *KDE_X2  ; W of resized window
                            , KDE_WinH  -       KDE_WinUp  *KDE_Y2  ; H of resized window
    KDE_X1 := (KDE_X2 + KDE_X1) ; Reset the initial position for the next iteration.
    KDE_Y1 := (KDE_Y2 + KDE_Y1)
}
return

; "Alt + MButton" may be simpler, but I
; like an extra measure of security for
; an operation like this.
!MButton::
If DoubleAlt
{
    MouseGetPos,,,KDE_id
    WinClose,ahk_id %KDE_id%
    DoubleAlt := false
    return
}
return

; This detects "double-clicks" of the alt key.
~Alt::
DoubleAlt := A_PriorHotkey = "~Alt" AND A_TimeSincePriorHotkey < 400
Sleep 0
KeyWait Alt  ; This prevents the keyboard's auto-repeat feature from interfering.
return

Ярослав Рахматуллин

Posted 2010-02-01T19:15:45.853

Reputation: 9 076

The script has huge issues with two screens using different scale. One a single screen or probably two screens with same scale it might work perfectly, unfortunately I don't have that luxury :) – krizajb – 2019-09-01T18:15:11.013

What do you mean by scale? Resolution? DPI? windows-font-scaling? – Ярослав Рахматуллин – 2019-09-02T12:19:42.150

Resolution scale, for example having one screen with 250% scale and another with 175% scale. – krizajb – 2019-09-03T12:58:26.947

It has problem when using alt-tab. You cannot select a program when alt-tab window is visible by clicking on it, which works without the script. AltDrag mentioned in another answer does both together. – JaKu – 2019-09-16T19:09:26.610

0

An improved version of the script mentioned in another answer here is available as a packaged application: KDE Mover-Sizer. As it is an Autohotkey script, I have my own heavily customized version.

forivall

Posted 2010-02-01T19:15:45.853

Reputation: 101

link-only answers are not good, since they'll become invalid when the link rots – phuclv – 2019-02-09T08:06:30.200

I like how my link hasn't rotted, but the answer by @Kelbizzle has. :shrug: – forivall – 2019-02-20T02:56:46.573

Furthermore, the full source of the linked software exceeds the post limit: "Body is limited to 30000 characters; you entered 91131."

it cannot be included. – forivall – 2019-02-20T02:59:37.820

even if it's too big you should still post a summary (and the main processing part if possible). How can I link to an external resource in a community-friendly way?, https://meta.stackexchange.com/a/143996/230282. As of now I have no idea which "aforementioned script" it is

– phuclv – 2019-02-20T03:11:34.983

you should post the main processing part of the source code of the applications you linked. link-only answers are not good, you know.

besides, you have the rep to suggest edits. you're a big boy, you can do the work – forivall – 2019-02-21T00:22:37.823