#!/bin/bash # Modern aesthetic sketchybar configuration with aerospace integration # Colors and icons are defined in separate files for better organization source "$CONFIG_DIR/colors.sh" source "$CONFIG_DIR/icons.sh" PLUGIN_DIR="$CONFIG_DIR/plugins" ITEM_DIR="$CONFIG_DIR/items" ##### Bar Appearance ##### sketchybar --bar position=top height=42 \ color=$BAR_COLOR \ border_width=0 \ corner_radius=0 \ margin=0 \ blur_radius=0 \ padding_left=16 \ padding_right=16 \ shadow=off \ sticky=on \ topmost=window ##### Changing Defaults ##### default=( updates=when_shown icon.font="SF Pro:Semibold:15.0" icon.color=$ICON_COLOR icon.padding_left=6 icon.padding_right=6 label.font="SF Pro:Semibold:13.0" label.color=$LABEL_COLOR label.padding_left=6 label.padding_right=6 padding_left=8 padding_right=8 background.height=26 background.corner_radius=6 background.border_width=1 background.border_color=$BACKGROUND_2 popup.background.border_width=2 popup.background.corner_radius=6 popup.background.border_color=$POPUP_BORDER_COLOR popup.background.color=$POPUP_BACKGROUND_COLOR ) sketchybar --default "${default[@]}" ##### Left Side Items ##### # Apple Logo sketchybar --add item apple.logo left \ --set apple.logo icon=$APPLE \ icon.font="SF Pro:Black:16.0" \ icon.color=$ACCENT_SECONDARY \ padding_right=12 \ padding_left=4 \ label.drawing=off \ click_script="$PLUGIN_DIR/apple.sh" # Aerospace Display-Aware Workspaces sketchybar --add event aerospace_workspace_change # Monitor 1 Workspace Indicator (Primary - Built-in Display) sketchybar --add item monitor_1_workspace left \ --subscribe monitor_1_workspace aerospace_workspace_change \ --set monitor_1_workspace \ icon="M1:4" \ icon.font="SF Pro:Medium:12.0" \ icon.color=$GREY \ icon.padding_left=8 \ icon.padding_right=8 \ label.drawing=off \ padding_left=4 \ padding_right=4 \ background.color=$BACKGROUND_1 \ background.corner_radius=6 \ background.height=26 \ background.drawing=on \ script="$PLUGIN_DIR/aerospace_display.sh" # Monitor 2 Workspace Indicator (External - MAG 274UPF E2) sketchybar --add item monitor_2_workspace left \ --subscribe monitor_2_workspace aerospace_workspace_change \ --set monitor_2_workspace \ icon="M2:1" \ icon.font="SF Pro:Medium:12.0" \ icon.color=$GREY \ icon.padding_left=8 \ icon.padding_right=8 \ label.drawing=off \ padding_left=4 \ padding_right=4 \ background.color=$BACKGROUND_1 \ background.corner_radius=6 \ background.height=26 \ background.drawing=on \ script="$PLUGIN_DIR/aerospace_display.sh" # Monitor Connection Watcher (detects when monitors are connected/disconnected) sketchybar --add item monitor_watcher left \ --set monitor_watcher \ drawing=off \ update_freq=5 \ script="$PLUGIN_DIR/monitor_watcher.sh" # Separator sketchybar --add item separator left \ --set separator icon="󰇙" \ icon.font="SF Pro:Regular:16.0" \ icon.color=$ACCENT_TERTIARY \ padding_left=12 \ padding_right=8 \ label.drawing=off # Front App sketchybar --add item front_app left \ --set front_app icon.drawing=on \ icon.font="SF Pro:Semibold:15.0" \ icon.color=$ACCENT_QUATERNARY \ icon.padding_left=6 \ icon.padding_right=8 \ label.font="SF Pro:Medium:13.0" \ label.color=$WHITE \ label.padding_left=4 \ label.padding_right=8 \ padding_left=8 \ padding_right=8 \ script="$PLUGIN_DIR/front_app.sh" \ --subscribe front_app front_app_switched # YouTube Music sketchybar --add item music left \ --set music icon=􁁒 \ icon.padding_left=8 \ icon.padding_right=2 \ label.padding_right=8 \ label.font="Hack Nerd Font:Bold:12.0" \ label="Loading…" \ label.align=left \ label.max_chars=20 \ update_freq=1 \ script="$PLUGIN_DIR/youtube-music.sh" \ background.image.scale=0.9 \ background.image.corner_radius=8 \ background.image.border_color="$TRANSPARENT" \ background.color="$TRANSPARENT" \ scroll_texts=on \ padding_right=0 \ click_script="curl -s -X POST 0.0.0.0:26538/api/v1/toggle-play && $PLUGIN_DIR/youtube-music.sh" # YouTube Music Album sketchybar --add item music-artwork left \ label.padding_right=8 \ label="" \ width=20 \ background.image.scale=0.09 \ background.image.corner_radius=8 \ background.image.border_color="$TRANSPARENT" \ background.color="$TRANSPARENT" \ display=1 \ padding_right=16 \ click_script="curl -s -X POST 0.0.0.0:26538/api/v1/toggle-play && $PLUGIN_DIR/youtube-music.sh" # Now Playing # sketchybar --add item now_playing right \ # --set now_playing icon.font="SF Pro:Semibold:12.0" \ # icon.padding_left=8 \ # icon.padding_right=6 \ # label.font="SF Pro:Medium:12.0" \ # label.padding_left=4 \ # label.padding_right=8 \ # update_freq=2 \ # script="$PLUGIN_DIR/now_playing.sh" \ # background.color=$BACKGROUND_1 \ # background.drawing=on \ # drawing=off \ # padding_left=4 \ # padding_right=4 ##### Right Side Items ##### # Calendar Events sketchybar --add item calendar right \ --set calendar icon.font="SF Pro:Semibold:12.0" \ icon.padding_left=8 \ icon.padding_right=6 \ label.font="SF Pro:Medium:10.0" \ label.padding_left=4 \ label.padding_right=8 \ label.max_chars=25 \ update_freq=86400 \ script="$PLUGIN_DIR/calendar.sh" \ background.color=$BACKGROUND_1 \ background.drawing=on \ background.height=26 \ padding_left=4 \ padding_right=4 # Clock sketchybar --add item clock right \ --set clock icon="󰅐" \ icon.font="SF Pro:Semibold:15.0" \ icon.color=$YELLOW \ icon.padding_left=8 \ icon.padding_right=6 \ label.font="SF Pro:Medium:12.0" \ label.color=$WHITE \ label.padding_left=4 \ label.padding_right=8 \ update_freq=10 \ script="$PLUGIN_DIR/clock.sh" \ background.color=$BACKGROUND_1 \ background.drawing=on \ padding_left=4 \ padding_right=4 \ click_script="$PLUGIN_DIR/clock_click.sh" # WiFi Status sketchybar --add item wifi right \ --set wifi icon.font="SF Pro:Semibold:15.0" \ icon.padding_left=8 \ icon.padding_right=8 \ label.drawing=off \ update_freq=10 \ script="$PLUGIN_DIR/wifi.sh" \ background.color=$BACKGROUND_1 \ background.drawing=on \ padding_left=4 \ padding_right=4 # Bluetooth Status sketchybar --add item bluetooth right \ --set bluetooth icon.font="SF Pro:Semibold:15.0" \ icon.padding_left=9 \ icon.padding_right=9 \ label.drawing=off \ update_freq=10 \ script="$PLUGIN_DIR/bluetooth.sh" \ background.color=$BACKGROUND_1 \ background.drawing=on \ padding_left=4 \ padding_right=4 # Input Source sketchybar --add item input_source right \ --set input_source icon.font="SF Pro:Semibold:15.0" \ icon.font="SF Pro:Semibold:15.0" \ icon.padding_left=8 \ icon.padding_right=10 \ label.drawing=off \ update_freq=1 \ script="$PLUGIN_DIR/get_input_source.sh" \ background.color=$BACKGROUND_1 \ background.drawing=on \ padding_left=4 \ padding_right=4 # Volume sketchybar --add item volume right \ --set volume icon.font="SF Pro:Semibold:15.0" \ icon.color=$ACCENT_PRIMARY \ icon.padding_left=10 \ icon.padding_right=12 \ label.drawing=off \ script="$PLUGIN_DIR/volume.sh" \ background.color=$BACKGROUND_1 \ background.drawing=on \ padding_left=4 \ padding_right=4 \ click_script="$PLUGIN_DIR/volume_click.sh" \ popup.background.border_width=2 \ popup.background.corner_radius=6 \ popup.background.border_color=$POPUP_BORDER_COLOR \ popup.background.color=$POPUP_BACKGROUND_COLOR \ popup.horizontal=on \ --subscribe volume volume_change # Battery sketchybar --add item battery right \ --set battery icon.font="SF Pro:Semibold:15.0" \ icon.color=$ACCENT_SECONDARY \ icon.padding_left=8 \ icon.padding_right=6 \ label.font="SF Pro:Medium:12.0" \ label.color=$WHITE \ label.padding_left=4 \ label.padding_right=8 \ update_freq=120 \ script="$PLUGIN_DIR/battery.sh" \ background.color=$BACKGROUND_1 \ background.drawing=on \ padding_left=4 \ padding_right=4 \ --subscribe battery system_woke power_source_change # Pritunl VPN sketchybar --add item pritunl right \ --set pritunl icon="􀤆" \ icon.font="SF Pro:Semibold:13.0" \ icon.color=$ACCENT_PRIMARY \ icon.padding_left=8 \ icon.padding_right=10 \ label.drawing=off \ background.color=$BACKGROUND_1 \ background.drawing=on \ padding_left=4 \ padding_right=4 \ click_script="open -a Pritunl" # Weather # sketchybar --add item weather right \ # --set weather icon="󰖕" \ # icon.font="SF Pro:Semibold:15.0" \ # icon.color=$BLUE \ # icon.padding_left=8 \ # icon.padding_right=6 \ # label.padding_left=4 \ # label.padding_right=8 \ # update_freq=1800 \ # script="$PLUGIN_DIR/weather.sh" \ # background.color=$BACKGROUND_1 \ # background.drawing=on \ # padding_left=4 \ # padding_right=4 ##### Finalize Setup ##### sketchybar --update