nixos-config/modules/core/yabai.nix

82 lines
2.5 KiB
Nix
Raw Permalink Normal View History

2026-02-09 22:33:44 +01:00
{
config,
pkgs,
lib,
...
}:
{
services.yabai = {
enable = true;
enableScriptingAddition = true;
config = {
# external_bar = "all:0:0";
layout = "bsp";
auto_balance = "on";
window_placement = "second_child";
window_opacity = "off";
window_border = "on";
window_border_placement = "inset";
window_border_width = 8;
2026-02-09 22:33:44 +01:00
window_border_radius = 3;
window_shadow = "float";
active_window_opacity = "1.0";
normal_window_opacity = "0.7";
2026-02-09 22:33:44 +01:00
2026-02-13 12:55:25 +01:00
mouse_modifier = "alt";
2026-02-09 22:33:44 +01:00
# set modifier + right-click drag to resize window (default: resize)
mouse_action2 = "resize";
# set modifier + left-click drag to resize window (default: move)
mouse_action1 = "move";
2026-02-17 21:58:23 +01:00
mouse_follows_focus = "on";
2026-02-09 22:33:44 +01:00
focus_follows_mouse = "autofocus";
2026-02-17 21:58:23 +01:00
mouse_drop_action = "swap";
2026-02-09 22:33:44 +01:00
# gaps
top_padding = 12;
bottom_padding = 12;
left_padding = 12;
right_padding = 12;
2026-02-13 12:55:25 +01:00
window_gap = 16;
2026-02-09 22:33:44 +01:00
};
extraConfig = ''
# workspace management
yabai -m space 1 --label web
yabai -m space 2 --label terminal
yabai -m space 6 --label config
yabai -m space 7 --label notes
yabai -m space 8 --label chat
yabai -m space 9 --label music
yabai -m space 10 --label mail
yabai -m rule --add app="Element" space=chat
yabai -m rule --add app="Signal" space=chat
yabai -m rule --add app="Spotify" space=music
yabai -m rule --add app="Calendar" space=mail
yabai -m rule --add app="Mail" space=mail
yabai -m rule --add app='About This Mac' manage=off
yabai -m rule --add app='System Information' manage=off
yabai -m rule --add app='System Preferences' manage=off
2026-02-13 12:55:25 +01:00
yabai -m rule --add label="Select file to save to" app="^Gimp$" title="Select file to save to" manage=off
yabai -m rule --add app=".*" sub-layer=normal
yabai -m rule --add app="^System Settings$" manage=off
yabai -m rule --add app="^System Information$" manage=off
yabai -m rule --add app="^System Preferences$" manage=off
yabai -m rule --add title="Preferences$" manage=off
yabai -m rule --add title="Settings$" manage=off
yabai -m rule --add app="Finder$" manage=off
2026-02-09 22:33:44 +01:00
yabai -m signal --add event=dock_did_restart \
action="sudo yabai --load-sa"
sudo yabai --load-sa
2026-02-17 21:58:23 +01:00
yabai -m config external_bar all:34:0
2026-02-13 12:55:25 +01:00
exec ~/.config/borders/bordersrc &
2026-02-17 21:58:23 +01:00
spacebar &
2026-02-09 22:33:44 +01:00
'';
};
}