summaryrefslogtreecommitdiff
path: root/dot-config/sketchybar/plugins
diff options
context:
space:
mode:
authorJosé Juan Loeza Sierra <jj@xz6ze.com>2025-06-13 01:02:52 -0700
committerJosé Juan Loeza Sierra <jj@xz6ze.com>2025-06-13 01:02:52 -0700
commitef91c646f7d7ce5a2547ce9badae64572d6fa1f4 (patch)
treef7f9bebd062779c0acc4ae0a9172c08683c34da0 /dot-config/sketchybar/plugins
parente06462207c18f18e5926ff80869b8af5e4fdaf4a (diff)
move all into one single .config directory
Moves of the config files into a single dot-config directory, simplifying the structure and the usage of stow. dot-config gets processed into .config by stow. See the `--dotfiles` option at https://www.gnu.org/software/stow/manual/stow.html#Invoking-Stow for more information
Diffstat (limited to 'dot-config/sketchybar/plugins')
-rwxr-xr-xdot-config/sketchybar/plugins/aerospace.sh10
-rwxr-xr-xdot-config/sketchybar/plugins/battery.sh28
-rwxr-xr-xdot-config/sketchybar/plugins/clock.sh8
-rwxr-xr-xdot-config/sketchybar/plugins/front_app.sh10
-rwxr-xr-xdot-config/sketchybar/plugins/network.sh20
-rwxr-xr-xdot-config/sketchybar/plugins/space.sh7
-rwxr-xr-xdot-config/sketchybar/plugins/volume.sh20
7 files changed, 103 insertions, 0 deletions
diff --git a/dot-config/sketchybar/plugins/aerospace.sh b/dot-config/sketchybar/plugins/aerospace.sh
new file mode 100755
index 0000000..6114c3d
--- /dev/null
+++ b/dot-config/sketchybar/plugins/aerospace.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+# make sure it's executable with:
+# chmod +x ~/.config/sketchybar/plugins/aerospace.sh
+
+if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
+ sketchybar --set $NAME background.drawing=on
+else
+ sketchybar --set $NAME background.drawing=off
+fi
diff --git a/dot-config/sketchybar/plugins/battery.sh b/dot-config/sketchybar/plugins/battery.sh
new file mode 100755
index 0000000..9dd9627
--- /dev/null
+++ b/dot-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/dot-config/sketchybar/plugins/clock.sh b/dot-config/sketchybar/plugins/clock.sh
new file mode 100755
index 0000000..edb27d5
--- /dev/null
+++ b/dot-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 '+%a %b %d %I:%M %p')"
+
diff --git a/dot-config/sketchybar/plugins/front_app.sh b/dot-config/sketchybar/plugins/front_app.sh
new file mode 100755
index 0000000..fb6d0b3
--- /dev/null
+++ b/dot-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/dot-config/sketchybar/plugins/network.sh b/dot-config/sketchybar/plugins/network.sh
new file mode 100755
index 0000000..e1790ae
--- /dev/null
+++ b/dot-config/sketchybar/plugins/network.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+NETWORK="$(scutil --nwi | awk -F': ' '/Network interfaces/ {print $2;}')"
+
+# Split devices into array
+IFS=' ' read -ra SERVICES <<< "$NETWORK"
+
+# Check the first device
+case "${SERVICES}" in
+ # check if no devices
+ "") ICON="󰤯"
+ ;;
+ # if en0, then wifi
+ "en0") ICON=""
+ ;;
+ # else, must be hardwired
+ *) ICON=""
+esac
+
+sketchybar --set "$NAME" icon="$ICON"
diff --git a/dot-config/sketchybar/plugins/space.sh b/dot-config/sketchybar/plugins/space.sh
new file mode 100755
index 0000000..b8602b5
--- /dev/null
+++ b/dot-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/dot-config/sketchybar/plugins/volume.sh b/dot-config/sketchybar/plugins/volume.sh
new file mode 100755
index 0000000..6e69a5d
--- /dev/null
+++ b/dot-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