#!/usr/bin/env bash

# === CONFIG ROOT ===
CONFIG_DIR="$HOME/.config/sketchybar"
PLUGIN_DIR="$CONFIG_DIR/plugins"

# === COLORS ===
CLR_BG=0x00000000          # Transparent bar background
CLR_COMP_BG=0xff1e1e2e     # Compartment background (Mocha base)
CLR_COMP_BORDER=0xff313244 # Compartment border (Mocha surface0)
CLR_FG=0xffcdd6f4 
CLR_MAUVE=0xffcba6f7
CLR_BLUE=0xff89b4fa
CLR_GREEN=0xffa6e3a1
CLR_RED=0xfff38ba8
CLR_YELLOW=0xfff9e2af
CLR_TEAL=0xff94e2d5
CLR_SUBTEXT=0xff6c7086      # Mocha surface2, good for secondary text

# === PADDING CONSTANTS
BAR_PADDING=8             # Outer bar padding (use compartments for outer spacing)
ITEM_PADDING=6             # Default horizontal padding between items
ICON_PADDING=2             # Consistent icon inner padding (reduced from mixed 2/4 for tighter look)
LABEL_PADDING=2            # Consistent label inner padding (unified from 4/2)
COMP_PADDING=6             # Compartment outer padding (increased from bar-level 0 for breathing room)

# === SYSTEM METRICS PROVIDER ===
#pkill -f stats_provider >/dev/null 2>&1
#/Users/nate/Documents/scripts/stats_provider --cpu temperature &

# === BAR (No outer padding; defer to compartments) ===
sketchybar --bar position=top height=34 blur_radius=0 color="$CLR_BG" padding_left="$BAR_PADDING" padding_right="$BAR_PADDING"

# === WORKSPACES ===
sketchybar --add event aerospace_workspace_change
LABELS=("" "" "" "" "" "" "󰖣" "" "󰎇")
LEFT_SPACE_ITEMS=()
INDEX=0

for sid in $(aerospace list-workspaces --all); do
  label="${LABELS[$INDEX]:-}"
  item="space.$sid"
  LEFT_SPACE_ITEMS+=("$item")

  sketchybar --add item "$item" left \
    --subscribe "$item" aerospace_workspace_change \
    --set "$item" \
      background.color=0xff000000 \
      background.corner_radius=5 \
      background.height=20 \
      background.drawing=off \
      label="$label" \
      icon.padding_left="$ICON_PADDING" \
      icon.padding_right="$ICON_PADDING" \
      label.padding_left="$LABEL_PADDING" \
      label.padding_right="$LABEL_PADDING" \
      click_script="aerospace workspace $sid" \
      script="$PLUGIN_DIR/aerospace.sh $sid"

  ((INDEX++))
done

# === DEFAULTS (Unified paddings for all items/icons/labels) ===
sketchybar --default \
  padding_left="$ITEM_PADDING" \
  padding_right="$ITEM_PADDING" \
  icon.font="VictorMono Nerd Font:Regular:12.0" \
  label.font="VictorMono Nerd Font:Regular:15.0" \
  icon.color="$CLR_FG" \
  label.color="$CLR_FG" \
  icon.padding_left="$ICON_PADDING" \
  icon.padding_right="$ICON_PADDING" \
  label.padding_left="$LABEL_PADDING" \
  label.padding_right="$LABEL_PADDING"

# === FRONT APP
sketchybar --add item front_app left \
  --set front_app \
    script="$PLUGIN_DIR/front_app.sh" \
    label.y_offset=1 \
    label.padding_right="$COMP_PADDING" \
  --subscribe front_app front_app_switched

# === RIGHT SIDE ITEMS ===
sketchybar --add item clock right \
  --set clock update_freq=10 icon= script="$PLUGIN_DIR/clock.sh" label.padding_right="$COMP_PADDING" 

sketchybar --add item volume right \
  --set volume script="$PLUGIN_DIR/volume.sh" \
  --subscribe volume volume_change

sketchybar --add item battery right \
  --set battery update_freq=120 script="$PLUGIN_DIR/battery.sh" \
  --subscribe battery system_woke power_source_change

sketchybar --add item net right \
  --set net update_freq=120 icon= script="$PLUGIN_DIR/wifi.sh"

# sketchybar --add item cpu_temp right \
 # --set cpu_temp icon= script="sketchybar --set cpu_temp label=\$CPU_TEMP" icon.padding_left="$COMP_PADDING" \
 # --subscribe cpu_temp system_stats

# === ITEM GROUPS ===
LEFT_ITEMS=("${LEFT_SPACE_ITEMS[@]}" front_app)
RIGHT_ITEMS=(clock volume battery net cpu_temp)

# === COMPARTMENTS (Outer padding for clean edges; height=26 leaves vertical margin in 34pt bar) ===
sketchybar --add bracket left_compartment "${LEFT_ITEMS[@]}" \
  --set left_compartment \
    background.color="$CLR_COMP_BG" \
    background.corner_radius=8 \
    background.height=26 \
    background.border_color="$CLR_COMP_BORDER" \
    background.border_width=1 \
    background.drawing=on

sketchybar --add bracket right_compartment "${RIGHT_ITEMS[@]}" \
  --set right_compartment \
    background.color="$CLR_COMP_BG" \
    background.corner_radius=8 \
    background.height=26 \
    background.border_color="$CLR_COMP_BORDER" \
    background.border_width=1 \
    background.padding_left=0 \
    background.drawing=on

# === FINALIZE ===
sketchybar --update
