There is no shortage of apps to help you arrange windows. I find them tremendously useful. Most Windows (the operating system) users I know quite like the built-in abilities it has to position windows, but there isn’t as much of that built into OS X. OS X El Capitan (10.11) brought some split screen stuff, but it has quite a few limitations and certainly isn’t fulfilling all the needs of the discerning nerd.
So let’s look at the options! Fair warning: this page has a bunch of super-huge GIF files on it, as I thought that would be a useful way to show off these apps features.
SizeUp
SizeUp ($12.99) calls itself “The missing window manager”.

My favorite part: smart defaults. For me, 95% of my use of these tools is “YOU! Left Side! You! Right Side!”, so the very simple default built-in commands for this are great. If you’re more into menu controls, that’s nicely designed with good defaults as well:

Cinch
Cinch ($6.99) is by the same company as SizeUp (Irradiated Software). Rather than keyboard commands for resizing windows, it works by having hot zones along the edges of the screen. When you drag the screen against an edge, it will snap to cover that side of the screen.

Things to know: They say it works best with single-monitor setups. You can use it in conjunction with a keyboard-shortcut-based window manager together, although you may end up preferring one or the other.
Spectacle
Spectacle (free, donation requested) is pretty similar to SizeUp.

It has great defaults for immediately whooshing windows to halves, thirds, or quarters of the screen. The default key commands use the Option key (instead of without, like SizeUp), but you may prefer that. The key commands are also customizable in the preferences.
Better Snap Tool
Better Snap Tool ($2.99) is a lot like Cinch, what with the “hot zones” for resizing windows into position:

Better Snap Tool is highly configurable. You can create totally arbitrary area to snap windows to. You can control the spacing of window snapping pixel-by-pixel. You can disable it with a customizable keyboard shortcut. You can style the look of it. You can add custom menus to buttons for custom click-types. If customizing is your thing, this is probably for you:

Better Touch Tool can do window snapping as well. I think it’s everything Better Snap Tool can do, only way more, like customizing trackpad gestures and tons of other inputs types to do custom things.
Divvy
Divvy ($13.99) takes a novel approach to window resizing. It gives you a little grid where you quickly draw where you want the window to go. This allows for custom layouts quickly without custom configuration ahead of time.

You activate it either by pressing the icon in the menu bar, or setting a global shortcut key command. You can customize how fine-grained you want the grid to be, as well as set custom keyboard shortcuts for pre-defined placements of windows.
HyperDock
HyperDock ($6.95) offers a bunch of features to enhance how the Dock works. For example, showing bubble windows of all that applications windows when you hover over an app icon, as well as special control windows for certain apps.
It also has window management tools, including key commands to snap windows into place, and edge snapping.

One cool little feature is that scrolling in the title bar can do actions, like snapping up and down and even changing what space the window is in.
Moom
Moom ($10) is quite powerful in that it can do any feature we’ve already covered, and more. One of it’s unique features is that it shows a menu as you hover over the maximize button on a window:

Those actions can be fired on the active window from customizable keyboard commands as well, or from the menu bar menu if you choose to run that app that way. You can choose to run the app as a normal app (dock), menu bar app, or without any non-keyboard access at all.
You can also enable window-edge snapping (like Cinch/Better Snap Tool) if you like. If you use multiple screens, you can have it ignore the edges that border others. If you don’t like the position it snapped to, slightly moving it away will reset it’s size.
You can set multi-application window “snapshots” in Moom, meaning with a single action you can tell windows from several apps to move into place.

The real power in Moom comes from building your own custom actions. Every custom action is available in the menu bar menu as well as a secondary shortcut after you’ve activated the global Moom hot key (which is also customizable). These actions can be snapping to a grid (you can draw out grids like Divvy), nudging windows around, centering… whatever.

My favorite: you can have Moom kick in a custom action when you plug in X screens. So if you sometimes work with just a laptop, and sometimes work with a monitor, Moom can snap the windows into place when you plug in that monitor.
Breeze
Breeze ($3.99) is all about “saved states” for windows. You place windows where you want them, the save/name/apply shortcut to it so you can snap back to it whenever you want.

It’s only for single windows though… fairly limited compared to what most of these other apps do.
Magnet
Magnet ($1.99) is beautifully designed and, likely, intentionally limited in what it can do. It does edge-snapping to halfs or quarters, and can do the same through the menu bar menu.

Looks like a few bonus features there, like maximizing and shooting the window to the next display over.
Zooom/2
Zooom/2 ($19.95) has yet-another slightly different approach:
The principal idea is simple: hold a key combination – then move the mouse. … you only need to know two key combinations and you’re fully trained!
And it has other unique features, like “raising windows” to the top as you mouse over them.
OS X (El Capitan)
As I said at the top of this article, Windows users enjoy some window management functionality built right into the OS. As of OS X 10.11 El Capitan, Mac users do too. The trick to use it is the hold down the full screen button on the window and it’ll let you drag the window to the side you want, then select another of the open windows to be the other side.

AppleScript
AppleScript is built into OS X and is certainly capable of resizing and repositioning windows. Here’s Arley McBlain with a script he wrote for repositioning things to his liking. It’s even attached to an Alfred workflow.
@chriscoyier Screenshot of the AppleScript layout workflow: pic.twitter.com/g9kFi5fak6
— Arley McBlain (@ArleyM) January 2, 2016
Honorable Mentions: For The Hardcore
There is a whole variety of lower-levels tools for doing window management, but also more “productivity” related things. For example, Mjolnir is “Lightweight automation and productivity app for OS X”. It allows you do install modules which allow you control/API access to certain things. Then you can write you own code to do stuff.
Presumably this (from the docs) nudges windows 10px to the right?
local application = require "mjolnir.application"
local hotkey = require "mjolnir.hotkey"
local window = require "mjolnir.window"
local fnutils = require "mjolnir.fnutils"
hotkey.bind({"cmd", "alt", "ctrl"}, "D", function()
local win = window.focusedwindow()
local f = win:frame()
f.x = f.x + 10
win:setframe(f)
end)
Hammerspoon looks extremely similar, execpt maybe it comes with pre-packaged modules? I dunno this stuff is over my head.
Hammerspoon is a desktop automation tool for OS X. It bridges various system level APIs into a Lua scripting engine, allowing you to have powerful effects on your system by writing Lua scripts.
Phoenix is “A lightweight OS X window and app manager scriptable with JavaScript”
You can also easily use languages which compile to JavaScript such as CoffeeScript. Phoenix aims for efficiency and a very small footprint. If you like the idea of scripting your own window or app management toolkit with JavaScript, Phoenix is probably going to give you the things you want. With Phoenix you can bind keyboard shortcuts and system events, and use these to interact with OS X.
Slate, “A window management application” looks like it it was trying to be a native app competitor:
Slate is a window management application similar to Divvy and SizeUp (except better and free!). Originally written to replace them due to some limitations in how each work, it attempts to overcome them by simply being extremely configurable.
It looks like it both still has fans but hasn’t been touched in a while and requires some dedicated nerdery.
ShiftIt looks like it’s in the same boat. Updated slightly more recently, but you still need to kinda know what you’re doing. Even downloading the build warns you about it being created from an untrusted source so you have to do the dance to get around that.
Just Drag Things Around With Your Dang Ol’ Mouse
@chriscoyier I drag them from monitor to monitor as needed?
— Norcross ☕️ (@norcross) January 1, 2016
Thanks!
For all the suggestions. Let us know what you use and how in the comments.
Personally, I’ve been on SizeUp for a long time. But I’m kinda thinking of trying a switch to Moom.
I’m a little envious of Windows for this tool:
Because:
Chris, about your super-huge gifs: Why aren’t you using HTML5 video instead, perhaps with a gif backup?
I’ve been using Better(Touch|Snap)Tool for years and it’s one of my must have apps for OSX (along with ExtraFinder).
In addition to Window Snapping, BetterTouchTool allows for arbitrary number of keyboard shortcuts, mouse and touchpad gestures to be bound to anything from OSX functions to custom scripts. It even supports Siri commands!
Add to that, the low low price of $2.99 (BetterTouchTool was free until recently. Now it’s a pay-what you-want licence) and imho it beats most similar apps out there.
It’s still under development in this fork.
I us spectacle. It’s free and does what it is supposed to do. I wouldn’t pay money for such a basic functionality.
This is what I call solid article Chris. You did amazing job putting all these goodies together.
I’m a longterm Divvy user. Maybe there are some more powerful tools, Divvy does everything that I need. Custom shortcut ‘alt + d’ to trigger Divvy, then arrow keys to align to edges or 1, 2, 3 or 4 to position to full screen, centred, 2/3 left (my Sublime Text room) and 1/3 (iTerm). Takes only 5mb and never broke.
I was surprised not finding a Tiling WM on that list. On GNU/Linux Awesome WM is the most famous one (b/c it’s awesome? ^^). For small keyboards, managing everything without a mouse is helpful in being productive.
Doing a quick search, KWM turns up most often (filtered by hits not older than one year).
I’ve been using Moom for at least two years now. It’s just very comfortable to work this way. If you’re like me and hate the small gaps and irregularities that occur from manually sizing and placing windows, you’re going to enjoy using such a tool a lot :)
Kinda cool that hyperdock has functionality of snapping, never used it, now i will use it every day :)
Or you could use KDE, Mate, … on other OSs.
(Divvy’s and Moom’s grids look cool, though!)
Spectacle is great. Switch between monitors, resize windows to halfs, thirds and quarters with customizable keyboard shortcuts, and it’s free!
I guess the one thing it doesn’t do that I could see being really useful is remembering your window placement, but then it literally takes 10 seconds to use Spotlight to open everything and put/resize the windows without using a mouse so no big deal really.
I’ve been a very happy Spectacle user for the last two years and all my team started using it after seeing it into action.
In addition Spectacle is the only open source (github) of all the softwares listed.
I’d like to add that all the WMs listed are available for installation through homebrew-cask except BetterSnapTool and Magnet that are both only available in the Mac App Store.
Slate has a community maintained fork : https://github.com/mattr-/slate which has much less visibility. This project is what led me to write Lovely Forks chrome/Firefox extension so that I don’t miss such notable forks : https://github.com/musically-ut/lovely-forks
~
ut
If you want to go full-on window manager, kwm is by far the most powerful manager I’ve used.
As for the whole Mjolnir/Hammerspoon thing, I’m pretty sure they’re almost functionally identical, but Hammerspoon is more actively developed.
I just started using Hammerspoon. It’s super super flexible and allows you to do just about anything you like, but definitely has a bit of a learning curve. I wish there was more of a community, more examples of people doing cool stuff with it.
I was a “mostly a Windows user” that became “mostly an OSX user,” and hence the world of window management took a very different shape. I’ve been using Spectacle and it’s made a world of positive difference!
I’d like to find a tool that made the same positive difference for the visual aspects of OSX file management. That’s another experience that took a different shape did become more difficult for me when I made the switch. It’s not by any means terrible and I use it all the time. Still, I’d love some tooling that streamlined the experience.
Thanks for this roundup!
I’ve never used a windows manager, though once upon a time, I tried setting up Spaces in Leopard/Snow Leopard. It felt like more work to try to improve my productivity than it was worth.
I think I’d be a lot more productive using one of these, but having never used any tool like it, I’m not grasping which one might be better for my work style.
looks like you have forgotten one:
Optimal Layout http://most-advantageous.com/optimal-layout/
been using it for a looong time (used to be WindowFlow) is fully el capitan compatible (chrome has minor pblms).
over the year i tried a couple from your list but always returned to OL.
What about http://www.nulana.com/flexiglass/ ? I’m using this nice tool since OSX Mavericks. It works even with El Capitan. I’m a heavy “Shortcutler” and want no mouse tricks to move my windows.. For me, this app is missing in this overview! (I’m just a customer which buy Flexiglass over the Apple Mac Store – no employee ;-] )
Anybody has tested it and compared to other apps?