Workspace Model
Workspaces are namedW.D where W is the row (1-9) and D is the desktop (1-9), giving
81 total workspaces (e.g. 1.1, 3.5, 7.2).
- Starts on workspace
1.1after login. - Each workspace row remembers its last active desktop.
- No gaps between windows (inner/outer = 0).
Keybindings
Window Navigation
| Shortcut | Action |
|---|---|
Alt + h/j/k/l | Focus left / down / up / right |
Alt + Shift + h/j/k/l | Move window left / down / up / right |
Workspace Navigation
| Shortcut | Action |
|---|---|
Cmd + Alt + 1-9 | Switch to workspace row 1-9 (remembers last desktop) |
Cmd + Alt + j/k | Next / previous workspace row |
Cmd + Alt + h/l | Switch desktop within workspace (wraps) |
Move Windows Between Workspaces
| Shortcut | Action |
|---|---|
Cmd + Alt + Shift + 1-9 | Send window to workspace row (stay in place) |
Cmd + Alt + Shift + j/k | Send window to next/prev workspace row |
Cmd + Alt + Shift + h/l | Send window to next/prev desktop (wraps) |
Layout & Resize
| Shortcut | Action |
|---|---|
Alt + / | Cycle tiles / horizontal / vertical |
Alt + , | Cycle accordion horizontal / vertical |
Alt + f | Toggle fullscreen |
Alt + Tab | Focus back-and-forth |
Alt + v | Join with right |
Alt + b | Join with down |
Alt + r | Enter resize mode (h/j/k/l to resize, Esc/Enter to exit) |
Workspace Management
| Shortcut | Action |
|---|---|
Alt + n | Create a new unused workspace |
Alt + p | Open workspace picker (SwiftUI app) |
Alt + i | Open notification picker (SwiftUI app) |
Alt + c | Open clipboard history (SwiftUI app) |
App Launchers
| Shortcut | Action |
|---|---|
Alt + Shift + t | Launch Kitty terminal |
Alt + Shift + s | Launch Safari |
Alt + Shift + f | Launch Finder |
Configuration Details
Swift Picker Apps
Rig includes three custom SwiftUI apps compiled duringinit.sh:
WorkspacePicker
A visual 9x9 grid overlay showing:- Currently occupied desktops
- Windows and apps on each desktop
- Notification badges
- Preset workspace layouts (persisted as JSON)
- Desktop reorder mode — press
mto pick a source desktop, navigate withh/l, then press Enter to reorder desktops within the same workspace row
Alt + p. Supports a --goto flag for direct workspace navigation.
NotificationPicker
Queries the macOS Notification Center SQLite database to list applications with active notification badges. Supports a desktop-scoped view that filters notifications to the current workspace and desktop. Click an entry to jump to the app’s workspace and window. Launch withAlt + i.
ClipboardHistory
A searchable clipboard history overlay powered by a background daemon (ClipboardDaemon).
The daemon polls the system clipboard every second and persists entries to
~/.clipboard-history.json (max 500 entries, 10k character cap per entry). Copies from
sensitive apps (1Password, Keychain Access, LastPass, Bitwarden, KeePassXC) are excluded.
The overlay shows recent clipboard entries with source app and relative timestamp:
j/k— navigate entries/— enter search mode (filters by content or app name)Enter— copy selected entry to clipboardEsc— close (or exit search)
Alt + c. The daemon is started via clipboard-daemon.sh (launched at login).
Compiling manually
Helper Scripts
All scripts live in~/.config/aerospace/scripts/:
| Script | Purpose |
|---|---|
switch-workspace.sh | Switch workspace row, remember last desktop |
move-to-workspace.sh | Move window to workspace row (stay in place) |
switch-desktop.sh | Navigate desktops within workspace (circular) |
move-to-desktop.sh | Move window between desktops (circular) |
new-workspace.sh | Find first unused workspace row |
workspace-picker.sh | Launch WorkspacePicker app |
notification-picker.sh | Launch NotificationPicker app |
minimap.sh | Launch WorkspacePicker in goto mode |
clipboard-daemon.sh | Start background clipboard polling daemon |
clipboard-history.sh | Launch ClipboardHistory overlay |