# 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 ''; }; }