users/ryan/modules/sketchybar/bar-config/plugins/spotify.sh
main
· 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 |