diff options
| author | Alec Goncharow <algo@cloudflare.com> | 2022-02-20 11:50:35 -0500 |
|---|---|---|
| committer | Alec Goncharow <algo@cloudflare.com> | 2022-02-20 11:50:35 -0500 |
| commit | f5abca7278f3ac0c7358e6f30db8a15da45a1e3b (patch) | |
| tree | 96889e1a2cc2367b8461414ae7c94d9050b84890 /.config/rofi/applets/android/mpd.sh | |
| parent | 3e0c8208ccbead65cd434fe730223a7ab854c377 (diff) | |
| parent | 72cf398a6292fa56d57e82caa4d21570e5573294 (diff) | |
Merge branch 'desktop' of github.com:AlecGoncharow/dotfiles into desktop
Diffstat (limited to '.config/rofi/applets/android/mpd.sh')
| -rwxr-xr-x | .config/rofi/applets/android/mpd.sh | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/.config/rofi/applets/android/mpd.sh b/.config/rofi/applets/android/mpd.sh new file mode 100755 index 0000000..6f15be0 --- /dev/null +++ b/.config/rofi/applets/android/mpd.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya +## Mail : adi1090x@gmail.com +## Github : @adi1090x +## Twitter : @adi1090x + +dir="$HOME/.config/rofi/applets/android" +rofi_command="rofi -theme $dir/six.rasi" + +# Gets the current status of mpd (for us to parse it later on) +status="$(mpc status)" +# Defines the Play / Pause option content +if [[ $status == *"[playing]"* ]]; then + play_pause="" +else + play_pause="" +fi +active="" +urgent="" + +# Display if repeat mode is on / off +tog_repeat="" +if [[ $status == *"repeat: on"* ]]; then + active="-a 4" +elif [[ $status == *"repeat: off"* ]]; then + urgent="-u 4" +else + tog_repeat=" Parsing error" +fi + +# Display if random mode is on / off +tog_random="" +if [[ $status == *"random: on"* ]]; then + [ -n "$active" ] && active+=",5" || active="-a 5" +elif [[ $status == *"random: off"* ]]; then + [ -n "$urgent" ] && urgent+=",5" || urgent="-u 5" +else + tog_random=" Parsing error" +fi +stop="" +next="" +previous="" + +# Variable passed to rofi +options="$previous\n$play_pause\n$stop\n$next\n$tog_repeat\n$tog_random" + +# Get the current playing song +current=$(mpc -f %title% current) +# If mpd isn't running it will return an empty string, we don't want to display that +if [[ -z "$current" ]]; then + current="-" +fi + +# Spawn the mpd menu with the "Play / Pause" entry selected by default +chosen="$(echo -e "$options" | $rofi_command -p " $current" -dmenu $active $urgent -selected-row 1)" +case $chosen in + $previous) + mpc -q prev && notify-send -u low -t 1800 " $(mpc current)" + ;; + $play_pause) + mpc -q toggle && notify-send -u low -t 1800 " $(mpc current)" + ;; + $stop) + mpc -q stop + ;; + $next) + mpc -q next && notify-send -u low -t 1800 " $(mpc current)" + ;; + $tog_repeat) + mpc -q repeat + ;; + $tog_random) + mpc -q random + ;; +esac |
