80 lines
2.9 KiB
Nix
80 lines
2.9 KiB
Nix
# Yabai window manager configuration (macOS only)
|
|
# Note: Yabai is a system-level service and should be configured through nix-darwin
|
|
# This file only installs the package for home-manager
|
|
{
|
|
inputs,
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: {
|
|
# Install yabai package for user
|
|
home.packages = lib.mkIf pkgs.stdenv.isDarwin [
|
|
pkgs.yabai
|
|
];
|
|
|
|
# Create yabai config file
|
|
home.file.".yabairc" = lib.mkIf pkgs.stdenv.isDarwin {
|
|
text = ''
|
|
#!/usr/bin/env sh
|
|
|
|
# layout
|
|
yabai -m config layout bsp
|
|
yabai -m config auto_balance off
|
|
yabai -m config split_ratio 0.50
|
|
yabai -m config window_placement second_child
|
|
|
|
# Gaps
|
|
yabai -m config window_gap 18
|
|
yabai -m config top_padding 18
|
|
yabai -m config bottom_padding 52
|
|
yabai -m config left_padding 18
|
|
yabai -m config right_padding 18
|
|
|
|
# shadows and borders
|
|
yabai -m config window_shadow float
|
|
|
|
# mouse
|
|
yabai -m config mouse_follows_focus off
|
|
yabai -m config focus_follows_mouse off
|
|
yabai -m config mouse_modifier option
|
|
yabai -m config mouse_action1 move
|
|
yabai -m config mouse_action2 resize
|
|
yabai -m config mouse_drop_action swap
|
|
|
|
# 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
|
|
'';
|
|
executable = true;
|
|
};
|
|
}
|