TIL - Running yabai as a persistent tiling window manager on macOS without Homebrew services
yabai #macos #til #productivity
TL;DR
- Homebrew removed the
plistfrom theyabaiformula.
-
brew services start yabaino longer works —#plist, #service not found.
Solution: Use a custom LaunchAgent
- Create LaunchAgents folder if it doesn’t exist:
mkdir -p ~/Library/LaunchAgents
- Create a plist file
~/Library/LaunchAgents/com.yabai.yabai.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.yabai.yabai</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/yabai</string>
<string>--start-service</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
- Load the agent:
launchctl load ~/Library/LaunchAgents/com.yabai.yabai.plist
- Verify yabai is running:
yabai -m query --windows
Notes
Adjust
/opt/homebrew/bin/yabaiif Homebrew is installed elsewhere.This makes yabai start automatically at login and persist without relying on terminal sessions.
Works on macOS 13+ without disabling SIP.