]> git.frustrated-labs.net Git - dotfiles.git/commitdiff
add sketchybar config
authorAlexander Goussas <[email protected]>
Tue, 14 Apr 2026 03:20:34 +0000 (22:20 -0500)
committerAlexander Goussas <[email protected]>
Tue, 14 Apr 2026 03:20:34 +0000 (22:20 -0500)
Makefile.macos
sketchybar/.config/sketchybar/images/pikachu.gif [new file with mode: 0644]
sketchybar/.config/sketchybar/images/weavile.jpg [new file with mode: 0644]
sketchybar/.config/sketchybar/images/weavile.png [new file with mode: 0644]
sketchybar/.config/sketchybar/plugins/battery.sh [new file with mode: 0755]
sketchybar/.config/sketchybar/plugins/clock.sh [new file with mode: 0755]
sketchybar/.config/sketchybar/plugins/front_app.sh [new file with mode: 0755]
sketchybar/.config/sketchybar/plugins/space.sh [new file with mode: 0755]
sketchybar/.config/sketchybar/plugins/volume.sh [new file with mode: 0755]
sketchybar/.config/sketchybar/sketchybarrc [new file with mode: 0755]

index e1892a38dfc4cc27c3ce6790c4486ec7e8aa214e..7f40298a9b871af362d59ffbc5b7e6072c386106 100644 (file)
@@ -1,6 +1,6 @@
 include Makefile.common
 
-PKGS := amethyst yabai skhd $(PKGS_COMMON)
+PKGS := sketchybar amethyst yabai skhd $(PKGS_COMMON)
 
 install: 
        stow $(PKGS)
diff --git a/sketchybar/.config/sketchybar/images/pikachu.gif b/sketchybar/.config/sketchybar/images/pikachu.gif
new file mode 100644 (file)
index 0000000..45854ff
Binary files /dev/null and b/sketchybar/.config/sketchybar/images/pikachu.gif differ
diff --git a/sketchybar/.config/sketchybar/images/weavile.jpg b/sketchybar/.config/sketchybar/images/weavile.jpg
new file mode 100644 (file)
index 0000000..76267e6
Binary files /dev/null and b/sketchybar/.config/sketchybar/images/weavile.jpg differ
diff --git a/sketchybar/.config/sketchybar/images/weavile.png b/sketchybar/.config/sketchybar/images/weavile.png
new file mode 100644 (file)
index 0000000..e64d328
Binary files /dev/null and b/sketchybar/.config/sketchybar/images/weavile.png differ
diff --git a/sketchybar/.config/sketchybar/plugins/battery.sh b/sketchybar/.config/sketchybar/plugins/battery.sh
new file mode 100755 (executable)
index 0000000..9dd9627
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+PERCENTAGE="$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)"
+CHARGING="$(pmset -g batt | grep 'AC Power')"
+
+if [ "$PERCENTAGE" = "" ]; then
+  exit 0
+fi
+
+case "${PERCENTAGE}" in
+  9[0-9]|100) ICON=""
+  ;;
+  [6-8][0-9]) ICON=""
+  ;;
+  [3-5][0-9]) ICON=""
+  ;;
+  [1-2][0-9]) ICON=""
+  ;;
+  *) ICON=""
+esac
+
+if [[ "$CHARGING" != "" ]]; then
+  ICON=""
+fi
+
+# The item invoking this script (name $NAME) will get its icon and label
+# updated with the current battery status
+sketchybar --set "$NAME" icon="$ICON" label="${PERCENTAGE}%"
diff --git a/sketchybar/.config/sketchybar/plugins/clock.sh b/sketchybar/.config/sketchybar/plugins/clock.sh
new file mode 100755 (executable)
index 0000000..6cc739b
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# The $NAME variable is passed from sketchybar and holds the name of
+# the item invoking this script:
+# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
+
+sketchybar --set "$NAME" label="$(date '+%d/%m %H:%M')"
+
diff --git a/sketchybar/.config/sketchybar/plugins/front_app.sh b/sketchybar/.config/sketchybar/plugins/front_app.sh
new file mode 100755 (executable)
index 0000000..fb6d0b3
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# Some events send additional information specific to the event in the $INFO
+# variable. E.g. the front_app_switched event sends the name of the newly
+# focused application in the $INFO variable:
+# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
+
+if [ "$SENDER" = "front_app_switched" ]; then
+  sketchybar --set "$NAME" label="$INFO"
+fi
diff --git a/sketchybar/.config/sketchybar/plugins/space.sh b/sketchybar/.config/sketchybar/plugins/space.sh
new file mode 100755 (executable)
index 0000000..b8602b5
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# The $SELECTED variable is available for space components and indicates if
+# the space invoking this script (with name: $NAME) is currently selected:
+# https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item
+
+sketchybar --set "$NAME" background.drawing="$SELECTED"
diff --git a/sketchybar/.config/sketchybar/plugins/volume.sh b/sketchybar/.config/sketchybar/plugins/volume.sh
new file mode 100755 (executable)
index 0000000..6e69a5d
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# The volume_change event supplies a $INFO variable in which the current volume
+# percentage is passed to the script.
+
+if [ "$SENDER" = "volume_change" ]; then
+  VOLUME="$INFO"
+
+  case "$VOLUME" in
+    [6-9][0-9]|100) ICON="󰕾"
+    ;;
+    [3-5][0-9]) ICON="󰖀"
+    ;;
+    [1-9]|[1-2][0-9]) ICON="󰕿"
+    ;;
+    *) ICON="󰖁"
+  esac
+
+  sketchybar --set "$NAME" icon="$ICON" label="$VOLUME%"
+fi
diff --git a/sketchybar/.config/sketchybar/sketchybarrc b/sketchybar/.config/sketchybar/sketchybarrc
new file mode 100755 (executable)
index 0000000..437983c
--- /dev/null
@@ -0,0 +1,59 @@
+PLUGIN_DIR="$CONFIG_DIR/plugins"
+IMAGE_DIR="$CONFIG_DIR/images"
+
+sketchybar --bar position=top height=40 blur_radius=30 color=0x40000000
+
+default=(
+  padding_left=5
+  padding_right=5
+  icon.font="Hasklug Nerd Font Mono:Bold:17.0"
+  label.font="Hasklug Nerd Font Mono:Bold:14.0"
+  icon.color=0xffffffff
+  label.color=0xffffffff
+  icon.padding_left=4
+  icon.padding_right=4
+  label.padding_left=4
+  label.padding_right=4
+)
+sketchybar --default "${default[@]}"
+
+SPACE_ICONS=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10")
+for i in "${!SPACE_ICONS[@]}"
+do
+  sid="$(($i+1))"
+  space=(
+    space="$sid"
+    icon="${SPACE_ICONS[i]}"
+    icon.padding_left=7
+    icon.padding_right=7
+    background.color=0x40ffffff
+    background.corner_radius=5
+    background.height=25
+    label.drawing=off
+    script="$PLUGIN_DIR/space.sh"
+    click_script="yabai -m space --focus $sid"
+  )
+  sketchybar --add space space."$sid" left --set space."$sid" "${space[@]}"
+done
+
+sketchybar --add item chevron left \
+           --set chevron icon= label.drawing=off \
+           --add item front_app left \
+           --set front_app icon.drawing=off script="$PLUGIN_DIR/front_app.sh" \
+           --subscribe front_app front_app_switched
+
+sketchybar --add item pika left \
+           --set pika background.drawing=on \
+           --set pika background.image.scale=0.08 \
+           --set pika background.image="$IMAGE_DIR/weavile.png"
+
+sketchybar --add item clock right \
+           --set clock update_freq=10 icon=  script="$PLUGIN_DIR/clock.sh" \
+           --add item volume right \
+           --set volume script="$PLUGIN_DIR/volume.sh" \
+           --subscribe volume volume_change \
+           --add item battery right \
+           --set battery update_freq=120 script="$PLUGIN_DIR/battery.sh" \
+           --subscribe battery system_woke power_source_change
+
+sketchybar --update