{ config, pkgs, ... }: { services.aerospace = { enable = config.shared.darwin.tiling.enable; settings = { # Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization enable-normalization-flatten-containers = true; enable-normalization-opposite-orientation-for-nested-containers = true; # See: https://nikitabobko.github.io/AeroSpace/guide#layouts # The 'accordion-padding' specifies the size of accordion padding # You can set 0 to disable the padding feature accordion-padding = 0; # Possible values: tiles|accordion default-root-container-layout = "tiles"; # Possible values: horizontal|vertical|auto # "auto" means: wide monitor (anything wider than high) gets horizontal orientation, # tall monitor (anything higher than wide) gets vertical orientation default-root-container-orientation = "auto"; key-mapping.preset = "qwerty"; gaps = { inner = { horizontal = 0; vertical = 0; }; outer = { left = 0; bottom = 0; top = 40; right = 0; }; }; # You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag # Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key # Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app automatically-unhide-macos-hidden-apps = true; mode.main.binding = { # See: https://nikitabobko.github.io/AeroSpace/commands#layout alt-slash = "layout tiles horizontal vertical"; alt-comma = "layout accordion horizontal vertical"; # See: https://nikitabobko.github.io/AeroSpace/commands#focus alt-h = "focus left"; alt-j = "focus down"; alt-k = "focus up"; alt-l = "focus right"; # See: https://nikitabobko.github.io/AeroSpace/commands#move alt-shift-h = "move left"; alt-shift-j = "move down"; alt-shift-k = "move up"; alt-shift-l = "move right"; # See: https://nikitabobko.github.io/AeroSpace/commands#resize alt-minus = "resize smart -50"; alt-equal = "resize smart +50"; # See: https://nikitabobko.github.io/AeroSpace/commands#workspace alt-1 = "workspace 1"; alt-2 = "workspace 2"; alt-3 = "workspace 3"; alt-4 = "workspace 4"; alt-5 = "workspace 5"; alt-6 = "workspace 6"; alt-7 = "workspace 7"; alt-8 = "workspace 8"; alt-9 = "workspace 9"; # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace alt-shift-1 = "move-node-to-workspace 1"; alt-shift-2 = "move-node-to-workspace 2"; alt-shift-3 = "move-node-to-workspace 3"; alt-shift-4 = "move-node-to-workspace 4"; alt-shift-5 = "move-node-to-workspace 5"; alt-shift-6 = "move-node-to-workspace 6"; alt-shift-7 = "move-node-to-workspace 7"; alt-shift-8 = "move-node-to-workspace 8"; alt-shift-9 = "move-node-to-workspace 9"; cmd-h = [ ]; # Disable "hide application" cmd-alt-h = [ ]; # Disable "hide others" # # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth # alt-tab = "workspace-back-and-forth"; # # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor # alt-shift-tab = "move-workspace-to-monitor --wrap-around next"; # See: https://nikitabobko.github.io/AeroSpace/commands#mode alt-shift-semicolon = "mode service"; }; 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" ]; # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2 #s = ["layout sticky tiling", "mode main"] alt-shift-h = [ "join-with left" "mode main" ]; alt-shift-j = [ "join-with down" "mode main" ]; alt-shift-k = [ "join-with up" "mode main" ]; alt-shift-l = [ "join-with right" "mode main" ]; down = "volume down"; up = "volume up"; shift-down = [ "volume set 0" "mode main" ]; }; after-startup-command = [ "exec-and-forget sketchybar" "exec-and-forget open /Applications/SwipeAeroSpace.app" ]; exec-on-workspace-change = [ "/bin/bash" "-c" "/run/current-system/sw/bin/sketchybar --trigger aerospace_workspace_change FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE" ]; on-window-detected = [ #Ghostty currently renders tabs as individual processes #Fix comes from https://ghostty.org/docs/help/macos-tiling-wms { "if" = { app-id = "com.mitchellh.ghostty"; }; run = [ "layout floating" ]; check-further-callbacks = true; } ]; }; }; }