Do you have a cool automatization, AeroSpace integration, or workflow? Feel free to open an issue or pull request to add it to this list! The source code of the page can be found in ./docs directory.

1. Move windows by dragging any part of the window

defaults write -g NSWindowShouldDragOnGesture YES

Now, you can move windows by holding ctrl + cmd and dragging any part of the window (not necessarily the window title)

2. Highlight focused windows with colored borders

To highlight the focused window with colored border you can use JankyBorders.

You can also use after-startup-command to start JankyBorders together with AeroSpace

after-startup-command = [
    # JankyBorders has a built-in detection of already running process,
    # so it won't be run twice on AeroSpace restart
    'exec-and-forget /opt/homebrew/opt/borders/bin/borders active_color=0xffe1e3e4 inactive_color=0xff494d64 width=5.0'
]

3. Disable windows opening animations

Observable in Google Chrome

defaults write -g NSAutomaticWindowAnimationsEnabled -bool false

4. Use trackpad gestures to switch workspaces

You can use BetterTouchTool to assign trackpad gestures to switch workspaces

The following commands focus next or previous workspaces on monitors where the mouse is located

aerospace workspace "$(aerospace list-workspaces --monitor mouse --visible)" && aerospace workspace next

aerospace workspace "$(aerospace list-workspaces --monitor mouse --visible)" && aerospace workspace prev

Beware that you might need to specify full path to aerospace executable https://community.folivora.ai/t/how-to-execute-terminal-command-to-switch-workspaces-with-aerospace/35914

5. Show AeroSpace workspaces in Sketchybar

You can integrate AeroSpace workspace indicators with Sketchybar. Use these snippets as a starting point.

~/.aerospace.toml
# Run Sketchybar together with AeroSpace
# sketchbar has a built-in detection of already running process,
# so it won't be run twice on AeroSpace restart
after-startup-command = ['exec-and-forget /opt/homebrew/opt/sketchybar/bin/sketchybar']

# Notify Sketchybar about workspace change
exec-on-workspace-change = ['/bin/bash', '-c',
    '/opt/homebrew/opt/sketchybar/bin/sketchybar --trigger aerospace_workspace_change FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE'
]
~/.config/sketchybar/sketchybarrc
sketchybar --add event aerospace_workspace_change

for sid in $(aerospace list-workspaces --all); do
    sketchybar --add item space.$sid left \
        --subscribe space.$sid aerospace_workspace_change \
        --set space.$sid \
        background.color=0x44ffffff \
        background.corner_radius=5 \
        background.height=20 \
        background.drawing=off \
        label="$sid" \
        click_script="aerospace workspace $sid" \
        script="$CONFIG_DIR/plugins/aerospace.sh $sid"
done
~/.config/sketchybar/plugins/aerospace.sh
#!/usr/bin/env bash

# make sure it's executable with:
# chmod +x ~/.config/sketchybar/plugins/aerospace.sh

if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
    sketchybar --set $NAME background.drawing=on
else
    sketchybar --set $NAME background.drawing=off
fi

6. Open a new window with AppleScript

Invoking Safari/Terminal with a command the obvious way (exec-and-forget open -a Safari) results in an outcome that is probably not the intended one. Namely, that any workspace already containing an instance of Safari/Terminal is brought in focus.

Opening a new window of a program that can supports multiple windows (such as Safari or Terminal.app) can be accomplished with an AppleScript inlined in aerospace.toml as follows:

  • Safari

    ctrl-g = '''exec-and-forget osascript <<EOF
    tell application "Safari"
        make new document at end of documents
        activate
    end tell
    EOF'''
  • Terminal

    ctrl-g = '''exec-and-forget osascript <<EOF
    tell application "Terminal"
        do script
        activate
    end tell
    EOF'''

7. Disable annoying and useless "hide application" shortcut

~/.aerospace.toml
[mode.main.binding]
cmd-h = []

8. Colemak keys remap

~/.aerospace.toml
[key-mapping.key-notation-to-key-code]
q = 'q'
w = 'w'
f = 'e'
p = 'r'
g = 't'
j = 'y'
l = 'u'
u = 'i'
y = 'o'
semicolon = 'p'
leftSquareBracket = 'leftSquareBracket'
rightSquareBracket = 'rightSquareBracket'
backslash = 'backslash'

a = 'a'
r = 's'
s = 'd'
t = 'f'
d = 'g'
h = 'h'
n = 'j'
e = 'k'
i = 'l'
o = 'semicolon'
quote = 'quote'

z = 'z'
x = 'x'
c = 'c'
v = 'v'
b = 'b'
k = 'n'
r = 'm'
comma = 'comma'
period = 'period'
slash = 'slash'

The list is useful to compose custom on-window-detected callback.

Application name Application ID

1Password

com.1password.1password

Activity Monitor

com.apple.ActivityMonitor

AirPort Utility

com.apple.airport.airportutility

Alacritty

org.alacritty

Android Studio

com.google.android.studio

App Store

com.apple.AppStore

AppCode

com.jetbrains.AppCode

Arc Browser

company.thebrowser.Browser

Audio MIDI Setup

com.apple.audio.AudioMIDISetup

Automator

com.apple.Automator

Battle.net

net.battle.app

Books

com.apple.iBooksX

Brave

com.brave.Browser

CLion

com.jetbrains.CLion

Calculator

com.apple.calculator

Calendar

com.apple.iCal

Chess

com.apple.Chess

Clock

com.apple.clock

ColorSync Utility

com.apple.ColorSyncUtility

Console

com.apple.Console

Contacts

com.apple.AddressBook

Dictionary

com.apple.Dictionary

Disk Utility

com.apple.DiskUtility

Docker

com.docker.docker

FaceTime

com.apple.FaceTime

Figma

com.figma.Desktop

Find My

com.apple.findmy

Finder

com.apple.finder

Firefox

org.mozilla.firefox

Freeform

com.apple.freeform

GIMP

org.gimp.gimp-2.10

Google Chrome

com.google.Chrome

Grapher

com.apple.grapher

Home

com.apple.Home

Inkscape

org.inkscape.Inkscape

IntelliJ IDEA Community

com.jetbrains.intellij.ce

IntelliJ IDEA Ultimate

com.jetbrains.intellij

Karabiner-Elements

org.pqrs.Karabiner-Elements.Settings

Keychain Access

com.apple.keychainaccess

Keynote

com.apple.iWork.Keynote

Kitty

net.kovidgoyal.kitty

Mail

com.apple.mail

Maps

com.apple.Maps

Marta

org.yanex.marta

Messages

com.apple.MobileSMS

Music

com.apple.Music

Notes

com.apple.Notes

Obsidian

md.obsidian

Pages

com.apple.iWork.Pages

Photo Booth

com.apple.PhotoBooth

Photos

com.apple.Photos

Podcasts

com.apple.podcasts

Preview

com.apple.Preview

PyCharm Community

com.jetbrains.pycharm.ce

PyCharm Professional

com.jetbrains.pycharm

QuickTime Player

com.apple.QuickTimePlayerX

Reminders

com.apple.reminders

Safari

com.apple.Safari

Shortcuts

com.apple.shortcuts

Slack

com.tinyspeck.slackmacgap

Spotify

com.spotify.client

Steam

com.valvesoftware.steam

Stocks

com.apple.stocks

Sublime Merge

com.sublimemerge

Sublime Text

com.sublimetext.4

System Settings

com.apple.systempreferences

TV

com.apple.TV

Telegram

com.tdesktop.Telegram

Terminal

com.apple.Terminal

TextEdit

com.apple.TextEdit

Thunderbird

org.mozilla.thunderbird

Time Machine

com.apple.backup.launcher

Todoist

com.todoist.mac.Todoist

Tor Browser

org.torproject.torbrowser

Transmission

org.m0k.transmission

VLC

org.videolan.vlc

Visual Studio Code

com.microsoft.VSCode

VoiceMemos

com.apple.VoiceMemos

VoiceOver Utility

com.apple.VoiceOverUtility

Weather

com.apple.weather

WezTerm

com.github.wez.wezterm

Xcode

com.apple.dt.Xcode

iMovie

com.apple.iMovieApp

iTerm2

com.googlecode.iterm2

kdenlive

org.kde.Kdenlive