12

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?

  • "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 Feb 1 '10 at 19:24
  • Upgrade to Windows 7 and you're Windows key will make you happy – Ivo Flipse Feb 1 '10 at 19:29
  • AFAIK Gnome, KDE, Xfce, and several *box variants support this either by default or with easy configuration. – Corey D Feb 1 '10 at 20:16
  • 1
  • The duplicate should be the other way around. – fixer1234 Nov 2 '16 at 3:49
8

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

AltMove screenshot

AltMove is freeware and portable.

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

  • +1 for AltDrag. – JaKu Sep 16 at 19:09
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
  • 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 Sep 1 at 18:15
  • What do you mean by scale? Resolution? DPI? windows-font-scaling? – Ярослав Рахматуллин Sep 2 at 12:19
  • Resolution scale, for example having one screen with 250% scale and another with 175% scale. – krizajb Sep 3 at 12:58
  • 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 Sep 16 at 19:09
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.

  • link-only answers are not good, since they'll become invalid when the link rots – phuclv Feb 9 at 8:06
  • I like how my link hasn't rotted, but the answer by @Kelbizzle has. :shrug: – forivall Feb 20 at 2:56
  • 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 Feb 20 at 2:59
  • 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?, meta.stackexchange.com/a/143996/230282. As of now I have no idea which "aforementioned script" it is – phuclv Feb 20 at 3:11
  • 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 Feb 21 at 0:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.