Tiling window managers on macOS?!
Here's a rabbit hole for you.
Weird YouTube serendipity suggested I look into various tiling window managers for Linux after I've been watching tutorial, reviews, and guides on server maintenance and single board computers.
Turns out there's similar stuff available on macOS. Here's a rough overview of the what -- the software -- that I found:
- Amethyst https://ianyh.com/amethyst/ (open source): Easy to install, offers shortcuts to tile windows, based on "binary partitioning" (aka you are constantly halving the spaces)
- BetterTouchTool https://folivora.ai/ (paid, available on SetApp): you can customize any input happening on your Mac. Incidentally also comes with window tiling actions, and a right-click popover on the "Full-screen" window button -- I happen to have this already, so I was experimenting with BTT in my "make this app native full-screen" attempts.
- Divvy https://mizage.com/divvy/ (paid): probably the most well-known window-space-divider thingie. You can select areas on the screen visually to put windows onto a grid. Works with shortcuts as well. Used this a lot of years ago. The habit never stuck
- yabai https://github.com/koekeishiya/yabai (free/open source): apparently also removes the window chrome, aka the window title?! Doesn't come with shortcuts, you have to use another app for shortcuts and then invoke the yabai functions. You can use Hammerspoon or a small keyboard shortcut tool called skhd or whatever you already have on your system. yabai is controlled via command line message sending.
- chunkwm https://github.com/kylef/chunkwm/ (free/open source): code base is older, apparently abandoned, but you can find articles on the web about "chunkwm" and can get a glimpse into what to do with yabai
So now that you know this does exist, why bother?
Proper automatic tiling window managers don't just put your free-floating macOS windows on a grid. That's a good first start, but you still have to deal with obstructions from other windows. Tiling window managers really manage the grid/tiles. You can often drag windows off the grid to make them floating, but windows by default spawn inside the grid and then stay there. There's no hiding of windows behind other windows, no half-overlapping. And, what I like most, you can get gaps between windows, which on macOS by default produce very obstrusive shadows. (@Will seems to enjoy them, though, so maybe it's just me).
This stuff is supposed to make keyboard navigation easier.
Imagine a workflow on a wide-screen monitor: "I want to process a PDF and take notes". So you need the PDF viewer and note-taking app to play nicely with each other. If you are a tiling window manager pro and got used to this, imagine that the idea of the layout, i.e. "I need the PDF at 1/3 and the note-taking app at 2/3 width of my monitor" quickly translates into a mixture of opening applications and laying out their windows at once.
I don't know if this is useful because fighting with macOS core functionality is often futile or error-prone.
But maybe you enjoy digging deeper into such things and benefit from this shallow overview.
The reason I'm interested in this stuff is the fact that I regularly work inside of the terminal/shell in macOS. I download and update open source code packages and execute build scripts that eventually produce the apps I ship on the internet, for example. And it became naturally to split the full (not quite, but close to) HD resolution in halves to have multiple processes running in tandem and orchestrating their output. Or just wait for 4 things that run in the background to finish and see if they are finished at a glance.
Couldn't this same mindset be useful to sometimes also tile a Firefox window with research and my todo files next to each other to process e.g. research for hardware/spare parts, and then return to maximized windows again, at the flick of a shortcut?
I'll try some time in the upcoming weeks and report back
Author at Zettelkasten.de • https://christiantietze.de/
Howdy, Stranger!
Comments
@ctietze I don't know if this has any relevance since I only skimmed the above text, but I use Moom to manage windows on my Mac and it comes with a practical set of keyboard shortcuts. It is one of those "little" utilities that works marvellously.
https://manytricks.com/moom/
Just to throw another one in the ring that is open source: https://github.com/rxhanson/Rectangle
I am using it at work where I am (sadly) forced to work on a mac.
Found some video demos!
Amethyst, for reference, but it doesn't look that interesting to me if someone considers using a window manager at all:
Yabai, on the other hand, seems to sport a couple of interesting configurations, see:
It can remove the drop shadow of windows so they play nice with each other side-by-side; and it can also draw a highlight border around the focused window. I admit, the border decoration lags behind quite a bit when you drag windows around, though. But that sounds like something I'd want to have if I switched
Author at Zettelkasten.de • https://christiantietze.de/
I use i3 for tiling on most linux systems, but I like using Magnet on macOS. Its not at all the same thing as a tiling window manager, but its closer to the experience of using one than some of the other options I've found.
I second Magnet. I wanted something similar to the Windows snap feature, which this gives, but having keyboard shortcuts to switch windows between monitors etc is a game changer if your workflow requires using 2 monitors
I've used Moom for a long time. Brett Terpstra also uses it, and he is about as geeky as you can get! https://brettterpstra.com/2020/09/14/using-moom-with-bunch-for-window-management/ Another option is Mosaic.
Oh, and of course Keyboard Maestro will do all sorts with windows.