From 0ddcc4362ccab3a443d244c6c8beb7a1eef4d9a4 Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Fri, 3 Feb 2023 11:05:39 -0700 Subject: Rename spotify-control to media-control. This is part of a plan to decouple Spotify from RDE. --- extras/HOME/.local/bin/media-control | 107 +++++++++++++++++++++++++++++++++ extras/HOME/.local/bin/spotify-control | 107 --------------------------------- extras/HOME/.xmobarrc | 2 +- extras/HOME/.xmonad/xmobar-media | 2 +- 4 files changed, 109 insertions(+), 109 deletions(-) create mode 100755 extras/HOME/.local/bin/media-control delete mode 100755 extras/HOME/.local/bin/spotify-control (limited to 'extras') diff --git a/extras/HOME/.local/bin/media-control b/extras/HOME/.local/bin/media-control new file mode 100755 index 0000000..34a2633 --- /dev/null +++ b/extras/HOME/.local/bin/media-control @@ -0,0 +1,107 @@ +#!/bin/bash + +if [ $# -lt 1 ] +then + echo "No command?" + exit +fi + +target_hint="spotify" +while [[ "$1" == --* ]] ; do + arg="$1" + case "$arg" in + --target-hint=*) + target_hint="${arg/--target-hint=/}" + ;; + *) + echo "Bad Argument $1" + exit 1 + ;; + esac + shift +done + +# Some targets (spotifyd) don't have a stable dbus path. +targets="$( \ + dbus-send \ + --print-reply \ + --dest=org.freedesktop.DBus \ + /org/freedesktop/DBus org.freedesktop.DBus.ListNames \ + | sed 's#.*string \"\(.*\)"#\1#' \ + | grep MediaPlayer2)" + +# Prefer the target hint. +target="$(echo "$targets" | grep -i "$target_hint" | head -n1)" +if [ -z "$target" ] ; then + # If no spotify, pick an arbitrary one + target="$(echo "$targets" | head -n1)" +fi + +function mpris2_dbus_player_do { + dbus-send \ + --print-reply \ + --dest="$target" \ + /org/mpris/MediaPlayer2 \ + "org.mpris.MediaPlayer2.Player.$1" +} + +function mpris2_dbus_get_player_property { + dbus-send \ + --print-reply \ + --dest="$target" \ + /org/mpris/MediaPlayer2 \ + org.freedesktop.DBus.Properties.Get \ + string:'org.mpris.MediaPlayer2.Player' "string:$1" +} + +case $1 in + "play") + mpris2_dbus_player_do PlayPause + ;; + "next") + mpris2_dbus_player_do Next + ;; + "pause") + mpris2_dbus_player_do Pause + ;; + "justplay") + mpris2_dbus_player_do Play + ;; + "prev") + mpris2_dbus_player_do Previous + ;; + "getTitle") + mpris2_dbus_get_player_property 'Metadata' | \ + egrep -A 1 "title" | \ + egrep -v "title" | \ + cut -b 44- | \ + cut -d '"' -f 1 | \ + egrep -v ^$ + ;; + "getArtist") + mpris2_dbus_get_player_property 'Metadata' | \ + -A 2 "artist" | \ + egrep -v "artist" | \ + egrep -v "array" | \ + cut -b 27- | \ + cut -d '"' -f 1 | \ + egrep -v ^$ + ;; + "getAlbum") + mpris2_dbus_get_player_property 'Metadata' | \ + egrep -A 2 "album" | \ + egrep -v "album" | \ + egrep -v "array" | \ + cut -b 44- | \ + cut -d '"' -f 1 | \ + egrep -v ^$ + ;; + "getStatus") + mpris2_dbus_get_player_property 'PlaybackStatus' | \ + grep 'string "[^"]*"' | \ + sed 's/.*"\(.*\)"[^"]*$/\1/' + ;; + *) + echo "Unknown command: " $1 + ;; +esac diff --git a/extras/HOME/.local/bin/spotify-control b/extras/HOME/.local/bin/spotify-control deleted file mode 100755 index 34a2633..0000000 --- a/extras/HOME/.local/bin/spotify-control +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash - -if [ $# -lt 1 ] -then - echo "No command?" - exit -fi - -target_hint="spotify" -while [[ "$1" == --* ]] ; do - arg="$1" - case "$arg" in - --target-hint=*) - target_hint="${arg/--target-hint=/}" - ;; - *) - echo "Bad Argument $1" - exit 1 - ;; - esac - shift -done - -# Some targets (spotifyd) don't have a stable dbus path. -targets="$( \ - dbus-send \ - --print-reply \ - --dest=org.freedesktop.DBus \ - /org/freedesktop/DBus org.freedesktop.DBus.ListNames \ - | sed 's#.*string \"\(.*\)"#\1#' \ - | grep MediaPlayer2)" - -# Prefer the target hint. -target="$(echo "$targets" | grep -i "$target_hint" | head -n1)" -if [ -z "$target" ] ; then - # If no spotify, pick an arbitrary one - target="$(echo "$targets" | head -n1)" -fi - -function mpris2_dbus_player_do { - dbus-send \ - --print-reply \ - --dest="$target" \ - /org/mpris/MediaPlayer2 \ - "org.mpris.MediaPlayer2.Player.$1" -} - -function mpris2_dbus_get_player_property { - dbus-send \ - --print-reply \ - --dest="$target" \ - /org/mpris/MediaPlayer2 \ - org.freedesktop.DBus.Properties.Get \ - string:'org.mpris.MediaPlayer2.Player' "string:$1" -} - -case $1 in - "play") - mpris2_dbus_player_do PlayPause - ;; - "next") - mpris2_dbus_player_do Next - ;; - "pause") - mpris2_dbus_player_do Pause - ;; - "justplay") - mpris2_dbus_player_do Play - ;; - "prev") - mpris2_dbus_player_do Previous - ;; - "getTitle") - mpris2_dbus_get_player_property 'Metadata' | \ - egrep -A 1 "title" | \ - egrep -v "title" | \ - cut -b 44- | \ - cut -d '"' -f 1 | \ - egrep -v ^$ - ;; - "getArtist") - mpris2_dbus_get_player_property 'Metadata' | \ - -A 2 "artist" | \ - egrep -v "artist" | \ - egrep -v "array" | \ - cut -b 27- | \ - cut -d '"' -f 1 | \ - egrep -v ^$ - ;; - "getAlbum") - mpris2_dbus_get_player_property 'Metadata' | \ - egrep -A 2 "album" | \ - egrep -v "album" | \ - egrep -v "array" | \ - cut -b 44- | \ - cut -d '"' -f 1 | \ - egrep -v ^$ - ;; - "getStatus") - mpris2_dbus_get_player_property 'PlaybackStatus' | \ - grep 'string "[^"]*"' | \ - sed 's/.*"\(.*\)"[^"]*$/\1/' - ;; - *) - echo "Unknown command: " $1 - ;; -esac diff --git a/extras/HOME/.xmobarrc b/extras/HOME/.xmobarrc index ffe7957..62efc0a 100644 --- a/extras/HOME/.xmobarrc +++ b/extras/HOME/.xmobarrc @@ -34,7 +34,7 @@ Config \%UnsafeStdinReader%}{\ \\ \\ - \%weather% \ + \| %weather% \ \\ \%media%\ \%bluetooth% %bat% %cpu% %memory% %time% ", diff --git a/extras/HOME/.xmonad/xmobar-media b/extras/HOME/.xmonad/xmobar-media index 8855ea9..bdedc8d 100755 --- a/extras/HOME/.xmonad/xmobar-media +++ b/extras/HOME/.xmonad/xmobar-media @@ -1,6 +1,6 @@ #!/bin/bash -title="$(spotify-control getTitle)" +title="$(media-control getTitle)" ntitle=${#title} if [[ "$ntitle" -gt 40 ]] ; then title="${title:0:36} ..." -- cgit