id = "yabai" name = "yabai" homepage = "https://github.com/asmvik/yabai" description = "A window management utility designed to work as an extension to the built-in window manager of macOS." icon = "SimpleIcons:yabai" executables = ["yabai"] platforms = ["macos"] [dotfiles] # src/misc/helpers.h, `get_config_file()`: yabai builds # `$XDG_CONFIG_HOME/yabai/yabairc` and returns it if the file exists, then # `$HOME/.config/yabai/yabairc`, then `$HOME/.yabairc`; `exec_config_file()` # runs the first one it finds. The first two are the XDG config home under its # variable and under its default, which is [configHome] — and yabai is # macOS-only, where that is `~/.config`. The third is a dotfile yabai # hard-codes in the home directory. paths = [ "[configHome]/yabai/yabairc", "~/.yabairc", ] # `yabai --start-service` installs a launchd job; the man page # (doc/yabai.asciidoc) names it # `~/Library/LaunchAgents/com.asmvik.yabai.plist`. It is generated by that # command and holds the absolute path of the yabai binary on this machine, so # it belongs to the install rather than to the user's configuration. exclude = ["~/Library/LaunchAgents/com.asmvik.yabai.plist"] # A yabairc is `yabai -m config` and `yabai -m rule` lines — gaps, layout, # padding, per-application rules and signals. Nothing in it is a credential. secret = [] # No machine_lines: layout, padding, mouse behaviour and the per-application # rules are exactly what a user wants on every Mac. `yabai -m signal --add` # can invoke a script by absolute path, but it is just as often a bare `yabai` # invocation, so a rule on it would strip a preference more often than it # caught a machine detail.