diff --git a/machines/universeair/yabai.nix b/machines/universeair/yabai.nix index e1da76b..7267bbf 100644 --- a/machines/universeair/yabai.nix +++ b/machines/universeair/yabai.nix @@ -10,7 +10,34 @@ services.yabai = { enable = true; config = { - + layout = "bsp"; + focus_follows_mouse = "autofocus"; + auto_balance = "on"; + + top_padding = 5; + bottom_padding = 5; + left_padding = 5; + right_padding = 5; + window_gap = 5; }; + + extraConfig = '' + yabai -m rule --add app='System Settings' manage=off + yabai -m rule --add app='Boot Camp Assistant' manage=off + yabai -m rule --add app='System Information' manage=off + ''; + }; + + # https://github.com/IvarWithoutBones/dotfiles/blob/main/modules/darwin/yabai/default.nix + # The scripting addition needs root access to load, which we want to do automatically when logging in. + # Disable the password requirement for it so that a service can do so without user interaction. + environment.etc."sudoers.d/yabai-load-sa".text = '' + universelaptop ALL = (root) NOPASSWD: sha256:${builtins.hashFile "sha256" "${pkgs.yabai}/bin/yabai"} ${pkgs.yabai}/bin/yabai + ''; + + launchd.user.agents.yabai-load-sa = { + path = [ pkgs.yabai config.environment.systemPath ]; + command = "/usr/bin/sudo ${pkgs.yabai}/bin/yabai --load-sa"; + serviceConfig.RunAtLoad = true; }; }