From: Alexander Goussas Date: Tue, 14 Apr 2026 03:20:34 +0000 (-0500) Subject: add sketchybar config X-Git-Url: http://git.frustrated-labs.net/?a=commitdiff_plain;h=0379c6ad3077edc62013aa025cf867c302c4cce2;p=dotfiles.git add sketchybar config --- diff --git a/Makefile.macos b/Makefile.macos index e1892a3..7f40298 100644 --- a/Makefile.macos +++ b/Makefile.macos @@ -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 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 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 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 index 0000000..9dd9627 --- /dev/null +++ b/sketchybar/.config/sketchybar/plugins/battery.sh @@ -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 index 0000000..6cc739b --- /dev/null +++ b/sketchybar/.config/sketchybar/plugins/clock.sh @@ -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 index 0000000..fb6d0b3 --- /dev/null +++ b/sketchybar/.config/sketchybar/plugins/front_app.sh @@ -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 index 0000000..b8602b5 --- /dev/null +++ b/sketchybar/.config/sketchybar/plugins/space.sh @@ -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 index 0000000..6e69a5d --- /dev/null +++ b/sketchybar/.config/sketchybar/plugins/volume.sh @@ -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 index 0000000..437983c --- /dev/null +++ b/sketchybar/.config/sketchybar/sketchybarrc @@ -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