{ config, pkgs, ... }: let choose-pass = pkgs.callPackage ./choose-pass.nix { inherit config pkgs; }; in { services.yabai = { enable = true; package = pkgs.yabai; # enableScriptingAddition = true; enableScriptingAddition = false; config = { external_bar = "all:28:0"; layout = "bsp"; auto_balance = "off"; mouse_modifier = "fn"; mouse_action1 = "move"; mouse_action2 = "resize"; mouse_follows_focus = "on"; focus_follows_mouse = "autoraise"; window_topmost = "on"; # floating windows always on top window_shadow = "float"; window_opacity = "on"; active_window_opacity = "1.0"; normal_window_opacity = "1.0"; window_border = "on"; window_border_width = 8; active_window_border_color = "0xff458588"; normal_window_border_color = "0xff504945"; }; extraConfig = '' yabai -m rule --add app="^choose" manage=off ''; }; services.skhd = { enable = true; package = pkgs.skhd; skhdConfig = '' # ctrl + alt - return : osascript /Users/rilla/configs/scripts/osascripts/iterm.scpt ctrl + alt - return : ${pkgs.alacritty}/bin/alacritty ctrl + alt - 1 : yabai -m space --focus 1 ctrl + alt - 2 : yabai -m space --focus 2 ctrl + alt - 3 : yabai -m space --focus 3 ctrl + alt - 4 : yabai -m space --focus 4 ctrl + alt - 5 : yabai -m space --focus 5 ctrl + alt - 6 : yabai -m space --focus 6 ctrl + alt - 7 : yabai -m space --focus 7 ctrl + alt - 8 : yabai -m space --focus 8 ctrl + alt - 9 : yabai -m space --focus 9 ctrl + alt - 0 : yabai -m space --focus 10 ctrl + alt - n : yabai -m window --focus next || yabai -m window --focus first ctrl + alt - p : yabai -m window --focus prev || yabai -m window --focus last ctrl + alt + shift - r : yabai -m space --rotate 90 ctrl + alt + shift - 1 : yabai -m window --space 1 ctrl + alt + shift - 2 : yabai -m window --space 2 ctrl + alt + shift - 3 : yabai -m window --space 3 ctrl + alt + shift - 4 : yabai -m window --space 4 ctrl + alt + shift - 5 : yabai -m window --space 5 ctrl + alt + shift - 6 : yabai -m window --space 6 ctrl + alt + shift - 7 : yabai -m window --space 7 ctrl + alt + shift - 8 : yabai -m window --space 8 ctrl + alt + shift - 9 : yabai -m window --space 9 # ctrl + alt + shift - space : yabai -m space --balance ctrl + alt - space : yabai -m space --layout $(yabai -m query --spaces --space | jq -r 'if .["type"] == "bsp" then "float" else "bsp" end') ctrl + alt - b : yabai -m space --balance ctrl + alt + shift - space : yabai -m space --layout bsp # ctrl + alt + shift - c : yabai -m window --close ctrl + alt - right : yabai -m space --focus next || yabai -m space --focus first ctrl + alt - left : yabai -m space --focus prev || yabai -m space --focus last ctrl + alt - h : yabai -m window --focus west ctrl + alt - l : yabai -m window --focus east ctrl + alt - j : yabai -m window --focus south ctrl + alt - k : yabai -m window --focus north ctrl + alt + shift - h : yabai -m window --swap west ctrl + alt + shift - l : yabai -m window --swap east ctrl + alt + shift - j : yabai -m window --swap south ctrl + alt + shift - k : yabai -m window --swap north ctrl + alt - e : yabai -m display --focus 1 ctrl + alt - w : yabai -m display --focus 2 ctrl + alt - g : yabai -m space --toggle gap && yabai -m space --toggle padding ctrl + alt - x : yabai -m space --mirror y-axis ctrl + alt - y : yabai -m space --mirror x-axis ctrl + alt - m : yabai -m window --toggle zoom-fullscreen ctrl + alt - t : yabai -m window --toggle float :: choose ctrl + alt - a ; choose choose < p : skhd -k 'escape'; ${choose-pass}/bin/choose-pass choose < escape ; default play : ${pkgs.mpc_cli}/bin/mpc toggle ''; }; services.spacebar = { enable = true; package = pkgs.spacebar; config = { position = "top"; height = 28; spacing_left = 25; spacing_right = 25; text_font = ''"Inter:Regular:12.0"''; icon_font = ''"Font Awesome 5 Free:Solid:12.0"''; background_color = "0xff282828"; foreground_color = "0xffebdbb2"; space_icon_color = "0xff83a598"; space_icon = "•"; space_icon_strip = "1 2 3 4 5 6 7 8 9 10"; power_icon_strip = " "; clock_icon = ""; clock_format = ''"%d/%m/%y %R"''; }; }; }