From e02542fca8dfe25bc22346b55b35d2a6cbc0c35c Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Wed, 25 Nov 2015 20:17:15 +0100 Subject: rework media buttons control to function with spotify also remove bash wrapper for fish scripts and just use bash scripts --- scripts/i3_use_fish.sh | 8 -------- scripts/media_control.sh | 36 ++++++++++++++++++++++++++++++++++++ scripts/media_next.fish | 5 ----- scripts/media_prev.fish | 5 ----- scripts/media_toggle.fish | 5 ----- scripts/spotify-artist-title.sh | 14 ++++++++++++++ 6 files changed, 50 insertions(+), 23 deletions(-) delete mode 100755 scripts/i3_use_fish.sh create mode 100644 scripts/media_control.sh delete mode 100644 scripts/media_next.fish delete mode 100644 scripts/media_prev.fish delete mode 100644 scripts/media_toggle.fish create mode 100644 scripts/spotify-artist-title.sh (limited to 'scripts') diff --git a/scripts/i3_use_fish.sh b/scripts/i3_use_fish.sh deleted file mode 100755 index 25435fd..0000000 --- a/scripts/i3_use_fish.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -if type fish &>/dev/null -then - exec fish $1 -else - exec i3-nagbar -m "please install fish to use this script $1" -fi diff --git a/scripts/media_control.sh b/scripts/media_control.sh new file mode 100644 index 0000000..c0ce02a --- /dev/null +++ b/scripts/media_control.sh @@ -0,0 +1,36 @@ +# NOTE: +# if spotify is running toggle is consumed by spotify. + +#!/bin/bash + +# arg parsing +if [ "$1" = "toggle" ] +then + spotify_cmd="PlayPause" +elif [ "$1" = "next" ] +then + spotify_cmd="Next" +elif [ "$1" = "prev" ] +then + spotify_cmd="Previous" +fi + +if [ "$spotify_cmd" != "" ] +then + # can't be sure if spotify was running and should play again + if [ "$spotify_cmd" = "PlayPause" ] + then + if [ "$(ps -A | grep spotify)" != "" ] + then + dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.$spotify_cmd + else + mpc $1 + fi + elif [ "$(lsof | grep /dev/snd | grep spotify)" != "" ] + then + dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.$spotify_cmd + elif [ "$(mpc | grep '\[' | cut -f1 -d' ')" != "" ] + then + mpc $1 &>/dev/null + fi +fi diff --git a/scripts/media_next.fish b/scripts/media_next.fish deleted file mode 100644 index 173d9fc..0000000 --- a/scripts/media_next.fish +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/fish - -if type mpc >/dev/null 2>/dev/null - mpc next >/dev/null 2>/dev/null -end diff --git a/scripts/media_prev.fish b/scripts/media_prev.fish deleted file mode 100644 index e29bc88..0000000 --- a/scripts/media_prev.fish +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/fish - -if type mpc >/dev/null 2>/dev/null - mpc prev >/dev/null 2>/dev/null -end diff --git a/scripts/media_toggle.fish b/scripts/media_toggle.fish deleted file mode 100644 index e826122..0000000 --- a/scripts/media_toggle.fish +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/fish - -if type mpc >/dev/null 2>/dev/null - mpc toggle >/dev/null 2>/dev/null -end diff --git a/scripts/spotify-artist-title.sh b/scripts/spotify-artist-title.sh new file mode 100644 index 0000000..62494b8 --- /dev/null +++ b/scripts/spotify-artist-title.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +metadata=$(dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'Metadata') + +if [[ $metadata == *"spotify:ad"* ]] +then + echo "ad :/" +else + artist=$(echo "$metadata" | egrep -A 2 "artist" | egrep -v "artist" | egrep -v "array" | cut -b 27- | cut -d '"' -f 1 | egrep -v ^$) + + title=$(echo "$metadata" | egrep -A 1 "title" | egrep -v "title" | cut -b 44- | cut -d '"' -f 1| egrep -v ^$) + + echo $artist - $title +fi -- cgit v1.2.3