#!/bin/bash if ! systemctl --user is-active mpd &>/dev/null then origstatus='off' else origstatus="$(mpc status | sed -n '2p' | grep -Eo '^\[.*\]' | tr -d '[]')" [[ -z "$origstatus" ]] && origstatus='stop' fi case $BLOCK_BUTTON in 1) mpc -q prev ;; 2) mpc -q toggle ;; 3) mpc -q next ;; 4) mpc -q seek +5 ;; 5) mpc -q seek -5 ;; esac status="" case $origstatus in stop ) status="" ;; paused ) status="" ;; playing ) status="" ;; off ) status="" ;; esac if [[ "$origstatus" != "stop" ]] && [[ "$origstatus" != "off" ]] then if [[ ! -f /dev/shm/mpd ]] then mpc -f '[[%artist%, ]%title%|[%file%]' current > /dev/shm/mpd fi song=$( /dev/shm/mpd-scroll fi alltime="$(mpc status | column -t -o ' ' | sed -n '2p' | cut -f3)" elapsed_time="$(dateconv -f "%0H:%0M" "${alltime%/*}" || echo "--:--")" total_time="$(dateconv -f "%0H:%0M" "${alltime#*/}" || echo "--:--")" left_time="$(datediff -f "%0H:%0M" "$elapsed_time" "$total_time" || echo "--:--")" time="[$elapsed_time $left_time $total_time]" shorttime="$elapsed_time $left_time" if [[ "$time" = "[ ]" ]] || [[ -z "$time" ]] then time="[--:-- --:-- --:--]" fi if [[ -z "$shorttime" ]] || [[ "$shorttime" = " " ]] then shorttime="--:-- --:--" fi if [[ "${#shorttime}" -eq 6 ]] then shorttime="${shorttime}--:--" fi echo "${song:0:25} $status$time" echo "${song:0:10} $status$shorttime" else [[ -f /dev/shm/mpd ]] && rm /dev/shm/mpd [[ -f /dev/shm/mpd-scroll ]] && rm /dev/shm/mpd-scroll echo "$status[--:-- --:-- --:--]" echo "$status--:-- --:--" fi