summaryrefslogtreecommitdiff
path: root/mac/.config/sketchybar/plugins/spotify.sh
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-08-23 12:42:37 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-08-23 12:42:37 +0900
commit07d294425a98ee5d1e22d03e2b24ae2c76e487c0 (patch)
treea6818f0d64438c5fdb88b00a35d944f80c056213 /mac/.config/sketchybar/plugins/spotify.sh
parent6fc28cdb3529ca8ee864cb5c41674cb0a4af72a1 (diff)
updates
Diffstat (limited to 'mac/.config/sketchybar/plugins/spotify.sh')
-rw-r--r--mac/.config/sketchybar/plugins/spotify.sh147
1 files changed, 0 insertions, 147 deletions
diff --git a/mac/.config/sketchybar/plugins/spotify.sh b/mac/.config/sketchybar/plugins/spotify.sh
deleted file mode 100644
index 521ac60..0000000
--- a/mac/.config/sketchybar/plugins/spotify.sh
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/bin/bash
-
-next ()
-{
- osascript -e 'tell application "Spotify" to play next track'
-}
-
-back ()
-{
- osascript -e 'tell application "Spotify" to play previous track'
-}
-
-play ()
-{
- osascript -e 'tell application "Spotify" to playpause'
-}
-
-repeat ()
-{
- REPEAT=$(osascript -e 'tell application "Spotify" to get repeating')
- if [ "$REPEAT" = "false" ]; then
- sketchybar -m --set spotify.repeat icon.highlight=on
- osascript -e 'tell application "Spotify" to set repeating to true'
- else
- sketchybar -m --set spotify.repeat icon.highlight=off
- osascript -e 'tell application "Spotify" to set repeating to false'
- fi
-}
-
-shuffle ()
-{
- SHUFFLE=$(osascript -e 'tell application "Spotify" to get shuffling')
- if [ "$SHUFFLE" = "false" ]; then
- sketchybar -m --set spotify.shuffle icon.highlight=on
- osascript -e 'tell application "Spotify" to set shuffling to true'
- else
- sketchybar -m --set spotify.shuffle icon.highlight=off
- osascript -e 'tell application "Spotify" to set shuffling to false'
- fi
-}
-
-update ()
-{
- PLAYING=1
- if [ "$(echo "$INFO" | jq -r '.["Player State"]')" = "Playing" ]; then
- PLAYING=0
- TRACK="$(echo "$INFO" | jq -r .Name)"
- ARTIST="$(echo "$INFO" | jq -r .Artist)"
- ALBUM="$(echo "$INFO" | jq -r .Album)"
- SHUFFLE=$(osascript -e 'tell application "Spotify" to get shuffling')
- REPEAT=$(osascript -e 'tell application "Spotify" to get repeating')
- COVER=$(osascript -e 'tell application "Spotify" to get artwork url of current track')
- fi
-
- args=()
- if [ $PLAYING -eq 0 ]; then
- curl -s --max-time 20 "$COVER" -o /tmp/cover.jpg
- if [ "$ARTIST" == "" ]; then
- args+=(--set spotify.title label="$TRACK"
- --set spotify.album label="Podcast"
- --set spotify.artist label="$ALBUM" )
- else
- args+=(--set spotify.title label="$TRACK"
- --set spotify.album label="$ALBUM"
- --set spotify.artist label="$ARTIST")
- fi
- args+=(--set spotify.play icon=􀊆
- --set spotify.shuffle icon.highlight=$SHUFFLE
- --set spotify.repeat icon.highlight=$REPEAT
- --set spotify.cover background.image="/tmp/cover.jpg"
- background.color=0x00000000
- --set spotify.anchor drawing=on )
- else
- args+=(--set spotify.anchor drawing=off popup.drawing=off
- --set spotify.play icon=􀊄 )
- fi
- sketchybar -m "${args[@]}"
-}
-
-scrubbing() {
- DURATION_MS=$(osascript -e 'tell application "Spotify" to get duration of current track')
- DURATION=$((DURATION_MS/1000))
-
- TARGET=$((DURATION*PERCENTAGE/100))
- osascript -e "tell application \"Spotify\" to set player position to $TARGET"
- sketchybar --set spotify.state slider.percentage=$PERCENTAGE
-}
-
-scroll() {
- DURATION_MS=$(osascript -e 'tell application "Spotify" to get duration of current track')
- DURATION=$((DURATION_MS/1000))
-
- FLOAT="$(osascript -e 'tell application "Spotify" to get player position')"
- TIME=${FLOAT%.*}
-
- sketchybar --animate linear 10 \
- --set spotify.state slider.percentage="$((TIME*100/DURATION))" \
- icon="$(date -r $TIME +'%M:%S')" \
- label="$(date -r $DURATION +'%M:%S')"
-}
-
-mouse_clicked () {
- case "$NAME" in
- "spotify.next") next
- ;;
- "spotify.back") back
- ;;
- "spotify.play") play
- ;;
- "spotify.shuffle") shuffle
- ;;
- "spotify.repeat") repeat
- ;;
- "spotify.state") scrubbing
- ;;
- *) exit
- ;;
- esac
-}
-
-popup () {
- sketchybar --set spotify.anchor popup.drawing=$1
-}
-
-routine() {
- case "$NAME" in
- "spotify.state") scroll
- ;;
- *) update
- ;;
- esac
-}
-
-case "$SENDER" in
- "mouse.clicked") mouse_clicked
- ;;
- "mouse.entered") popup on
- ;;
- "mouse.exited"|"mouse.exited.global") popup off
- ;;
- "routine") routine
- ;;
- "forced") exit 0
- ;;
- *) update
- ;;
-esac