From e2a0d429ded0b260bab65743860238a85f1e998d Mon Sep 17 00:00:00 2001 From: Ryan Yin Date: Tue, 20 May 2025 09:02:19 +0800 Subject: [PATCH] feat(darwin): aerospace - update config --- home/darwin/aerospace/aerospace.toml | 144 +++++++++++++++------------ 1 file changed, 82 insertions(+), 62 deletions(-) diff --git a/home/darwin/aerospace/aerospace.toml b/home/darwin/aerospace/aerospace.toml index 4f993e41..1fbea116 100644 --- a/home/darwin/aerospace/aerospace.toml +++ b/home/darwin/aerospace/aerospace.toml @@ -1,9 +1,6 @@ # Place a copy of this config to ~/.aerospace.toml # After that, you can edit ~/.aerospace.toml to your liking -# It's not necessary to copy all keys to your config. -# If the key is missing in your config, "default-config.toml" will serve as a fallback - # You can use it to add commands that run after login to macOS user session. # 'start-at-login' needs to be 'true' for 'after-login-command' to work # Available commands: https://nikitabobko.github.io/AeroSpace/commands @@ -14,14 +11,14 @@ after-login-command = [] # Available commands : https://nikitabobko.github.io/AeroSpace/commands after-startup-command = [ # Highlight focused windows with colored borders - # + # # JankyBorders has a built-in detection of already running process, # so it won't be run twice on AeroSpace restart 'exec-and-forget borders active_color=0xffe1e3e4 inactive_color=0xff494d64 width=5.0', ] # Start AeroSpace at login -start-at-login = false +start-at-login = true # Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization enable-normalization-flatten-containers = true @@ -40,39 +37,43 @@ default-root-container-layout = 'tiles' # tall monitor (anything higher than wide) gets vertical orientation default-root-container-orientation = 'auto' -# Possible values: (qwerty|dvorak) -# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping -key-mapping.preset = 'qwerty' - # 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 +# See: +# https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors [gaps] -inner.horizontal = 5 -inner.vertical = 5 -outer.left = 5 -outer.bottom = 5 -outer.top = 5 -outer.right = 5 +inner.horizontal = 3 +inner.vertical = 3 +outer.left = 3 +outer.bottom = 3 +outer.top = 3 +outer.right = 3 -[exec] -inherit-env-vars = true -[exec.env-vars] -PATH = '/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}' - -# 'main' binding mode declaration +# ['main'] binding mode declaration # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes -# 'main' binding mode must be always presented +# ['main'] binding mode must be always presented +# Fallback value (if you omit the key): mode.main.binding = {} [mode.main.binding] # All possible keys: @@ -80,8 +81,10 @@ PATH = '/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}' # - 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 +# - 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 @@ -91,13 +94,14 @@ PATH = '/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}' # 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) +# 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 "kitty" - do script - activate -end tell' -''' + tell application "kitty" + do script + activate + end tell' + ''' # See: https://nikitabobko.github.io/AeroSpace/commands#layout alt-slash = 'layout tiles horizontal vertical' @@ -130,6 +134,12 @@ alt-7 = 'workspace 7Music' alt-8 = 'workspace 8Mail' alt-9 = 'workspace 9File' alt-0 = 'workspace 0Other' +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' + # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace @@ -143,6 +153,12 @@ alt-shift-7 = 'move-node-to-workspace 7Music' alt-shift-8 = 'move-node-to-workspace 8Mail' alt-shift-9 = 'move-node-to-workspace 9File' alt-shift-0 = 'move-node-to-workspace 0Other' +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' + # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth alt-tab = 'workspace-back-and-forth' @@ -152,12 +168,29 @@ alt-shift-tab = 'move-workspace-to-monitor --wrap-around next' # See: https://nikitabobko.github.io/AeroSpace/commands#mode alt-shift-semicolon = 'mode service' -cmd-h = [] # Disable "hide application" -cmd-alt-h = [] # Disable "hide others" +# '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'] -alt-shift-c = 'reload-config' +# 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'] -alt-r = 'mode resize' # Declare 'resize' binding mode [mode.resize.binding] @@ -168,23 +201,10 @@ l = 'resize width +50' enter = 'mode main' esc = 'mode main' -# '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 -#s = ['layout sticky tiling', 'mode main'] # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2 -f = [ - 'layout floating tiling', - 'mode main', -] # Toggle between floating and tiling layout -backspace = ['close-all-windows-but-current', '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'] - +[exec] +inherit-env-vars = true +[exec.env-vars] +PATH = '/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}' # ================================================================= # @@ -303,13 +323,13 @@ run = ['layout floating'] # ================================================================= [workspace-to-monitor-force-assignment] -1Kitty = 'main' # Non-main monitor in case when there are only two monitors' -2Alacritty = 'main' # "Main" monitor ("main" as in System Settings → Displays → Use as) -3Work = ['secondary', 'main'] -4Firefox = 'main' -5Chrome = 'main' -6Chat = ['secondary', 'main'] -7Music = ['secondary', 'main'] -8Mail = 'main' -9File = 'main' -0Other = 'main' +1Kitty = ['main'] # Non-main monitor in case when there are only two monitors' +2Alacritty = ['main'] # "Main" monitor ("main" as in System Settings → Displays → Use as) +3Work = ['built-in'] +4Firefox = ['main'] +5Chrome = ['main'] +6Chat = ['built-in'] +7Music = ['built-in'] +8Mail = ['main'] +9File = ['main'] +0Other = ['main']