132
30
In Windows 7, I know you can do Windows + Left to put a window in the left half of the screen. Is there a feature that will do top and bottom?
132
30
In Windows 7, I know you can do Windows + Left to put a window in the left half of the screen. Is there a feature that will do top and bottom?
78
No. The only snap options available are:
Edit: other awesome combinations you might like:
7In Windows 10 there is now another option: After snapping to the left or right, you can press up
or down
, e.g. to snap to the top-left. Not what the OP wanted, but maybe helpful for others. – Andre – 2016-05-19T14:11:10.440
no "full screen width snap?" -_- – Shayan – 2019-02-14T19:08:15.083
For the downvoter, this is the correct answer for Windows 7. Windows 10 has new snap options... – Joseph Hansen – 2019-02-15T21:07:43.893
Neat, I was trying to figure out how to keep the vertical position fixed but allow horizontal movement without using left/right screen snap and having to readjust window width, and full screen height snap does exactly what I wanted. – JAB – 2014-02-05T12:42:42.183
5Oh, just discovered that double-clicking the top edge of the title bar (i.e. when the vertical double-ended arrow is displayed) also does screen height snap. – JAB – 2014-02-05T16:50:23.633
60
I use the following steps to accomplish this:
Note: You must minimize any windows that you don't want stacked. This is what step 1 is intended to do.
1
This is really useful. I know this since win 98 but I've never actually used it in win 7, because in win XP and prior versions you can select taskbar buttons to choose which windows to stack but that doesn't work anymore in Windows 7 so when I select the option it'll stack all windows on screen. Blog technet: did you know: show windows stacked, cascaded or side by side
– phuclv – 2016-08-19T03:42:02.323This is useful, but it will stack all windows in all monitors. – Leo – 2016-12-12T01:14:02.207
This still works for Windows 10 as well. – snickers10m – 2017-09-23T08:32:04.180
@Leo - and across all Desktops too. Interesting :) – J Bryan Price – 2018-07-19T18:49:16.487
22
I wrote a little AutoHotKey script to snap the windows top and bottom because I was frustrated about this too. You can download it from my website: http://www.pixelchef.net/how-snap-windows-horizontally-windows-7
; Move window up (Windows + Shift + UP ... NOTE must maximize window first)
+#Up::
WinGetPos,X,Y,W,H,A,,,
WinMaximize
WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,
; if this is greater than 1, we're on the secondary (right) monitor. This
; means the center of the active window is a positive X coordinate
if ( X + W/2 > 0 ) {
SysGet, MonitorWorkArea, MonitorWorkArea, 1
WinMove,A,,X,0 , , (MonitorWorkAreaBottom/2)
}
else {
SysGet, MonitorWorkArea, MonitorWorkArea, 2
WinMove,A,,X,0 , , (MonitorWorkAreaBottom/2)
}
return
; Move window down (Windows + Shift + DOWN ... NOTE must maximize window first)
+#Down::
WinGetPos,X,Y,W,H,A,,,
WinMaximize
WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,
; if this is greater than 1, we're on the secondary (right) monitor. This
; means the center of the active window is a positive X coordinate
if ( X + W/2 > 0 ) {
SysGet, MonitorWorkArea, MonitorWorkArea, 1
WinMove,A,,X,MonitorWorkAreaBottom/2 , , (MonitorWorkAreaBottom/2)
}
else {
SysGet, MonitorWorkArea, MonitorWorkArea, 2
WinMove,A,,X,MonitorWorkAreaBottom/2 , , (MonitorWorkAreaBottom/2)
}
return
It works, but also opens the start screen in Windows 8.1. How to remedy to this issue? – Gabriel Hautclocq – 2015-08-12T12:38:45.177
2This is exactly what I was hoping to find. Thank you! I've noticed the command doesn't change the width of the window. Any way to automatically go full-screen width when it snaps up/down? – Alex P. Miller – 2016-03-11T15:24:30.890
1This does not work for me on Windows 10. I have 3 monitors, which of 2 are in vertical mode. You're explicitly talking about 2 work areas, not sure if this is the cause. Also you should mention what key combo you're supposed to press in this answer for people who don't know the AHK syntax – Joakim Söderberg – 2016-04-06T08:10:02.953
1It only works partly on my Windows 7 with one horizontal and one vertical monitor. Perfectly on the horizontal monitor, but on the vertical it seems to take the height from the horizontal one. – hardmooth – 2016-08-05T06:19:09.773
21
WindowSpace provides this functionality. To do what you're asking for:
Settings
Screenshot:
9Is the $25 license key required at some point? – ruffin – 2016-01-11T14:09:17.470
2
I prefer AquaSnap (its free or costs 9 dollar for multi monitor): https://www.youtube.com/watch?v=bOVOEebpiWc But since Windows 10 its not need anymore because the most important features are part of the OS, now.
– mgutt – 2016-12-12T07:36:18.0701AquaSnap is now $18 (if you use multiple monitors), and it does many things Win10 doesn't, such as top/bottom snap and tiling. Very cool. – isherwood – 2018-06-18T21:24:05.930
9
I don't have a windows 7 machine in front of me currently, but ever since Windows 95 (or even before possibly), there has been the option to tile windows horizontally. Minimize everything but two windows you want to view top and bottom, right click the task bar, and select Tile Windows horizontally. It will size each window to take up half the vertical screen area. This is not useful to do to a single window, and as another answer stated, there is no keyboard shortcut for it, but I find it handy sometimes.
Correction: on Windows 7, this is called "Show windows stacked"
9
Similar to northben, I also wrote an AutoHotKey script, albeit a bit differently so I thought it deserved its own answer. This script should work with any number of monitors or monitor orientations.
The commands are bound to Windows + Ctrl + Up and Down instead of Shift so as not to interfere with the existing Windows + Shift + Up.
This works similar to full screen height snap (Windows + Shift + Up) in that the window retains its horizontal position and width. This can easily be changed to work similarly to left half or right half snap (Windows + Left or Right) by uncommenting the ; WinMaximize, A
line. If you want to keep the default behavior, but sometimes use the half snap behavior, just maximize the window before snapping.
Works with Windows 7 64-bit and AutoHotKey v1.1.14.03.
;-------------------------------------------------------------------;
; Returns the maximum or minimum value for any number of inputs
; i.e. Max(5,4,7,10) will return 10
;-------------------------------------------------------------------;
Min(params*)
{
r := params[1]
for index, param in params
if (param < r)
r := param
return r
}
Max(params*)
{
r := params[1]
for index, param in params
if (param > r)
r := param
return r
}
;-------------------------------------------------------------------;
; WindowsKey+Ctrl+Up / WindowsKey+Ctrl+Down
; Resizes window to half the screen height and moves it to the top
; or bottom of whichever screen has the largest overlap.
; By default, the window retains its horizontal (x) position and
; width. To change this, uncomment the WinMaximize line.
;-------------------------------------------------------------------;
UpDownSnap(Direction)
{
; WinMaximize, A
WinGetPos, x, y, w, h, a, , ,
SysGet , Count, MonitorCount
refArea := 0
Loop, %count%
{
SysGet, m, MonitorWorkArea, %A_Index%
xo := Max(0, Min(x + w, mRight) - Max(x, mLeft))
yo := Max(0, Min(y + h, mBottom) - Max(y, mTop))
area := xo * yo
if (area > refArea)
{
monTop := mTop
monBottom := mBottom
refArea := area
}
}
; If the refArea is still equal to 0, the window does
; not overlap with any monitors. Wat?
if (refArea > 0)
{
if (direction = 1)
newY := monTop
Else
newY := (monBottom - monTop) / 2 + monTop
WinMove , a, , x, newY, w, (monBottom - monTop) / 2
}
}
^#Up::UpDownSnap(1)
^#Down::UpDownSnap(0)
1I wish this would have worked. I am getting The following variable name contains an illegal character: "params*"
. For now I am using @northben's script – bits – 2015-02-14T23:15:22.297
Thanks for this script. Super useful. I found that it wouldn't load until I removed the space between the UpDownSnap function name and the parenthesis. – Jason Dufair – 2015-06-10T15:04:06.870
Maybe that was also bits problem above. Interestingly, my own script does not have the space; I'm not sure how it got there. I have removed it, thanks. – Jason Clement – 2015-06-10T18:01:06.970
Works well in Windows 8.1 :-) – Gabriel Hautclocq – 2015-08-12T12:41:34.147
Thanks @JasonClement for your solution. I fixed a bug in your solution and posted as another answer. – Zee – 2017-12-21T20:46:53.370
@Zee That wasn't actually a bug, I designed it that way. To change, all you had to do was uncomment the ; WinMaximize, A
line. – Jason Clement – 2017-12-22T00:39:49.993
2@JasonClement if you uncomment that line, it maximized to the entire monitor (like a plain old maximize). My solution only maximizes width, keeping the 50% height. – Zee – 2017-12-29T16:03:06.443
7
The best program I've ever used that accomplishes exactly this + more is WinSplit Revolution: http://winsplit-revolution.com/
I highly recommend it, as it is extremely simple to use and it even works well with multiple monitors.
Demo video: http://winsplit-revolution.com/screenshots/videos-demos
This application is freeware and released under Creative Commons Attribution-Non Commercial-No Derivative Works 3.0.
EDIT:
It appears WinSplit is no longer available, the website has been taken over by Digital Creations AS, which has their own version of this type of software, and is no longer free
The software is still available from softonic and still works wonders on Windows 10 as of Update 1809.
https://en.softonic.com/download/winsplit-revolution/windows
I can also recommend WinSplit Revolution. I am using it since Windows 7, now under Windows 10 without any problems. – Thorsten Albrecht – 2019-10-28T18:09:25.983
5
place yours windows just about like you want --> right click on taskbar --> "show windows stacked" --> profit!
4
As Rain suggested here, PowerResizer works well. Not very customizable - you can't change keyboard shortcuts, but it's at least open source. As JoeB notes, you can press these while dragging a window: W to move up, and Z to move down. A is to move to the left, S to move to the right. Or just drag the window to the edge. Pressing 1,2,3, and 4 while dragging will do a quarter snap to a corner. I'm happy with it, try it out.
I just tried WindowSpace; if you don't mind paying $25, it's a much better solution. – leetNightshade – 2014-10-17T01:09:24.550
1There's documentation! readme.txt in the program files installation folder. Not to mention it does exactly what I wanted, which was vertical half snap. 1/4 snaps are an extra bonus! – scaryman – 2014-11-18T16:23:35.937
3
Fixed a bug in Jason Clement's solution. When the window snaps vertically, previously it would not also take up the width of the monitor. It would just stay at the current window width, but would snap to 1/2 monitor vertically. With this fix, it snaps to 50% vertical height up or down and 100% horizontal width of the monitor.
Also, for those who may not know AHK...
Hope that helps, and thanks Jason!
;-------------------------------------------------------------------;
; Returns the maximum or minimum value for any number of inputs
; i.e. Max(5,4,7,10) will return 10
;-------------------------------------------------------------------;
Min(params*)
{
r := params[1]
for index, param in params
if (param < r)
r := param
return r
}
Max(params*)
{
r := params[1]
for index, param in params
if (param > r)
r := param
return r
}
;-------------------------------------------------------------------;
; WindowsKey+Ctrl+Up / WindowsKey+Ctrl+Down
; Resizes window to half the screen height and moves it to the top
; or bottom of whichever screen has the largest overlap.
; By default, the window retains its horizontal (x) position and
; width. To change this, uncomment the WinMaximize line.
;-------------------------------------------------------------------;
UpDownSnap(Direction)
{
; WinMaximize, A
WinGetPos, x, y, w, h, a, , ,
SysGet , Count, MonitorCount
refArea := 0
Loop, %count%
{
SysGet, m, MonitorWorkArea, %A_Index%
xo := Max(0, Min(x + w, mRight) - Max(x, mLeft))
yo := Max(0, Min(y + h, mBottom) - Max(y, mTop))
area := xo * yo
if (area > refArea)
{
monTop := mTop
monBottom := mBottom
monLeft := mLeft
monRight := mRight
refArea := area
}
}
; If the refArea is still equal to 0, the window does
; not overlap with any monitors. Wat?
if (refArea > 0)
{
if (direction = 1)
newY := monTop
Else
newY := (monBottom - monTop) / 2 + monTop
WinMove , a, , monLeft, newY, (monRight - monLeft), (monBottom - monTop) / 2
}
}
^#Up::UpDownSnap(1)
^#Down::UpDownSnap(0)
You forgot to change the comment in the script, but hopefully someone will approve my edit. Nice find, this works reliably in windows 10. – Domino – 2020-02-18T23:50:41.693
If you're having issues, try changing the shortcut to LCtrl+LWin+LAlt to really avoid conflicts with existing shortcuts. <^<#<!Up::UpDownSnap(1)
should do it. And as a bonus, you can remap the same combination to also snap left and right using <^<#<!Left::Send #{Left}
– Domino – 2020-02-18T23:52:10.153
3
If you have an AMD graphics card, you can use "Hydravision."
(1) Open the Catalyst Control Center (2) Under "Desktop and Displays" click "More..." (3) Under "Hydravision" click "HydraGrid" (4) Check "Enable HydraGrid" (5) Click "Edit HydraGrid" and put grid lines where you'd like, e.g. half way up a portrait monitor (6) Apply
Now when you are working with windows, you can right click on the title bar and select "Attach to Grid," then drag it from place to place and it will snap to the grid.
I run 3x1 24" monitors in portrait mode with this setup and it's the quickest way I've found to snap windows to the top and bottom half of each monitor.
1I made the mistake of installing Catalyst Control Center to try out Hydravision. That program is a hog and I am looking for another solution. – dana – 2013-03-25T22:33:15.593
2
Check out AquaSnap. You can mouse drag as expected, use Ctrl+Mouse to resize two tiled windows at the same time, besides a host of other features.
You can also use a wide variety of hotkeys. This program overrides a few Windows defaults you are already used to using, besides changing Win+Up and Win+Down for dock to top/bottom.
WindowSpace works, but isn't nearly as nice, and can hang up for a while when you hit apply. Comparably, the free/trial version of Aquasnap Pro is a very smooth experience.
1
There is a third-party-free way to achieve this functionality, but AFAIK:
The recipe is:
Win+Down
to make one of the windows take a quarter of the screenWin+Up
to make the other window take the opposite quarter of the screenNice tip, but it's a ton of work to get it right each time. – 11101101b – 2018-07-20T19:26:55.810
1
There are lots of options provided by Windows, including STACKING, SIDE BY SIDE, and CASCADING. These are done by right-clicking an empty area on the task-bar (usually at the bottom of the screen) and selecting. Yeah, it's not a keyboard short-cut, but it's fairly close.
Don't trust me, get it straight from the horse's mouth, Microsoft here.
Also the website has a lot of other nice tidbits--many that you know, a few might be new. Hope this helps.
0
I needed to repeatedly split the two Browser Windows top and bottom in Windows 10 with a multi-monitor setup with a lot of other windows already open. Could do it manually but wanted a better solution.
I found the Chrome Extension "Tab Resize - Split Screen Layouts" extension made this super easy for me.
Just open a new Chrome Window, click the Tab Resize extension icon, pick 2x1 option. Nice and easy now.
1It looks like the person who asked the question wanted a solution that works for all programs, not just Chrome. Do you have something that does that? – Ben N – 2016-06-10T00:05:14.657
0
If you use a Dell monitor, you can install the Dell Display Manager, which has options to divide the display into a grid.
Then you can drag the window into a cell while holding down the Shift key.
0
Windowpad is super lightweight and deals with this quite nicely.
It's a standalone exe, you run it after booting, then windows key + numpad maximises to the various quarters and halves. Or if you don't have a numpad then capslock + the WASD area.
https://autohotkey.com/board/topic/19990-windowpad-window-moving-tool/
0
This is brand-specific, and means using the mouse instead of the keyboard, but if you use Dell monitors you can use Dell Display Manager (free).
It lets you split up each monitor however you want (2x1, 2x2, 4x2, whatever), then you snap windows into place in any segment. I've been using it for a few years now, and it's really good.
0
An option that I've found useful is to subdivide your monitors into virtual halfs using DisplayFusion. You set this up by doing the following:
Monitor Configuration
.vertical split
to the monitor. (You could play around with this and split your monitors up even more.)With this enabled, you should be able to use your Windows + Arrow keys to navigate your window to maximize into that new vertically split area of your monitor. I'm about to run my two 1920x1200 monitors in portrait mode once my 30" comes in and vertically snapping windows will be a necessity.
@RockPaperLizard You also must remember that Windows 7 is really old and is the only OS to have a native snap feature, to date. I have to find a third-party "extension" type script to do this on Mac, for instance. Also, Windows 10 has Snap for every direction, including corners! In other words, I think the Windows team really does try on the UX side. UI sometimes is a personality test, but UX is something Windows is historically pretty good at. – Joseph Hansen – 2016-06-23T12:28:34.677
@Joseph I actually agree that MS has had many successes in the UX arena. They were even been willing to explore new territory, although not commercially successful, with *Microsoft Bob*. Unfortunately, their successes are marred by many abject failures, the most notable being *Windows 8*. I don't know if the failure of that project was their UX team or management's refusal to listen to them. – RockPaperLizard – 2016-06-23T17:17:15.990