Window management and virtual desktops are, at least for me, a couple of the most important features an operating system provides in my day-to-day workflow. I do a lot of (re)arranging, resizing, and switching between windows. Being able to manage this via keyboard shortcuts is important because that’s where my hands are most of the time. I don’t want fancy gestures or GUI nonsense, I want something simple and efficient.
Unfortunately, OSX is lacking in this area out of the box - which I didn’t expect when I moved over from my linux setup 3 months ago. The good news is that I’ve found a couple of settings and (paid) apps that fill in the gaps and cover my basic requirements.
Virtual desktops on OSX are called ‘spaces’. Basically, you have a grid of spaces (I use 3x3 at the moment) in which you place groups of windows. Some of my spaces contain just one full-screen window e.g. I have one space exclusively for general web browsing, and others have multiple windows on them - my dev space has a text editor (MacVim), terminal(s), etc.
For me, the main benefit of arranging windows into separate desktops like this is that I can group them according to activities. This should (but doesn’t on OSX) mean that when I do something like cmd+tab, I’m only picking from the set of windows available on the current desktop. Instead, when you cmd+tab on OSX - you will get a list of every single application that’s running regardless of what space its on, and what’s more if you pick an application that’s in a different space (easily done) it will zoom you off to another space.
The zooming-you-off-to-another-space problem can be addressed by a spaces setting in your system preferences, by unticking the following checkbox:
Changing to show only the current space’s windows can’t be achieved by OSX alone. There’s an app that can help though called Witch. Witch has lots of settings but the two key ones for this purpose are:
Under 'Triggers’, rebind 'All applications’ to cmd+tab. It’ll give you a warning, just hit ok and ignore it.
Under 'Behavior’ untick 'List windows from all Spaces’.
There’s a couple of additional things that I got used to with my old linux setup that I didn’t get with OSX, keyboard shortcuts for:
- window resizing/positioning
- sending windows between spaces
Both of these features are provided by an app called SizeUp.
SizeUp allows you to quickly position a window to fill exactly half the screen (splitscreen), a quarter of the screen (quadrant), full screen, or centered via the menu bar or configurable system-wide shortcuts (hotkeys). Similar to “tiled windows” functionality available on other operating systems.
The necessary options can be bound under the 'Shortcuts’ tab when you open the SizeUp app.
So here’s a summary of my shortcuts (and where they’re set):
- ctrl+arrow : move space (OSX)
- ctrl+cmd+arrow : move space and bring active window (SizeUp)
- cmd+tab : switch through windows available in the current space (Witch)
- ctrl+alt+cmd+arrow : size window to half of the screen (SizeUp)
- ctrl+alt+shift : size window to quarter of the screen (SizeUp)
- ctrl+alt+cmd+m : size window to full screen (SizeUp)
I’m interested to know if anyone else use a smiliar setup, and if there are better approaches..