fixes MPD
This commit is contained in:
parent
e9773bfa93
commit
99b61aee79
6 changed files with 117 additions and 64 deletions
|
@ -108,10 +108,10 @@ bindsym XF86AudioMute exec --no-startup-id BLOCK_BUTTON=2 ${HOME}/.i3blocks/volu
|
||||||
bindsym XF86AudioMicMute exec --no-startup-id BLOCK_BUTTON=2 BLOCK_INSTANCE=Capture ${HOME}/.i3blocks/volume && pkill -RTMIN+10 i3blocks
|
bindsym XF86AudioMicMute exec --no-startup-id BLOCK_BUTTON=2 BLOCK_INSTANCE=Capture ${HOME}/.i3blocks/volume && pkill -RTMIN+10 i3blocks
|
||||||
|
|
||||||
# Media controls
|
# Media controls
|
||||||
bindsym XF86AudioNext exec --no-startup-id mocp -f
|
bindsym XF86AudioNext exec --no-startup-id mpc next
|
||||||
bindsym XF86AudioPrev exec --no-startup-id mocp -r
|
bindsym XF86AudioPrev exec --no-startup-id mpc prev
|
||||||
bindsym XF86AudioPlay exec --no-startup-id mocp -G
|
bindsym XF86AudioPlay exec --no-startup-id mpc toggle
|
||||||
bindsym XF86AudioStop exec --no-startup-id mocp -s
|
bindsym XF86AudioStop exec --no-startup-id mocp stop
|
||||||
|
|
||||||
|
|
||||||
# LEDs controls
|
# LEDs controls
|
||||||
|
|
|
@ -38,14 +38,12 @@ markup=pango
|
||||||
# see the script for details.
|
# see the script for details.
|
||||||
[cpu_usage]
|
[cpu_usage]
|
||||||
#label=
|
#label=
|
||||||
label=cpu
|
|
||||||
interval=1
|
interval=1
|
||||||
#min_width= 99.99%
|
#min_width= 99.99%
|
||||||
#separator=false
|
#separator=false
|
||||||
|
|
||||||
[load_average]
|
[load_average]
|
||||||
#label=
|
#label=
|
||||||
label=load
|
|
||||||
interval=5
|
interval=5
|
||||||
|
|
||||||
# Temperature
|
# Temperature
|
||||||
|
@ -53,32 +51,32 @@ interval=5
|
||||||
# Support multiple chips, though lm-sensors.
|
# Support multiple chips, though lm-sensors.
|
||||||
# The script may be called with -w and -c switches to specify thresholds,
|
# The script may be called with -w and -c switches to specify thresholds,
|
||||||
# see the script for details.
|
# see the script for details.
|
||||||
[temperature]
|
#[temperature]
|
||||||
#label=
|
##label=
|
||||||
label=cpu
|
#label=cpu
|
||||||
instance=coretemp-isa-0000
|
#instance=coretemp-isa-0000
|
||||||
interval=3
|
#interval=3
|
||||||
separator=false
|
#separator=false
|
||||||
|
#
|
||||||
[temperature]
|
#[temperature]
|
||||||
label=gpu
|
#label=gpu
|
||||||
instance=radeon-pci-0300
|
#instance=radeon-pci-0300
|
||||||
interval=3
|
#interval=3
|
||||||
# Memory usage
|
# Memory usage
|
||||||
#
|
#
|
||||||
# The type defaults to "mem" if the instance is not specified.
|
# The type defaults to "mem" if the instance is not specified.
|
||||||
[memory]
|
[memory]
|
||||||
label=ram
|
label=ram
|
||||||
separator=false
|
#separator=false
|
||||||
interval=2
|
interval=2
|
||||||
#min_width=RAM 99.99%
|
#min_width=RAM 99.99%
|
||||||
|
|
||||||
[memory]
|
#[memory]
|
||||||
label=swap
|
#label=swap
|
||||||
instance=swap
|
#instance=swap
|
||||||
#separator=false
|
##separator=false
|
||||||
interval=2
|
#interval=2
|
||||||
#min_width=swap 99.9%
|
##min_width=swap 99.9%
|
||||||
|
|
||||||
# Disk usage
|
# Disk usage
|
||||||
#
|
#
|
||||||
|
|
|
@ -19,4 +19,4 @@ else color="#66cccc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Affichage
|
# Affichage
|
||||||
printf "<span foreground=\"%s\">%3d%%</span>" "$color" "$used"
|
printf "cpu<span foreground=\"%s\">%3d%%</span>" "$color" "$used"
|
||||||
|
|
|
@ -50,4 +50,6 @@ else
|
||||||
color15="#F2777A"
|
color15="#F2777A"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf "<span foreground=\"$color\">%4.4s</span> <span foreground=\"$color5\">%4.4s</span> <span foreground=\"$color15\">%4.4s</span>" ${load} ${load5} ${load15}
|
printf "load <span foreground=\"$color\">%4.4s</span> <span foreground=\"$color5\">%4.4s</span> <span foreground=\"$color15\">%4.4s</span>" ${load} ${load5} ${load15}
|
||||||
|
echo
|
||||||
|
printf "load <span foreground=\"$color\">%4.4s</span>" ${load}
|
||||||
|
|
115
.i3blocks/mpd
115
.i3blocks/mpd
|
@ -1,5 +1,26 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
LONG=30
|
||||||
|
SHORT=15
|
||||||
|
|
||||||
|
human_time() {
|
||||||
|
local seconds="$1"
|
||||||
|
if [[ "$seconds" -lt 0 ]]
|
||||||
|
then
|
||||||
|
echo "--:--"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
local minutes=$(( $seconds / 60 ))
|
||||||
|
seconds=$(( $seconds % 60 ))
|
||||||
|
if [[ "$minutes" -ge 90 ]]
|
||||||
|
then
|
||||||
|
printf "%5s\n" "${minutes}m"
|
||||||
|
else
|
||||||
|
printf "%02d:%02d\n" "$minutes" "$seconds"
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if ! systemctl --user is-active mpd &>/dev/null
|
if ! systemctl --user is-active mpd &>/dev/null
|
||||||
then
|
then
|
||||||
origstatus='off'
|
origstatus='off'
|
||||||
|
@ -13,8 +34,6 @@ case $BLOCK_BUTTON in
|
||||||
1) mpc -q prev ;;
|
1) mpc -q prev ;;
|
||||||
2) mpc -q toggle ;;
|
2) mpc -q toggle ;;
|
||||||
3) mpc -q next ;;
|
3) mpc -q next ;;
|
||||||
4) mpc -q seek +5 ;;
|
|
||||||
5) mpc -q seek -5 ;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
status="<span foreground=\"#6699CC\">"
|
status="<span foreground=\"#6699CC\">"
|
||||||
|
@ -29,53 +48,87 @@ if [[ "$origstatus" != "stop" ]] && [[ "$origstatus" != "off" ]]
|
||||||
then
|
then
|
||||||
if [[ ! -f /dev/shm/mpd ]]
|
if [[ ! -f /dev/shm/mpd ]]
|
||||||
then
|
then
|
||||||
mpc -f '[[%artist%, ]%title%|[%file%]' current > /dev/shm/mpd
|
mpc -f '[[%artist%§]%title%|[%file%]' current > /dev/shm/mpd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
song=$(</dev/shm/mpd)
|
song=$(</dev/shm/mpd)
|
||||||
|
|
||||||
song="${song//&/and}"
|
if [[ "${#song}" -gt $LONG ]]
|
||||||
|
|
||||||
scroll="$(</dev/shm/mpd-scroll)"
|
|
||||||
|
|
||||||
if [[ -z "${scroll// /}" ]]
|
|
||||||
then
|
then
|
||||||
cp /dev/shm/mpd /dev/shm/mpd-scroll
|
scrolling=long
|
||||||
|
elif [[ "${#song}" -gt $SHORT ]]
|
||||||
|
then
|
||||||
|
scrolling=short
|
||||||
else
|
else
|
||||||
song="$(</dev/shm/mpd-scroll)"
|
scrolling=none
|
||||||
echo "${song:1} " > /dev/shm/mpd-scroll
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
alltime="$(mpc status | column -t -o ' ' | sed -n '2p' | cut -f3)"
|
if [[ "$scrolling" != "none" ]]
|
||||||
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
|
then
|
||||||
time="[--:-- --:-- --:--]"
|
scroll="$(</dev/shm/mpd-scroll)"
|
||||||
|
|
||||||
|
if [[ -z "${scroll// /}" ]]
|
||||||
|
then
|
||||||
|
printf "%-${LONG}s" "$(</dev/shm/mpd)" > /dev/shm/mpd-scroll
|
||||||
|
song="$(</dev/shm/mpd-scroll)"
|
||||||
|
else
|
||||||
|
song="$(</dev/shm/mpd-scroll)"
|
||||||
|
printf "%-${LONG}s" "${song:1}" > /dev/shm/mpd-scroll
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$shorttime" ]] || [[ "$shorttime" = " " ]]
|
time="$(echo -e 'status\nclose' | nc -U .mpd/socket | grep time \
|
||||||
|
| cut -d' ' -f2)"
|
||||||
|
|
||||||
|
time_elapsed=$(human_time "${time%:*}")
|
||||||
|
time_total=$(human_time "${time#*:}")
|
||||||
|
time_left=$(human_time "$(( ${time#*:} - ${time%:*} ))")
|
||||||
|
|
||||||
|
longtime="[$time_elapsed $time_left ${time_total/00:00/--:--}]"
|
||||||
|
shorttime="$time_elapsed $time_left"
|
||||||
|
|
||||||
|
case $scrolling in
|
||||||
|
long)
|
||||||
|
longsong="${song} "
|
||||||
|
shortsong="${song} "
|
||||||
|
;;
|
||||||
|
short)
|
||||||
|
longsong="$(</dev/shm/mpd) "
|
||||||
|
shortsong="${song} "
|
||||||
|
;;
|
||||||
|
none)
|
||||||
|
longsong="$(</dev/shm/mpd) "
|
||||||
|
shortsong="$longsong"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
longsong="${longsong:0:$LONG}"
|
||||||
|
shortsong="${shortsong:0:$SHORT}"
|
||||||
|
longsong="${longsong//&/&}"
|
||||||
|
shortsong="${shortsong//&/&}"
|
||||||
|
|
||||||
|
if [[ "$longsong" =~ § ]]
|
||||||
then
|
then
|
||||||
shorttime="--:-- --:--"
|
longsong="<i>${longsong/§/</i> }"
|
||||||
fi
|
elif [[ "$song" =~ § ]]
|
||||||
|
|
||||||
if [[ "${#shorttime}" -eq 6 ]]
|
|
||||||
then
|
then
|
||||||
shorttime="${shorttime}--:--"
|
longsong="<i>${longsong}</i>"
|
||||||
|
fi
|
||||||
|
if [[ "$shortsong" =~ § ]]
|
||||||
|
then
|
||||||
|
shortsong="<i>${shortsong/§/</i> }"
|
||||||
|
elif [[ "$song" =~ § ]]
|
||||||
|
then
|
||||||
|
shortsong="<i>${shortsong}</i>"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "${song:0:25} $status$time</span>"
|
echo "${longsong} $status$longtime</span>"
|
||||||
echo "${song:0:10} $status$shorttime</span>"
|
echo "${shortsong} $status$shorttime</span>"
|
||||||
else
|
else
|
||||||
[[ -f /dev/shm/mpd ]] && rm /dev/shm/mpd
|
[[ -f /dev/shm/mpd ]] && rm /dev/shm/mpd
|
||||||
[[ -f /dev/shm/mpd-scroll ]] && rm /dev/shm/mpd-scroll
|
[[ -f /dev/shm/mpd-scroll ]] && rm /dev/shm/mpd-scroll
|
||||||
echo "$status[--:-- --:-- --:--]</span>"
|
printf "%${LONG}s $status[--:-- --:-- --:--]</span>\n" " "
|
||||||
echo "$status--:-- --:--</span>"
|
printf "%${SHORT}s $status--:-- --:--</span>\n" " "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,9 @@ export MPD_HOST="$HOME/.mpd/socket"
|
||||||
while true
|
while true
|
||||||
do
|
do
|
||||||
systemctl --user is-active mpd.service || exit 1
|
systemctl --user is-active mpd.service || exit 1
|
||||||
infos=$(mpc -w -f '[[%artist% - ]%title%[\n%album%]]|[%file%]' current)
|
infos=$(mpc -w -f '[[%artist%\n]%title%[\n%album%]]|[%file%]' current)
|
||||||
mpc -f '[[%artist%, ]%title%|[%file%]' current > /dev/shm/mpd
|
mpc -f '[[%artist%§]%title%|[%file%]' current > /dev/shm/mpd
|
||||||
cp /dev/shm/mpd /dev/shm/mpd-scroll
|
echo "$(</dev/shm/mpd) " > /dev/shm/mpd-scroll
|
||||||
if [[ -z "$infos" ]]
|
if [[ -z "$infos" ]]
|
||||||
then
|
then
|
||||||
infos="<i>Arrêt</i>"
|
infos="<i>Arrêt</i>"
|
||||||
|
|
Loading…
Reference in a new issue