130 lines
4.9 KiB
Nix
130 lines
4.9 KiB
Nix
{pkgs, ...}: {
|
|
services.aerospace = {
|
|
enable = true;
|
|
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 = 0;
|
|
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
|
|
cmd-1 = "workspace 1";
|
|
cmd-2 = "workspace 2";
|
|
cmd-3 = "workspace 3";
|
|
cmd-4 = "workspace 4";
|
|
cmd-5 = "workspace 5";
|
|
cmd-6 = "workspace 6";
|
|
cmd-7 = "workspace 7";
|
|
cmd-8 = "workspace 8";
|
|
cmd-9 = "workspace 9";
|
|
|
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
|
|
cmd-shift-1 = "move-node-to-workspace 1";
|
|
cmd-shift-2 = "move-node-to-workspace 2";
|
|
cmd-shift-3 = "move-node-to-workspace 3";
|
|
cmd-shift-4 = "move-node-to-workspace 4";
|
|
cmd-shift-5 = "move-node-to-workspace 5";
|
|
cmd-shift-6 = "move-node-to-workspace 6";
|
|
cmd-shift-7 = "move-node-to-workspace 7";
|
|
cmd-shift-8 = "move-node-to-workspace 8";
|
|
cmd-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-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 tiling"];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|