diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-08-23 12:42:37 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-08-23 12:42:37 +0900 |
| commit | 07d294425a98ee5d1e22d03e2b24ae2c76e487c0 (patch) | |
| tree | a6818f0d64438c5fdb88b00a35d944f80c056213 /mac/.config/sketchybar/plugins/spotify.sh | |
| parent | 6fc28cdb3529ca8ee864cb5c41674cb0a4af72a1 (diff) | |
updates
Diffstat (limited to 'mac/.config/sketchybar/plugins/spotify.sh')
| -rw-r--r-- | mac/.config/sketchybar/plugins/spotify.sh | 147 |
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 |
