75 lines
2.5 KiB
Nix
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
|
|
'';
|
|
};
|
|
}
|