From ff5629e60b815b3c21ef216d5ba5943932589758 Mon Sep 17 00:00:00 2001 From: Ryan Brushett Date: Fri, 30 Dec 2016 14:29:17 -0330 Subject: Improve UX for Spotify quit command in osx plugin (#5726) * Improve UX for Spotify commands in osx plugin Spotify command UX is a bit weak for people who live and work almost entirely in shells. - `spotify quit` should not open Spotify if it is not already running. Should confirm that Spotify is indeed not running. - `spotify quit` should not blow away the user's shell once Spotify is quit. This can be a disruption to work flow. This PR looks to add a few little checks which will help improve this experience. This PR also adds a space to line 477 between `break` and `;;` for consistency. Doesn't seem like a big enough change to put in its own PR. * Rearranging output as per peer feedback * osx plugin's spotify: change quitting w/ closing Closing is more idiomatic English. --- plugins/osx/osx.plugin.zsh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'plugins/osx') diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index d7baa1191..95ef3e1aa 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -323,7 +323,7 @@ function spotify() { if [ $# = 0 ]; then showHelp; else - if [ "$(osascript -e 'application "Spotify" is running')" = "false" ]; then + if [ "$1" != "quit" ] && [ "$(osascript -e 'application "Spotify" is running')" = "false" ]; then osascript -e 'tell application "Spotify" to activate' sleep 2 fi @@ -413,9 +413,13 @@ function spotify() { break ;; "quit" ) - cecho "Quitting Spotify."; - osascript -e 'tell application "Spotify" to quit'; - exit 1 ;; + if [ "$(osascript -e 'application "Spotify" is running')" = "false" ]; then + cecho "Spotify was not running." + else + cecho "Closing Spotify."; + osascript -e 'tell application "Spotify" to quit'; + fi + break ;; "next" ) cecho "Going to next track." ; @@ -470,7 +474,7 @@ function spotify() { "pos" ) cecho "Adjusting Spotify play position." osascript -e "tell application \"Spotify\" to set player position to $2"; - break;; + break ;; "status" ) showStatus; -- cgit v1.2.3-70-g09d2 From d874c73f19d8430f4dc32756fff0bf2f6a804d87 Mon Sep 17 00:00:00 2001 From: Avi Israeli Date: Thu, 23 Feb 2017 09:53:27 +0200 Subject: itunes playlist first commit (#5860) Added playlist feature for the itunes command: if a variable is passed and is valid - will play the playlist if a variable is passed and is invalid(no such playlist) - will stop all playing if no variable is passed will print all playlists available on the host --- plugins/osx/osx.plugin.zsh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'plugins/osx') diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index 95ef3e1aa..e8488ebc9 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -184,6 +184,7 @@ function vncviewer() { # iTunes control function function itunes() { local opt=$1 + local playlist=$2 shift case "$opt" in launch|play|pause|stop|rewind|resume|quit) @@ -200,6 +201,19 @@ function itunes() { vol) opt="set sound volume to $1" #$1 Due to the shift ;; + playlist) + # Inspired by: https://gist.github.com/nakajijapan/ac8b45371064ae98ea7f +if [[ ! -z "$playlist" ]]; then + osascript -e 'tell application "iTunes"' -e "set new_playlist to \"$playlist\" as string" -e "play playlist new_playlist" -e "end tell" 2>/dev/null; + if [[ $? -eq 0 ]]; then + opt="play" + else + opt="stop" + fi + else + opt="set allPlaylists to (get name of every playlist)" + fi + ;; playing|status) local state=`osascript -e 'tell application "iTunes" to player state as string'` if [[ "$state" = "playing" ]]; then @@ -250,6 +264,7 @@ EOF echo "\tshuf|shuffle [on|off|toggle]\tSet shuffled playback. Default: toggle. Note: toggle doesn't support the MiniPlayer." echo "\tvol\tSet the volume, takes an argument from 0 to 100" echo "\tplaying|status\tShow what song is currently playing in iTunes." + echo "\tplaylist [playlist name]\t Play specific playlist" echo "\thelp\tshow this message and exit" return 0 ;; -- cgit v1.2.3-70-g09d2