9

I like using keyboard shortcuts because it's faster as it does not force me to move my hands off the keyboard.

In Windows I can use them to move windows around desktop:

  1. Press Alt+Space to open common windows menu
  2. Press M to choose "Move" command
  3. Navigate window position by cursor keys
  4. Confirm new position with Enter

Additionally, to achieve better accuracy, I can hold Ctrl while navigating.

Now the problem is that the normal "step" when moving is about 20px, and my desktop is quite large, so "walking" all the way across takes quite a long time. This kind of defeats the purpose of using keyboard for these tasks.

Is it possible to change size of this step so that takes less steps to walk the same distance? (I imagine a hidden setting in Windows registry...?)

I tried holding Alt while navigating, but it does not seem to have influence on speed.

1
  • Didn't know about the Ctrl modifier for this! But anyways, I usually only use this when there is no mouse or if the window has disappeared outside my screen for some reason. I find moving windows with the mouse a lot easier and quicker. What I do use though, are Win+Left/Right arrow for "maximizing" windows on the left and right side of the screen and Win+Shift+Left/Right arrow to move windows between monitors :)
    – Svish
    Mar 22, 2012 at 12:24

4 Answers 4

2

If you feel like completely reworking the windowing paradigms towards dynamic tiling, consider an AutoHotkey script called "bug.n". You'll like it if you prefer manipulating windows via keyboard.

2
  • Thanks! That looks nice, I'll definitely give it a try. However, for now, I'm not sure how it would work with my current "Laurel-Hardy" :D monitor set-up (classic 4:3 on the left and a 9:16 on the right) Mar 23, 2012 at 20:02
  • The paradigm itself works stupendously well in any monitor configuration but I haven't used Windows (with bug.n) so I can't be sure about multi-display setups.
    – mike3996
    Mar 24, 2012 at 9:55
1

Moving by keyboard like you do is precise, but is tedious.

If you typically move your windows to certain positions and sizes, then try GridMove. You can either define your own grid (window position and sizes) or use the predefined ones. Each of these is called a tile. After that you can snap any active window by pressing Win+2 where 2 is the tile number you want it to snap into. Press Win+G to see the tiles and their numbers in the current grid.

0

On Windows 7, you can use the Windows Key + Arrow key to move the windows around.

I'm not sure how many pixels it shifts them over at a time, but it's more than 20.

3
  • Just as Svish mentioned, those are used for maximizing and moving between Windows. I do use them a lot, but they won't help me if I need to arbitrarily arrange multiple smaller windows, which is what I do a lot when coding (e.g. I lay around multiple smaller windows with notes, tests and similar things and code in one or more bigger windows, constantly peeking art the small ones). Mar 22, 2012 at 12:36
  • Windows key + up or down will maxmimise or minimise the window, but left/right will shift them very quickly across the screen. Apr 1, 2012 at 0:29
  • Win+Left/Right is the snap feature, which snaps windows to the left or right half of the screen and doesn't relate to pixel
    – phuclv
    Mar 18, 2019 at 0:07
0

Not quite on topic, but I feel it is still relevant and worth sharing.

I use AutoHotKey and a "KDEStyle" script that I found long ago and have adapted to improve the use of the mouse for this purpose.

  • Win + Left Click
    • Allows you to move the window by clicking anywhere inside it.
  • Win + Right Click
    • Allows you to resize the window using the closest corner - again clicking anywhere inside it.

This significantly reduces the required precision, and in my opinion makes it much easier and faster to use the mouse for such purposes.

#LButton::
    MouseGetPos,KDE_X1,KDE_Y1,KDE_id
    WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
    if KDE_Win
        return
    WinGetPos,KDE_WinX1,KDE_WinY1,,,ahk_id %KDE_id%
    loop {
        GetKeyState,KDE_Button,LButton,P
        if KDE_Button = U
            break
        MouseGetPos,KDE_X2,KDE_Y2
        KDE_X2 -= KDE_X1
        KDE_Y2 -= KDE_Y1
        KDE_WinX2 := (KDE_WinX1 + KDE_X2)
        KDE_WinY2 := (KDE_WinY1 + KDE_Y2)
        WinMove,ahk_id %KDE_id%,,%KDE_WinX2%,%KDE_WinY2%
    }
    return

#RButton::
    MouseGetPos,KDE_X1,KDE_Y1,KDE_id
    WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
    if KDE_Win
        return
    WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
    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
        if KDE_Button = U
            break
        MouseGetPos,KDE_X2,KDE_Y2
        WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
        KDE_X2 -= KDE_X1
        KDE_Y2 -= KDE_Y1
        WinMove,ahk_id %KDE_id%,, KDE_WinX1 + (KDE_WinLeft+1)/2*KDE_X2
                                , KDE_WinY1 +   (KDE_WinUp+1)/2*KDE_Y2
                                , KDE_WinW  -     KDE_WinLeft  *KDE_X2
                                , KDE_WinH  -       KDE_WinUp  *KDE_Y2
        KDE_X1 := (KDE_X2 + KDE_X1)
        KDE_Y1 := (KDE_Y2 + KDE_Y1)
    }
    return

Standard Windows keyboard combinations then complement this and allow you to:

  • Win + Up / Down
    • Maximise / Restore / Minimize
  • Win + Left / Right
    • Resise to left / right half of screen
  • Win + Shift + Left / Right
    • Move one monitor left / right
  • etc...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .