-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrofi-mpc
executable file
Β·86 lines (76 loc) Β· 1.84 KB
/
rofi-mpc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env bash
. $HOME/.cache/wpgtk.color
mpc_status() {
status=$(mpc | sed -n 2p | awk -F " " '{print $1}' | sed "s/\&/\&/g")
if [ "$status" = "[paused]" ]; then
echo "ο"
else
echo "ο"
fi
}
mpc_status_opposite() {
if [ "$(mpc_status)" == "ο" ]; then
echo "ο"
else
echo "ο"
fi
}
mpc_get_mode() {
local arg=$1
output=$(mpc | tail -1 | cut -f2- | sed 's/: /:/g')
last="dummy-init"
while [ $(echo $iteration | sed "s/^$arg//g") != $last ]; do
last=iteration
iteration=$(echo $iteration | sed "s/^$arg//g")
done
echo $iteration
if [[ $mode == "$arg: on" ]]; then
echo "on"
else
echo "off"
fi
}
_rofi() {
rofi -sep '|' -columns 8 -lines 1 -disable-history true -cycle true \
-theme rofi-smallmenu.rasi -location 5 -width 550 -height 20 \
-dmenu -font "Hack Nerd Font 10" -mesg "<span background='$color3' foreground='$color0'> $(mpc_status) </span> $(mpc current | sed 's/\&/\&/g')"
}
inform() {
# show-lemonbar nowplaying
notify-send.py --replaces-process "rofi-mpc" "rofi-mpc" "$@"
}
choice=$(echo -n "ο|$(mpc_status_opposite)|ο|ο|ο₯|ο΄|ο₯|ο¨|ξΏ|ο‘" | _rofi)
case "$choice" in
ο)
mpc cdprev && inform "Playing previous track"
;;
ο|ο)
mpc toggle && inform "$(if [ $choice == 'ο' ]; then echo 'Continuing playback'; else echo 'Pausing'; fi)"
;;
ο)
mpc next && inform "Playing next track"
;;
ο¨)
vol=$(echo -n "100|75|50|25|+5|-5" | _rofi)
mpc volume ${vol}
;;
ο)
mpc -q repeat && inform "mpc repeat $(mpc_get_mode repeat)"
;;
ο₯)
mpc -q random && inform
;;
ο₯)
mpc -q single && inform
;;
ο΄)
cross=$(echo -n "0|1|5|7|10|15" | _rofi)
mpc crossfade ${cross}
;;
ξΏ)
mpc consume && inform
;;
ο‘)
systemctl --user restart mpd.service
;;
esac