mirror of
https://github.com/adi1090x/rofi.git
synced 2024-11-22 22:28:21 -05:00
cmus applet
This commit is contained in:
parent
9c4093c665
commit
5269ce764e
78
720p/applets/applets/cmus.sh
Normal file
78
720p/applets/applets/cmus.sh
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
## Author : Aditya Shakya
|
||||||
|
## Mail : adi1090x@gmail.com
|
||||||
|
## Github : @adi1090x
|
||||||
|
## Twitter : @adi1090x
|
||||||
|
|
||||||
|
style="$($HOME/.config/rofi/applets/applets/style.sh)"
|
||||||
|
|
||||||
|
dir="$HOME/.config/rofi/applets/applets/configs/$style"
|
||||||
|
rofi_command="rofi -theme $dir/mpd.rasi"
|
||||||
|
|
||||||
|
# Gets the current status of mpd (for us to parse it later on)
|
||||||
|
status="$(cmus-remote -C 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 true"* ]]; then
|
||||||
|
active="-a 4"
|
||||||
|
elif [[ $status == *"repeat false"* ]]; then
|
||||||
|
urgent="-u 4"
|
||||||
|
else
|
||||||
|
tog_repeat=" Parsing error"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Display if random mode is on / off
|
||||||
|
tog_random=""
|
||||||
|
if [[ $status == *"shuffle true"* ]]; then
|
||||||
|
[ -n "$active" ] && active+=",5" || active="-a 5"
|
||||||
|
elif [[ $status == *"shuffle false"* ]]; 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
|
||||||
|
song=$(echo -n $(cmus-remote -C status | grep title | cut -c 11-))
|
||||||
|
# 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 " $song" -dmenu $active $urgent -selected-row 1)"
|
||||||
|
case $chosen in
|
||||||
|
$previous)
|
||||||
|
cmus-remote --prev && notify-send -u low -t 1800 " $song"
|
||||||
|
;;
|
||||||
|
$play_pause)
|
||||||
|
cmus-remote --pause && notify-send -u low -t 1800 " $song"
|
||||||
|
;;
|
||||||
|
$stop)
|
||||||
|
cmus-remote --stop
|
||||||
|
;;
|
||||||
|
$next)
|
||||||
|
cmus-remote --next && notify-send -u low -t 1800 " $song"
|
||||||
|
;;
|
||||||
|
$tog_repeat)
|
||||||
|
cmus-remote --repeat
|
||||||
|
;;
|
||||||
|
$tog_random)
|
||||||
|
cmus-remote --shuffle
|
||||||
|
;;
|
||||||
|
esac
|
Loading…
Reference in New Issue
Block a user