-
-
Notifications
You must be signed in to change notification settings - Fork 651
Installing yabai (latest release)
A codesigned binary release of yabai can be installed using the yabai installer script; it will always point at the latest release version.
# install yabai binary into /usr/local/bin and man page yabai.1 into /usr/local/man/man1
curl -L https://raw.githubusercontent.com/koekeishiya/yabai/master/scripts/install.sh | sh /dev/stdin
# install yabai binary into ~/Software/bin and man page yabai.1 into ~/Software/man
curl -L https://raw.githubusercontent.com/koekeishiya/yabai/master/scripts/install.sh | sh /dev/stdin ~/Software/bin ~/Software/man
Alternatively, Homebrew can also be used from the tap koekeishiya/formulae
.
brew install koekeishiya/formulae/yabai
Open System Preferences.app
and navigate to Security & Privacy
, then Privacy
, then Accessibility
. Click the lock icon at the bottom and enter your password to allow changes to the list. Starting with yabai --start-service
will prompt the user to allow yabai
accessibility permissions. Check the box next to yabai
to allow accessibility permissions.
If you disabled System Integrity Protection; configure the scripting addition. Afterwards simply start yabai.
# start yabai
yabai --start-service
To update yabai to the latest version, simply upgrade it with the yabai installer script or Homebrew (depending on the original installation method) and reconfigure the scripting addition again:
# stop yabai
yabai --stop-service
# upgrade yabai with installer script -- (with or without directory override)
curl -L https://raw.githubusercontent.com/koekeishiya/yabai/master/scripts/install.sh | sh /dev/stdin
# or
# upgrade yabai with homebrew
brew upgrade yabai
# start yabai
yabai --start-service
yabai uses the macOS Mach APIs to inject code into Dock.app; this requires elevated (root) privileges. You can configure your user to execute yabai --load-sa as the root user without having to enter a password. To do this, we add a new configuration entry that is loaded by /etc/sudoers.
# create a new file for writing - visudo uses the vim editor by default.
# go read about this if you have no idea what is going on.
sudo visudo -f /private/etc/sudoers.d/yabai
# input the line below into the file you are editing.
# replace <yabai> with the path to the yabai binary (output of: which yabai).
# replace <user> with your username (output of: whoami).
# replace <hash> with the sha256 hash of the yabai binary (output of: shasum -a 256 $(which yabai)).
# this hash must be updated manually after running brew upgrade.
<user> ALL=(root) NOPASSWD: sha256:<hash> <yabai> --load-sa
After the above edit has been made, add the command to load the scripting addition at the top of your yabairc config file
# for this to work you must configure sudo such that
# it will be able to run the command without password
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
sudo yabai --load-sa
# .. more yabai startup stuff
This wiki is a community–driven documentation page. If you want to request a topic for this wiki to address or discuss its content, head over to issue #5.
General
Installation
Configuration
Commands
Tips and Tricks
- Quickly restart the yabai launch agent
- Split yabai configuration across multiple files
- Fix spaces reordering automatically
- Fix folders opened from Desktop not tiling
- Auto updating from HEAD via brew
- Tiling Emacs
- Flash highlight to identify focused window
- Constrain space focus to current display with optional cycling