users/ryan/modules/sketchybar/bar-config/plugins/spotify.sh

0ce4331f742863ec03c711c27b0a0dee7e8cc187 · 739 B · 20 lines raw

1 #!/usr/bin/env bash
2 # custom/spotify -> now playing, driven by the native media_change event.
3 source "$HOME/.config/sketchybar/icons.sh"
4
5 # Waybar on-click: playerctl play-pause
6 if [ "$1" = "toggle" ]; then
7 osascript -e 'tell application "Spotify" to playpause' 2>/dev/null
8 exit 0
9 fi
10
11 STATE="$(printf '%s' "$INFO" | sed -nE 's/.*"state":"([^"]*)".*/\1/p')"
12 TITLE="$(printf '%s' "$INFO" | sed -nE 's/.*"title":"([^"]*)".*/\1/p')"
13 ARTIST="$(printf '%s' "$INFO" | sed -nE 's/.*"artist":"([^"]*)".*/\1/p')"
14
15 # exec-if check-for-music -> only draw while something is playing
16 if [ "$STATE" = "playing" ] && [ -n "$TITLE" ]; then
17 sketchybar --set "$NAME" drawing=on label="$TITLE - $ARTIST"
18 else
19 sketchybar --set "$NAME" drawing=off
20 fi