after-login-command = [] after-startup-command = [ 'exec-and-forget borders active_color=0x{{ theme.borders.active_color }} inactive_color=0x{{ theme.borders.inactive_color }} width=4.0', 'exec-and-forget /opt/homebrew/bin/sketchybar' ] exec-on-workspace-change = [ '/bin/bash', '-c', 'sketchybar --trigger aerospace_workspace_changed FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE' ] on-focus-changed = [ 'move-mouse window-lazy-center', # 'exec-and-forget /bin/bash -c /opt/homebrew/bin/sketchybar --trigger front_app_switched', # 'exec-and-forget sketchybar --trigger update_windows' ] start-at-login = true # 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' # 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-{{ window_manager.key.mod }}-h key # Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app automatically-unhide-macos-hidden-apps = true # 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 = 8 inner.vertical = 8 outer.left = 8 outer.bottom = 8 outer.top = [{ monitor."^built-in retina display$" = 38 }, 58] outer.right = 8 [mode.main.binding] # All possible commands: https://nikitabobko.github.io/AeroSpace/commands # See: https://nikitabobko.github.io/AeroSpace/commands#layout {{ window_manager.key.mod }}-slash = 'layout tiles horizontal vertical' {{ window_manager.key.mod }}-comma = 'layout accordion horizontal vertical' {{ window_manager.key.mod }}-{{ window_manager.key.ed }}-d = 'close' {{ window_manager.key.mod }}-h = 'focus left' {{ window_manager.key.mod }}-j = 'focus down' {{ window_manager.key.mod }}-k = 'focus up' {{ window_manager.key.mod }}-l = 'focus right' {{ window_manager.key.mod }}-{{ window_manager.key.mov }}-h = 'move left' {{ window_manager.key.mod }}-{{ window_manager.key.mov }}-j = 'move down' {{ window_manager.key.mod }}-{{ window_manager.key.mov }}-k = 'move up' {{ window_manager.key.mod }}-{{ window_manager.key.mov }}-l = 'move right' {{ window_manager.key.mod }}-{{ window_manager.key.ed }}-space = ['mode main'] {{ window_manager.key.mod }}-{{ window_manager.key.ed }}-h = ['join-with left', 'mode main'] {{ window_manager.key.mod }}-{{ window_manager.key.ed }}-j = ['join-with down', 'mode main'] {{ window_manager.key.mod }}-{{ window_manager.key.ed }}-k = ['join-with up', 'mode main'] {{ window_manager.key.mod }}-{{ window_manager.key.ed }}-l = ['join-with right', 'mode main'] {{ window_manager.key.mod }}-minus = 'resize smart -50' {{ window_manager.key.mod }}-equal = 'resize smart +50' {% for name, ws in window_manager.workspaces.items() %} {{ window_manager.key.mod }}-{{ ws.key }} = 'workspace {{ name }}' {{ window_manager.key.mod }}-{{ window_manager.key.mov }}-{{ ws.key }} = 'move-node-to-workspace {{ name }}' {% endfor %} # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth {{ window_manager.key.mod }}-tab = 'workspace-back-and-forth' # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor {{ window_manager.key.mod }}-shift-tab = 'move-workspace-to-monitor --wrap-around next' # See: https://nikitabobko.github.io/AeroSpace/commands#mode {{ window_manager.key.mod }}-shift-semicolon = 'mode service' [workspace-to-monitor-force-assignment] {% for name, ws in window_manager.workspaces.items() %} {{ name }} = '{{ ws.monitor }}' {% endfor %} # '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'] down = 'volume down' up = 'volume up' shift-down = ['volume set 0', 'mode main'] {% for name, ws in window_manager.workspaces.items() %} {% if "apps" in ws %} {% for app in ws.apps %} [[on-window-detected]] run = ['move-node-to-workspace {{ name }}'] {% for matcher, value in app.items() %} if.{{ matcher }} = '{{ value }}' {% endfor %} {% endfor %} {% endif %} {% endfor %}