#!/bin/sh metadata=$(busctl --user get-property org.mpris.MediaPlayer2.strawberry /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player Metadata 2>/dev/null) if [ $? -ne 0 ] then echo "Strawberry not running" exit 1 fi if [ "$metadata" = "a{sv} 0" ] then echo "No song in playlist" exit 2 fi artist=$(echo $metadata | sed 's/^.*"xesam:albumArtist" as 1 "\([^"]\+\)".*$/\1/') album=$(echo $metadata | sed 's/^.*"xesam:album" s "\([^"]\+\)".*$/\1/') trackNumber=$(echo $metadata | sed 's/^.*"xesam:trackNumber" i \([0-9]\+\).*$/\1/') title=$(echo $metadata | sed 's/^.*"xesam:title" s "\([^"]\+\)".*$/\1/') length=$(echo $metadata | sed 's/^.*"mpris:length" x \([0-9]\+\)[0-9]\{6\}.*$/\1/') position=$(busctl --user get-property org.mpris.MediaPlayer2.strawberry /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player Position | sed 's/^x \([0-9]\+\)[0-9]\{6\}$/\1/') playback_status=$(busctl --user get-property org.mpris.MediaPlayer2.strawberry /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player PlaybackStatus | sed 's/^s "\(.\+\)"$/\1/') if [ "$length" -ge 3600 ] then format="+%H:%M:%S" else format="+%M:%S" fi formatted_length=$(date --date=@$length --utc $format) formatted_position=$(date --date=@$position --utc $format) if [ "$playback_status" != "Playing" ] then printf "($playback_status) " fi echo "$artist - $album - $title ($trackNumber) [$formatted_position / $formatted_length]"