From ef91c646f7d7ce5a2547ce9badae64572d6fa1f4 Mon Sep 17 00:00:00 2001 From: José Juan Loeza Sierra Date: Fri, 13 Jun 2025 01:02:52 -0700 Subject: 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 --- dot-config/sketchybar/plugins/aerospace.sh | 10 ++++++++++ dot-config/sketchybar/plugins/battery.sh | 28 ++++++++++++++++++++++++++++ dot-config/sketchybar/plugins/clock.sh | 8 ++++++++ dot-config/sketchybar/plugins/front_app.sh | 10 ++++++++++ dot-config/sketchybar/plugins/network.sh | 20 ++++++++++++++++++++ dot-config/sketchybar/plugins/space.sh | 7 +++++++ dot-config/sketchybar/plugins/volume.sh | 20 ++++++++++++++++++++ 7 files changed, 103 insertions(+) create mode 100755 dot-config/sketchybar/plugins/aerospace.sh create mode 100755 dot-config/sketchybar/plugins/battery.sh create mode 100755 dot-config/sketchybar/plugins/clock.sh create mode 100755 dot-config/sketchybar/plugins/front_app.sh create mode 100755 dot-config/sketchybar/plugins/network.sh create mode 100755 dot-config/sketchybar/plugins/space.sh create mode 100755 dot-config/sketchybar/plugins/volume.sh (limited to 'dot-config/sketchybar/plugins') 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 -- cgit v1.3