73 lines
1.5 KiB
Bash
Executable file
73 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
|
|
if pidof mocp &>/dev/null
|
|
then
|
|
origstatus=$(mocp -Q "%state")
|
|
else
|
|
origstatus=STOP
|
|
[[ -n "$BLOCK_BUTTON" ]] && mocp -S
|
|
fi
|
|
|
|
case $BLOCK_BUTTON in
|
|
1) [[ "$origstatus" != "STOP" ]] && mocp -r || mocp -p ;;
|
|
2) mocp -G ;;
|
|
3) [[ "$origstatus" != "STOP" ]] && mocp -f || mocp -p ;;
|
|
4) mocp -j $(($(mocp -Q "%cs") - 5))s ;;
|
|
5) mocp -j $(($(mocp -Q "%cs") + 5))s ;;
|
|
esac
|
|
|
|
status="<span foreground=\"#6699CC\">█</span>"
|
|
case $origstatus in
|
|
STOP ) status="<span foreground=\"#F2777A\">█</span>" ;;
|
|
PAUSE ) status="<span foreground=\"#FFCC66\">█</span>" ;;
|
|
PLAY ) status="<span foreground=\"#99CC99\">█</span>" ;;
|
|
esac
|
|
|
|
if [[ "$origstatus" != "STOP" ]]
|
|
then
|
|
if [[ -f /dev/shm/mocp ]]
|
|
then
|
|
song=$(</dev/shm/mocp)
|
|
else
|
|
song=$(mocp -Q "%song, %artist")
|
|
[[ -z "$song" ]] && song=$(basename "$(mocp -Q %file)")
|
|
[[ -n "$song" ]] && echo "$song" > /dev/shm/mocp
|
|
fi
|
|
|
|
song="${song//&/and}"
|
|
|
|
if [ ${#song} -gt 30 ]
|
|
then
|
|
dots="…"
|
|
fi
|
|
if [ ${#song} -gt 15 ]
|
|
then
|
|
shortdots="…"
|
|
fi
|
|
|
|
time="$(mocp -Q "[%ct %tl %tt]")"
|
|
shorttime="$(mocp -Q "%ct %tl")"
|
|
|
|
if [[ "$time" = "[ ]" ]] || [[ -z "$time" ]]
|
|
then
|
|
time="[--:-- --:-- --:--]"
|
|
fi
|
|
|
|
if [[ -z "$shorttime" ]] || [[ "$shorttime" = " " ]]
|
|
then
|
|
shorttime="--:-- --:--"
|
|
fi
|
|
|
|
if [[ "${#shorttime}" -eq 6 ]]
|
|
then
|
|
shorttime="${shorttime}--:--"
|
|
fi
|
|
|
|
echo "$status ${song:0:30}$dots ${time/ ]/ --:-- --:--]}"
|
|
echo "$status ${song:0:15}$shortdots $shorttime"
|
|
else
|
|
[[ -f /dev/shm/mocp ]] && rm /dev/shm/mocp
|
|
echo "$status [--:-- --:-- --:--]"
|
|
echo "$status --:-- --:--"
|
|
fi
|