mirror of
https://github.com/thegeneralist01/config.git
synced 2026-03-07 10:59:55 +01:00
215 lines
9 KiB
Nix
215 lines
9 KiB
Nix
{
|
|
system.primaryUser = "thegeneralist";
|
|
|
|
# TODO: explore this.
|
|
# Stuff below is temporary because MacOS' default window management is terrible.
|
|
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 = 30;
|
|
|
|
# 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";
|
|
|
|
# Mouse follows focus when focused monitor changes
|
|
# Drop it from your config, if you don't like this behavior
|
|
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
|
|
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
|
|
# Fallback value (if you omit the key): on-focused-monitor-changed = []
|
|
on-focused-monitor-changed = [ "move-mouse monitor-lazy-center" ];
|
|
|
|
# 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 = false;
|
|
|
|
# Possible values: (qwerty|dvorak|colemak)
|
|
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
|
key-mapping = {
|
|
preset = "qwerty";
|
|
};
|
|
|
|
# Gaps between windows (inner-*) and between monitor edges (outer-*).
|
|
# Possible values:
|
|
# - Constant: gaps.outer.top = 8
|
|
# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
|
|
# In this example, 24 is a default value when there is no match.
|
|
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
|
|
# See:
|
|
# https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
|
|
gaps = {
|
|
inner = {
|
|
horizontal = 0;
|
|
vertical = 0;
|
|
};
|
|
outer = {
|
|
left = 0;
|
|
bottom = 0;
|
|
top = 0;
|
|
right = 0;
|
|
};
|
|
};
|
|
|
|
# 'main' binding mode declaration
|
|
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
|
# 'main' binding mode must be always presented
|
|
# Fallback value (if you omit the key): mode.main.binding = {}
|
|
mode.main.binding = {
|
|
# All possible keys:
|
|
# - Letters. a, b, c, ..., z
|
|
# - Numbers. 0, 1, 2, ..., 9
|
|
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
|
|
# - F-keys. f1, f2, ..., f20
|
|
# - Special keys. minus, equal, period, comma, slash, backslash, quote, semicolon,
|
|
# backtick, leftSquareBracket, rightSquareBracket, space, enter, esc,
|
|
# backspace, tab, pageUp, pageDown, home, end, forwardDelete,
|
|
# sectionSign (ISO keyboards only, european keyboards only)
|
|
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
|
|
# keypadMinus, keypadMultiply, keypadPlus
|
|
# - Arrows. left, down, up, right
|
|
|
|
# All possible modifiers: cmd, alt, ctrl, shift
|
|
|
|
# All possible commands: https://nikitabobko.github.io/AeroSpace/commands
|
|
|
|
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
|
|
# You can uncomment the following lines to open up terminal with alt + enter shortcut
|
|
# (like in i3)
|
|
# alt-enter = '''exec-and-forget osascript -e '
|
|
# tell application "Terminal"
|
|
# do script
|
|
# activate
|
|
# end tell'
|
|
# '''
|
|
|
|
# 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-0 = "workspace 10";
|
|
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";
|
|
alt-a = "workspace A"; # In your config, you can drop workspace bindings that you don't need
|
|
alt-b = "workspace B";
|
|
alt-c = "workspace C";
|
|
alt-d = "workspace D";
|
|
alt-e = "workspace E";
|
|
alt-f = "workspace F";
|
|
alt-g = "workspace G";
|
|
alt-i = "workspace I";
|
|
alt-m = "workspace M";
|
|
alt-n = "workspace N";
|
|
alt-o = "workspace O";
|
|
alt-p = "workspace P";
|
|
alt-q = "workspace Q";
|
|
alt-r = "workspace R";
|
|
alt-s = "workspace S";
|
|
alt-t = "workspace T";
|
|
alt-u = "workspace U";
|
|
alt-v = "workspace V";
|
|
alt-w = "workspace W";
|
|
alt-x = "workspace X";
|
|
alt-y = "workspace Y";
|
|
alt-z = "workspace Z";
|
|
|
|
# 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";
|
|
alt-shift-a = "move-node-to-workspace A";
|
|
alt-shift-b = "move-node-to-workspace B";
|
|
alt-shift-c = "move-node-to-workspace C";
|
|
alt-shift-d = "move-node-to-workspace D";
|
|
alt-shift-e = "move-node-to-workspace E";
|
|
alt-shift-f = "move-node-to-workspace F";
|
|
alt-shift-g = "move-node-to-workspace G";
|
|
alt-shift-i = "move-node-to-workspace I";
|
|
alt-shift-m = "move-node-to-workspace M";
|
|
alt-shift-n = "move-node-to-workspace N";
|
|
alt-shift-o = "move-node-to-workspace O";
|
|
alt-shift-p = "move-node-to-workspace P";
|
|
alt-shift-q = "move-node-to-workspace Q";
|
|
alt-shift-r = "move-node-to-workspace R";
|
|
alt-shift-s = "move-node-to-workspace S";
|
|
alt-shift-t = "move-node-to-workspace T";
|
|
alt-shift-u = "move-node-to-workspace U";
|
|
alt-shift-v = "move-node-to-workspace V";
|
|
alt-shift-w = "move-node-to-workspace W";
|
|
alt-shift-x = "move-node-to-workspace X";
|
|
alt-shift-y = "move-node-to-workspace Y";
|
|
alt-shift-z = "move-node-to-workspace Z";
|
|
|
|
# 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";
|
|
};
|
|
|
|
# 'service' binding mode declaration.
|
|
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
|
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" ];
|
|
};
|
|
};
|
|
};
|
|
}
|