From 3bf0736b56948274961db6cbdf6b28453fdffbdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Sun, 24 Sep 2017 13:00:02 +0200 Subject: Add mpd-remote to i3blocks --- config/i3blocks/config | 5 +++++ config/i3blocks/scripts/mpd | 54 ++++++++++++++++++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 10 deletions(-) (limited to 'config/i3blocks') diff --git a/config/i3blocks/config b/config/i3blocks/config index 8ae24c8..1a62f50 100644 --- a/config/i3blocks/config +++ b/config/i3blocks/config @@ -33,6 +33,11 @@ command=~/.config/i3blocks/scripts/mpd interval=5 signal=12 +[mpd-remote] +command=~/.config/i3blocks/scripts/mpd +interval=5 +instance=remote + [keymap] command=~/.config/i3/scripts/keyboard_layout interval=once diff --git a/config/i3blocks/scripts/mpd b/config/i3blocks/scripts/mpd index 637623e..113f6e8 100755 --- a/config/i3blocks/scripts/mpd +++ b/config/i3blocks/scripts/mpd @@ -1,30 +1,64 @@ #!/bin/bash +HOME="192.168.0.217" +HOST="" +# Let's be sneaky and verify that we are on relevant network before we try to ping +if ip a | grep -q 'inet 192.168.0.' && \ + ping -c 1 -w 1 "$HOME" >/dev/null 2>&1; then + # TODO check that mpd is running? + HOST="-h $HOME" +fi + +# Handle remote volume +if [ "$BLOCK_INSTANCE" = "remote" ]; then + [ -n "$HOST" ] || exit 0 + case "$BLOCK_BUTTON" in + 1) + mpc $HOST volume 40 >/dev/null + ;; + 3) + mpc $HOST volume 0 >/dev/null + ;; + 4) + mpc $HOST volume +2 >/dev/null + ;; + 5) + mpc $HOST volume -2 >/dev/null + ;; + esac + + echo "♫ $(mpc $HOST volume | sed 's/volume: //')" + exit 0 +fi + +# Handle user input case "$BLOCK_BUTTON" in 1) - mpc toggle >/dev/null + mpc $HOST toggle >/dev/null ;; 2) - mpc stop >/dev/null + mpc $HOST stop >/dev/null ;; 3) - nohup urxvt -title "Music player daemon client" -e ncmpcpp 2>&1 >/dev/null & + # TODO this doesn't work with host + nohup urxvt -title "Music player daemon client" -hold -e ncmpcpp 2>&1 >/dev/null & ;; 4) - mpc prev >/dev/null + mpc $HOST prev >/dev/null ;; 5) - mpc next >/dev/null + mpc $HOST next >/dev/null ;; esac -if [ -n "`mpc status | grep -E "(playing|paused)"`" ]; then - echo `mpc -f "♫ %artist%, %album%, %title%" status | head -1` +STATUS="$(mpc $HOST status)" +if echo "$STATUS" | grep -qE "(playing|paused)"; then + echo `mpc $HOST -f "♫ %artist%, %album%, %title%" status | head -1` echo - if [ -n `mpc status | grep playing` ]; then - echo "#ffff00" - elif [ -n `mpc status | grep paused` ]; then + if echo "$STATUS" | grep -q playing; then echo "#00ff00" + elif echo "$STATUS" | grep -q paused; then + echo "#ffff00" fi else echo "♫" -- cgit v1.2.3