Files
2026-01-19 01:23:12 +08:00

75 lines
2.5 KiB
Nix

# Yabai window manager configuration (nix-darwin service)
{
config,
lib,
pkgs,
...
}: {
services.yabai = {
enable = true;
config = {
# Layout
layout = "bsp";
auto_balance = "off";
split_ratio = 0.50;
window_placement = "second_child";
# Gaps
window_gap = 18;
top_padding = 18;
bottom_padding = 52;
left_padding = 18;
right_padding = 18;
# Shadows and borders
window_shadow = "float";
# Mouse
mouse_follows_focus = "off";
focus_follows_mouse = "off";
mouse_modifier = "alt";
mouse_action1 = "move";
mouse_action2 = "resize";
mouse_drop_action = "swap";
};
extraConfig = ''
# Emacs (emacsMacport) - explicitly manage for proper tiling
yabai -m rule --add app="^Emacs$" manage=on
# rules - apps to ignore (manage=off)
yabai -m rule --add app="^Genshin Impact$" manage=off
yabai -m rule --add app="^LuLu$" manage=off
yabai -m rule --add app="^Vimac$" manage=off
yabai -m rule --add app="^Calculator$" manage=off
yabai -m rule --add app="^Software Update$" manage=off
yabai -m rule --add app="^Dictionary$" manage=off
yabai -m rule --add app="^VLC$" manage=off
yabai -m rule --add app="^System Preferences$" manage=off
yabai -m rule --add app="^zoom.us$" manage=off
yabai -m rule --add app="^Photo Booth$" manage=off
yabai -m rule --add app="^Archive Utility$" manage=off
yabai -m rule --add app="^Python$" manage=off
yabai -m rule --add app="^LibreOffice$" manage=off
yabai -m rule --add app="^App Store$" manage=off
yabai -m rule --add app="^Steam$" manage=off
yabai -m rule --add app="^Alfred$" manage=off
yabai -m rule --add app="^Activity Monitor$" manage=off
yabai -m rule --add app="^Raycast$" manage=off
# Finder dialogs
yabai -m rule --add label="Finder" app="^Finder$" title="(Co(py|nnect)|Move|Info|Pref)" manage=off
# Safari dialogs
yabai -m rule --add label="Safari" app="^Safari$" title="^(General|(Tab|Password|Website|Extension)s|AutoFill|Se(arch|curity)|Privacy|Advance)$" manage=off
# System dialogs
yabai -m rule --add label="About This Mac" app="System Information" title="About This Mac" manage=off
# Inkscape dialogs
yabai -m rule --add label="Select file to save to" app="^Inkscape$" title="Select file to save to" manage=off
'';
};
}