{ config, pkgs, lib, ... }: { # Enable yabai service # Caution: at the very least yabai requires Accessibility permissions to be granted # https://github.com/koekeishiya/yabai/issues/2688 services.yabai = { enable = true; config = { layout = "bsp"; focus_follows_mouse = "autoraise"; window_placement = "second_child"; window_topmost = "on"; window_shadow = "float"; # by default, set balanced split ratio and auto balance => three windows will be evenly spaced on an ultrawide monitor split_ratio = "0.50"; auto_balance = "on"; mouse_modifier = "alt"; mouse_action1 = "move";# mouse_action2 = "resize"; window_opacity = "on"; normal_window_opacity = 0.9; top_padding = 0; bottom_padding = 0; left_padding = 0; right_padding = 0; window_gap = 10; }; extraConfig = '' # Example: rules for floating windows yabai -m rule --add app="System Preferences" manage=off ''; }; # # Enable skhd service # services.skhd = { # enable = true; # package = pkgs.skhd; # skhdConfig = '' # # Focus windows with Command + Arrow keys # cmd - left : yabai -m window --focus west # cmd - right : yabai -m window --focus east # cmd - up : yabai -m window --focus north # cmd - down : yabai -m window --focus south # # Swap windows with Command + Shift + Arrow keys # cmd + shift - left : yabai -m window --swap west # cmd + shift - right : yabai -m window --swap east # cmd + shift - up : yabai -m window --swap north # cmd + shift - down : yabai -m window --swap south # # Move windows with Command + Control + Arrow keys # cmd + ctrl - left : yabai -m window --warp west # cmd + ctrl - right : yabai -m window --warp east # cmd + ctrl - up : yabai -m window --warp north # cmd + ctrl - down : yabai -m window --warp south # # Resize windows with Command + Option + Arrow keys # cmd + alt - left : yabai -m window --resize left:-50:0 # cmd + alt - right : yabai -m window --resize right:50:0 # cmd + alt - up : yabai -m window --resize top:0:-50 # cmd + alt - down : yabai -m window --resize bottom:0:50 # # Toggle window float with Command + F # cmd - f : yabai -m window --toggle float # # Toggle window fullscreen with Command + Enter # cmd - return : yabai -m window --toggle zoom-fullscreen # ''; # }; }