Tiling Window Manger (yabai)- 3 mins
Few years ago, I posted about tiling window manager
chunkwm, which is now deprecated and no longer maintained by koekeishiya. However, now we have a newer and greater window manager
yabai, which I will be using from now onwards. Note that this is a macOS specific tiling window manager and I am installing this on macOS version 10.15.4.
1. Installing yabai
The official wiki page is a is a great place to start, as it provides you with a great overview of what you are getting into. Plus, the GitHub Wiki sidebar has just about everything you would need to get this up and running.
To enable all yabai features, we are required to disable macOS’s System Integrity Protection, the instructions is here. After that is done, you are ready to install the plugin as per instructions here.
2. Installing skhd
Now we need a hotkey/shortcut manager, which will be
skhd in this case. The install information is available on the official repo.
3. Getting Started with Example Config Files
skhdexample config files
yabaiconfig file used by koekeishiya here
skhdconfig file used by koekeishiya here
While the example config files provide a brief overview of what can be achieved. I found it more helpful to directly look at koekeishiya’s complete config. This is especially helpful if you are already used to the example bindings from
Your friends are here:
They are very well documented and easy to read. The approach I take is trial and error. Keep tweaking it until it fits your liking. Previously, I got quite used to the default bindings provided by
skhd, so I ended up porting most of them over to
5. Status Bar
While various options presented below are available, I ended up going for the second one, which is almost identical to the Bitbar extension that I used to use with
chunkwm except that this one is designed for
- spacebar which was originally shipped with yabai, but is now an independnet project on its own
- yabai/skhd helper a simple bitbar plugin that displays desktop ID and desktop mode of yabai.
- yabai-spaces a bitbar plugin which provides support for yabai
- nibar a simple Übersicht widget status bar with yabai support
6. Other Issues
Below section(s) document some of the issues I ran into while setting
6.1 Window Resizing Ignored
If you are using
iTerm2 or some other terminal application, one difference that yabai differs from chunkwm is that it does not automatically resize the window after you zoom in or out with
cmd + + or
cmd + -. According to this GitHub issue, this is not currently handled by yabai. However, we can use the following workaround as described by marcelja in the issue.
For iTerm2: In preferences --> general --> window: Adjust window when changing font size could be disabled.