Mouseless MacOS Window Management - Yabai vs Amethyst
Oct 10, 20213 min read
Why do you need a window manager at all?
too much time moving windows around and wanted an easier way to snap two windows side by side or have a window be full screen without having to us MacOS spaces.
I had 4 basic shortcuts that I would use all the time
Left
Right
Full-Screen
Next Monitor
Worked well, but I found that to do most interactions I was doing I ended up needing the mouse to complete them. For example, putting two windows side-by-side would require a mouse to switch focus reliably to the other monitor.
I found out that ShiftIt was looking for a new maintainer and they were recommending Hammerspoon.
Eventually I heard about Yabai and gave it a try. It was very different to what I was using with ShiftIt, but gave a different perspective of window management. Instead of me managing my windows manually, what if they could manage themselves.
I liked the idea of this, but found it to be a bit unreliable in the MacOS Monterrey Beta which I was running, and started trying to troubleshoot it. I found that BetterTouchTool and it were having weird interactions, and once I stopped using BetterTouchTool it worked better.
While trying to troubleshoot Yabai, I came across Christopher Kapic’s Video on Yabai and he mentioned Amethyst. I dug into it and gave it a shot and it seemed to match my needs pretty well.
Here are the shortcuts I use (Note I use a hyper key caps locks that is bound to Escape on tap and changes my HJKL keys into arrow keys). This works well for me not needing to leave the home row, but your mileage may vary.
Two Layouts: Tall + Fullscreen
This lets me toggle between tiled and fullscreen which is a habit I have from my ShiftIt days
Hyper + Return: Toggle Layout
Shrink & Expand The Layout with Hyper Plus & Minus
Move window focus with Hyper ASDF
S & D move the focus forward and back on the active window
A & F move focus to the previous and next monitors accordingly
Move Windows with Hyper + ZXCV
X & C move windows around on the current screen
Z & V move windows to previous and next monitor
Lastly in order to minimize having to grab my mouse, I set up O Launching with Karabiner Elements for my most common apps
The dock being visible was required for me up until about a month ago when I tried TinkerTool and was able to make it so that it would quickly show on demand.