-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add aerospace for tiling window mgmt
- Loading branch information
Showing
1 changed file
with
277 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,277 @@ | ||
# Place a copy of this config to ~/.aerospace.toml | ||
# After that, you can edit ~/.aerospace.toml to your liking | ||
|
||
# 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 | ||
after-login-command = [] | ||
|
||
# You can use it to add commands that run after AeroSpace startup. | ||
# 'after-startup-command' is run after 'after-login-command' | ||
# Available commands : https://nikitabobko.github.io/AeroSpace/commands | ||
after-startup-command = [] | ||
|
||
# Start AeroSpace at login | ||
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 = 100 | ||
|
||
# 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 = true | ||
|
||
# Lock apps to specific workspaces | ||
[[on-window-detected]] | ||
if.app-id = 'com.github.wez.wezterm' | ||
run = 'move-node-to-workspace 1' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'com.google.Chrome' | ||
run = 'move-node-to-workspace 2' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'com.tinyspeck.slackmacgap' | ||
run = 'move-node-to-workspace 3' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'notion.id' | ||
run = 'move-node-to-workspace 4' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'us.zoom.xos' | ||
run = 'move-node-to-workspace 4' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'com.electron.asana' | ||
run = 'move-node-to-workspace 5' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'com.cron.electron' | ||
run = 'move-node-to-workspace 6' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'com.culturedcode.ThingsMac' | ||
run = 'move-node-to-workspace 7' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'com.apple.mail' | ||
run = 'move-node-to-workspace 8' | ||
|
||
[[on-window-detected]] | ||
if.app-id = 'com.spotify.client' | ||
run = 'move-node-to-workspace 9' | ||
|
||
# Floating windows | ||
[[on-window-detected]] | ||
if.app-name-regex-substring = 'messages' | ||
run = 'layout floating' | ||
|
||
[[on-window-detected]] | ||
if.app-name-regex-substring = '1password' | ||
run = 'layout floating' | ||
|
||
[[on-window-detected]] | ||
if.app-name-regex-substring = 'finder' | ||
run = 'layout floating' | ||
|
||
# Possible values: (qwerty|dvorak) | ||
# 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 = 8 | ||
outer.right = 8 | ||
|
||
# '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 | ||
# - 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' | ||
# ''' | ||
|
||
cmd-alt-ctrl-shift-f = 'fullscreen' | ||
alt-ctrl-shift-f = 'layout floating' | ||
|
||
alt-shift-left = 'join-with left' | ||
alt-shift-down = 'join-with down' | ||
alt-shift-up = 'join-with up' | ||
alt-shift-right = 'join-with right' | ||
|
||
# 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-shift-minus = 'resize smart -50' | ||
alt-shift-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' | ||
# alt-a = 'workspace A' | ||
# 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 --focus-follows-window 1' | ||
alt-shift-2 = 'move-node-to-workspace --focus-follows-window 2' | ||
alt-shift-3 = 'move-node-to-workspace --focus-follows-window 3' | ||
alt-shift-4 = 'move-node-to-workspace --focus-follows-window 4' | ||
alt-shift-5 = 'move-node-to-workspace --focus-follows-window 5' | ||
alt-shift-6 = 'move-node-to-workspace --focus-follows-window 6' | ||
alt-shift-7 = 'move-node-to-workspace --focus-follows-window 7' | ||
alt-shift-8 = 'move-node-to-workspace --focus-follows-window 8' | ||
alt-shift-9 = 'move-node-to-workspace --focus-follows-window 9' | ||
# alt-shift-a = 'move-node-to-workspace --focus-follows-window A' | ||
# alt-shift-b = 'move-node-to-workspace --focus-follows-window B' | ||
# alt-shift-c = 'move-node-to-workspace --focus-follows-window C' | ||
# alt-shift-d = 'move-node-to-workspace --focus-follows-window D' | ||
# alt-shift-e = 'move-node-to-workspace --focus-follows-window E' | ||
# alt-shift-f = 'move-node-to-workspace --focus-follows-window F' | ||
# alt-shift-g = 'move-node-to-workspace --focus-follows-window G' | ||
# alt-shift-i = 'move-node-to-workspace --focus-follows-window I' | ||
# alt-shift-m = 'move-node-to-workspace --focus-follows-window M' | ||
# alt-shift-n = 'move-node-to-workspace --focus-follows-window N' | ||
# alt-shift-o = 'move-node-to-workspace --focus-follows-window O' | ||
# alt-shift-p = 'move-node-to-workspace --focus-follows-window P' | ||
# alt-shift-q = 'move-node-to-workspace --focus-follows-window Q' | ||
# alt-shift-r = 'move-node-to-workspace --focus-follows-window R' | ||
# alt-shift-s = 'move-node-to-workspace --focus-follows-window S' | ||
# alt-shift-t = 'move-node-to-workspace --focus-follows-window T' | ||
# alt-shift-u = 'move-node-to-workspace --focus-follows-window U' | ||
# alt-shift-v = 'move-node-to-workspace --focus-follows-window V' | ||
# alt-shift-w = 'move-node-to-workspace --focus-follows-window W' | ||
# alt-shift-x = 'move-node-to-workspace --focus-follows-window X' | ||
# alt-shift-y = 'move-node-to-workspace --focus-follows-window Y' | ||
# alt-shift-z = 'move-node-to-workspace --focus-follows-window Z' | ||
|
||
alt-tab = 'workspace-back-and-forth' | ||
alt-ctrl-shift-n = 'move-workspace-to-monitor --wrap-around next' | ||
|
||
# Launch applications | ||
cmd-alt-ctrl-shift-1 = 'exec-and-forget open -a /Applications/1Password.app' | ||
cmd-alt-ctrl-shift-t = 'exec-and-forget open -a /Applications/WezTerm.app' | ||
cmd-alt-ctrl-shift-a = 'exec-and-forget open -a /Applications/Asana.app' | ||
cmd-alt-ctrl-shift-b = 'exec-and-forget open -a /Applications/Google\ Chrome.app' | ||
cmd-alt-ctrl-shift-c = 'exec-and-forget open -a /Applications/Notion\ Calendar.app' | ||
cmd-alt-ctrl-shift-i = 'exec-and-forget open -a /Applications/Spotify.app' | ||
cmd-alt-ctrl-shift-m = 'exec-and-forget open -a /Applications/Messages.app' | ||
cmd-alt-ctrl-shift-n = 'exec-and-forget open -a /Applications/Notion.app' | ||
cmd-alt-ctrl-shift-p = 'exec-and-forget open -a /Applications/Postman.app' | ||
cmd-alt-ctrl-shift-s = 'exec-and-forget open -a /Applications/Slack.app' | ||
cmd-alt-ctrl-shift-v = 'exec-and-forget open -a /Applications/Visual\ Studio\ Code.app' | ||
cmd-alt-ctrl-shift-z = 'exec-and-forget open -a /Applications/Zoom.app' | ||
|
||
# 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'] | ||
|
||
# alt-shift-enter = 'mode apps' | ||
# [mode.apps.binding] | ||
# alt-w = ['exec-and-forget open -a /Applications/WezTerm.app', 'mode main'] |