dotfiles/.i3blocks/mocp

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")
[[ -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