yabai started as a C99 rewrite of chunkwm, originally supposed to be its first RC version.
However due to major architectural changes, supported systems, and changes to functionality, it is being released separately.There are multiple reasons behind these changes, based on the experience I've gained through experimenting with, designing, and using both kwmand chunkwm. Some of these changes are performance related while other changes have been made to keep the user experience simple and more complete,attempts to achieve a seamless integration with the operating system (when possible), proper error reporting, and yet still keep the property of beingcustomizable.
yabai is officially supported on macOS High Sierra 10.13.6, Mojave 10.14.4-6 and Catalina 10.15.0. It uses a scripting-addition, which is a bundle of codethat we inject into Dock.app to elevate our privileges when communicating with the WindowServer. The WindowServer is a single point of contact for all applications.It is central to the implementation of the GUI frameworks and many other services. Because of this, System Integrity Protection must be disabled for yabai to function properly.
yabai must be given permission to utilize the Accessibility API, and will request access upon launch. The application must be restarted after access has been granted.If you are building from source or using the brew --HEAD option, it is recommended to first codesign the binary such that access can persist through builds/updates.You can read more about codesigning here.
The Mission Control setting displays have separate spaces must be enabled.
yabai stores a lock file at
/tmp/yabai_$USER.lock to keep multiple instances from launching by the same user.
yabai stores a unix domain socket at
/tmp/yabai_$USER.socket to listen for messages.
DISCLAIMER: Use at your own discretion. I take no responsibility if anything should happen to your machine while trying to install, test or otherwise use this software in any form.You acknowledge that you understand the potential risk that may come from disabling System Integrity Protection on your system, and I makeno recommendation as to whether you should or should not disable SIP.
Requires xcode-10 command-line tools.
brew tap koekeishiya/formulae
brew install yabai
brew install --HEAD yabai```
git clone https://github.com/koekeishiya/yabaimake install # release versionmake # debug version
ln -s $PWD/bin/yabai /usr/local/bin/yabai
ln -s $PWD/doc/yabai.1 /usr/local/share/man/man1/yabai.1```
sudo yabai --install-sa
yabai is a single binary application and is trivial to uninstall.
sudo yabai --uninstall-sa
Remove config and tmp files:
rm ~/.yabaircrm /tmp/yabai_$USER.lockrm /tmp/yabai_$USER.socketrm /tmp/yabai-sa_$USER.socket
brew services stop yabairm -rf /usr/local/var/log/yabai
brew uninstall yabai```
remove the cloned git-repository..```
The default configuration file is a shell-script located at one of the following places (in order):
A different location can be specified with the --config | -c argument. The configuration file consists of commands thatsend messages to the running yabai instance. To send a message, invoke yabai with the --message | -m argument.
Keyboard shortcuts can be defined with skhd or any other suitable software you may prefer.
Sample configuration files can be found in the examples directory.
Refer to the documentation for further information.
git clone koekeishiya-yabai_-_2019-11-10_11-06-32.bundle