From 1caa8bba3e98eb9067c1acd8541f01b88169562b Mon Sep 17 00:00:00 2001 From: John Ogle Date: Tue, 14 Oct 2025 08:26:51 -0700 Subject: [PATCH] [aerospace] Further tweaks --- home/home-darwin-work.nix | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/home/home-darwin-work.nix b/home/home-darwin-work.nix index ef88988..ead9eac 100644 --- a/home/home-darwin-work.nix +++ b/home/home-darwin-work.nix @@ -2,6 +2,7 @@ let customPkgs = pkgs.callPackage ../packages {}; + leader = "cmd"; # Change this to experiment with different leader keys (e.g., "cmd", "ctrl") in { # Provide arguments to role modules @@ -43,6 +44,80 @@ in home.shell.enableShellIntegration = true; + # TODO: Move this to its own role and/or module + programs.aerospace = { + enable = true; + launchd.enable = true; + userSettings.mode.main.binding = { + "${leader}-slash" = "layout tiles horizontal vertical"; + "${leader}-comma" = "layout accordion horizontal vertical"; + "${leader}-h" = "focus left"; + "${leader}-j" = "focus down"; + "${leader}-k" = "focus up"; + "${leader}-l" = "focus right"; + "${leader}-shift-h" = "move left"; + "${leader}-shift-j" = "move down"; + "${leader}-shift-k" = "move up"; + "${leader}-shift-l" = "move right"; + "${leader}-minus" = "resize smart -50"; + "${leader}-equal" = "resize smart +50"; + "${leader}-1" = "workspace 1"; + "${leader}-2" = "workspace 2"; + "${leader}-3" = "workspace 3"; + "${leader}-4" = "workspace 4"; + "${leader}-5" = "workspace 5"; + "${leader}-6" = "workspace 6"; + "${leader}-7" = "workspace 7"; + "${leader}-8" = "workspace 8"; + "${leader}-9" = "workspace 9"; + "${leader}-shift-1" = "move-node-to-workspace 1"; + "${leader}-shift-2" = "move-node-to-workspace 2"; + "${leader}-shift-3" = "move-node-to-workspace 3"; + "${leader}-shift-4" = "move-node-to-workspace 4"; + "${leader}-shift-5" = "move-node-to-workspace 5"; + "${leader}-shift-6" = "move-node-to-workspace 6"; + "${leader}-shift-7" = "move-node-to-workspace 7"; + "${leader}-shift-8" = "move-node-to-workspace 8"; + "${leader}-shift-9" = "move-node-to-workspace 9"; + "${leader}-tab" = "workspace-back-and-forth"; + "${leader}-shift-tab" = "move-workspace-to-monitor --wrap-around next"; + + "${leader}-enter" = '' + exec-and-forget osascript <<'APPLESCRIPT' + tell application "Terminal" + set newWindow to make new window + activate + tell newWindow to set index to 1 + end tell + APPLESCRIPT + ''; + + "${leader}-shift-enter" = '' + exec-and-forget osascript <<'APPLESCRIPT' + tell application "Google Chrome" + set newWindow to make new window + activate + tell newWindow to set index to 1 + end tell + APPLESCRIPT + ''; + + "${leader}-i" = "mode service"; + }; + + userSettings.mode.service.binding = { + esc = ["reload-config" "mode main"]; + r = ["flatten-workspace-tree" "mode main"]; # reset layout + f = ["layout floating tiling" "mode main"]; # Toggle between floating and tiling layout + backspace = ["close-all-windows-but-current" "mode main"]; + + "${leader}-shift-h" = ["join-with left" "mode main"]; + "${leader}-shift-j" = ["join-with down" "mode main"]; + "${leader}-shift-k" = ["join-with up" "mode main"]; + "${leader}-shift-l" = ["join-with right" "mode main"]; + }; + }; + home.roles = { base.enable = true; };