- Published on
Sketchybar & Aerospace
- Authors
- Name
- Frank Carvajal
- @FullStack_Frank
👋🏻 Introduction
Sketchybar and Aerospace, ever heard of either? Call it an over 30 year old recent birthday derived male midlife crisis, but I've finally entered my PDE era(personal development environment) base desires.
What happened to me? I watched Pewdie Pie's Arch Linux YouTube video, fell down the Alice and Wonderland pit of despair, and decided that I refuse to not rice up my machine as if I was on Linux.

Things that annoy me about MacOS out the box:
- Windows management is a pain and the animations when cmd+tab to another app in a different window feels like my eyes are getting sucked through a vortex I didn't sign up for, like listening to a friend's uncle rant about something I never agreed to get into.
cmd+tab
, I feel like I'm in the dark ages, is there no way to get to what I want to faster? Of course there is, I've just been living in caveland normie land under a gemstone crab.- Menubar customization is about as customizeable as a pet rock pick your fancy: dark or light, what is this? SMH, facepalm, deep sigh, is a little pep in my step too much to ask for? I want some color.
- I don't want to see every tray icon of everything and their grandnode at the top of my screen ok?
- The options to see in an application menu dropdowns is great, but once you learn it, you don't need to see it, it's just clutter. Why isn't this as easy to toggle on/off as it is to hide and show .files I have no idea.
Ok, overall I love MacOS. It's reliable, smooth, a buttery experience, almost everything works on it, and as far as new machines go at any new role I ask for it over a piece of dell potato in slow degrative decline 8/8 times. But, microanimations aren't for everything and at the end of the day I want my tools to work great and get out of my way when I want them so, enter solution!
🥷🏻 Sketchybar
Look up some of the setups in "Share you setups" and you will find some inspiration to rice up your Mac. We will come back to this setup after Aerospace because there is a lot going on here.
🛸 Aerospace
It's i3 like buttery and smooth, free of massive swooping animations and simple to use with alt+<number>
, alt+shift+<number>
to assign, & you don't lose cmd+tab
if you want to fall back into bad habits.
🏗️ Let's dive into setting it up
Nowadays with Warp terminal + Claude 4 sonnet, we can vibe our way through our own configurations without even leaving the terminal (it's weird to call warp a terminal tbh...).
So, it's easy to agent our way through some of the base installation always using Homebrew (any surprise there? Nope), and then once we're saradomin brewed up and ready to take some hits, we can see what happens.
in .config
mkdirnolds your way to a toml config file via
mkdir aerospace && touch aerospace/aerospace.toml
Here is where we can set things like start-at-login = true
, 'accordion-padding', 'default-root-container-layout', & more.
Mine is rather simple with an emoji and machine name with System Preferences
, Activity Monitor
, & Lock Screen
quickly accessible:

Along with having a nice little spotify plugin to hover over a mic which shows the current song playing and has simple default controls:

And ensuring that Dato my calendar/time zone application is still clickable, along with some basic icons like battery, volume, WiFi/Ethernet connection, Bluetooth, & do not disturb toggle.
Overall I'd say it doesn't look to bad and matches my custom warp terminal config
Here's my basic aerospace toml:
# 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 = 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'
# Mouse follows focus when focus changes
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']
# Sketchybar integration - instant updates on workspace changes
exec-on-workspace-change = ['/Users/zion/.local/bin/sketchybar-aerospace-update']
# Gaps between windows (in pixels)
[gaps]
inner.horizontal = 10
inner.vertical = 10
outer.left = 15
outer.bottom = 15
outer.top = 60 # Increased for clean spacing under sketchybar
outer.right = 15
# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
# 'main' binding mode must be always declared
[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
# Alt + h/j/k/l to focus windows
alt-h = 'focus left'
alt-j = 'focus down'
alt-k = 'focus up'
alt-l = 'focus right'
# Alt + Shift + h/j/k/l to move windows
alt-shift-h = 'move left'
alt-shift-j = 'move down'
alt-shift-k = 'move up'
alt-shift-l = 'move right'
# Alt + 1-9 to focus 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 + Shift + 1-9 to move window to workspace
alt-shift-1 = 'move-node-to-workspace 1'
alt-shift-2 = 'move-node-to-workspace 2'
alt-shift-3 = 'move-node-to-workspace 3'
alt-shift-4 = 'move-node-to-workspace 4'
alt-shift-5 = 'move-node-to-workspace 5'
alt-shift-6 = 'move-node-to-workspace 6'
alt-shift-7 = 'move-node-to-workspace 7'
alt-shift-8 = 'move-node-to-workspace 8'
alt-shift-9 = 'move-node-to-workspace 9'
# Alt + Tab to focus next workspace on current monitor
alt-tab = 'workspace-back-and-forth'
# Alt + f to toggle fullscreen
alt-f = 'fullscreen'
# Alt + s to toggle between horizontal and vertical split
alt-s = 'layout v_accordion' # 'layout h_accordion' | 'layout v_accordion' | 'layout h_tiles' | 'layout v_tiles' | 'layout tiles' | 'layout accordion'
# Alt + r to resize mode (you can also resize by holding Alt + right mouse button)
alt-r = 'mode resize'
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
[mode.resize.binding]
h = 'resize width -50'
j = 'resize height +50'
k = 'resize height -50'
l = 'resize width +50'
enter = 'mode main'
esc = 'mode main'
# App-specific window rules
[[on-window-detected]]
if.app-id = 'com.apple.finder'
run = 'layout floating'
[[on-window-detected]]
if.app-id = 'com.apple.systempreferences'
run = 'layout floating'
[[on-window-detected]]
if.app-id = 'com.apple.ActivityMonitor'
run = 'layout floating'
Not bad right? Feel free to configure yours however you want.
However, you're going to need Sketchybar to bring this all together... My sketchybar setup has colors
, helpers
, items
, plugins
, and scripts like colors.sh
& icons.sh
, but most importantly is your sketchybarrc
.
So you're best looking here my dotfiles on GitHub if you want to see my slop.
I attempted to include a a few different scripts but the usage of some of this got yoinked.
However you will want to take a look and potentially install sketchybar-app-font if you want to have a ligature based symbol font inspired by simple bar.

🚀 Zsh aliases for fun
Now, what's nice is if you do need to go back to MacOS menu for whatever reason, why not just have some quick aliases for just that.
showsketchy
will hide MacOS Menu/status bar and show sketchy
showmac
will do the opposite.
alias showsketchy='
echo "Switching to sketchybar..."
# Method 1: Standard defaults
defaults write NSGlobalDomain _HIHideMenuBar -bool true
# Method 2: Auto-hide menu bar in all spaces
defaults write com.apple.dock autohide-menu-bar -bool true
# Method 3: Use AppleScript to hide menu bar immediately
osascript -e "tell application \"System Preferences\" to quit"
osascript -e "
tell application \"System Events\"
tell dock preferences
set properties to {autohide menu bar: true}
end tell
end tell
"
# Kill relevant processes to apply changes
killall SystemUIServer 2>/dev/null
killall Dock 2>/dev/null
# Wait for changes to apply
sleep 2
# Start sketchybar
brew services start felixkratz/formulae/sketchybar
sleep 2
echo "Sketchybar active with menu bar hidden!"
'
alias showmac='
echo "Switching to macOS menu bar..."
# Stop sketchybar first
brew services stop felixkratz/formulae/sketchybar
sleep 1
# Restore menu bar using multiple methods
defaults write NSGlobalDomain _HIHideMenuBar -bool false
defaults write com.apple.dock autohide-menu-bar -bool false
# Use AppleScript to show menu bar
osascript -e "
tell application \"System Events\"
tell dock preferences
set properties to {autohide menu bar: false}
end tell
end tell
"
# Apply changes
killall SystemUIServer 2>/dev/null
killall Dock 2>/dev/null
sleep 1
echo "macOS menu bar restored!"
'
🏁 Fin
Thanks for putting up with my rough drafts being published on first shot, that I threw together in less than an hour... 😅 But, it's always fun to share something I'm doing and the plan is to start posting more blogs as I've got over 8 years worth of ridiculousness to share. People will always like or hate stuff I say or post so who cares.
So ¯_(ツ)_/¯
Please HMU if you have any questions or need anything.
Cheers! 🍻
- Valiant ⚔️