diff --git a/.local/bin/sb-liisten b/.local/bin/sb-liisten new file mode 100644 index 0000000..ff9b420 --- /dev/null +++ b/.local/bin/sb-liisten @@ -0,0 +1,38 @@ +#!/bin/sh +#Liisten for the status bar + +#options +LOOPCOUNT=1 #however many times you want the song to play minus one (for technical reasons) +SONGDIR="$HOME/music/brstm" +cd "$SONGDIR" + +MODE=$(printf "Random\nForever" | dmenu -i) + +playsong () { + vgmstream-cli -m "$SONG" > /tmp/brstminfo.txt + STARTLOOP="$(grep "seconds" /tmp/brstminfo.txt | head -n 1 | sed 's/.*(//' | sed 's/ seconds)//')" + ENDLOOP="$(grep "seconds" /tmp/brstminfo.txt | tail -n 1 | sed 's/.*(//' | sed 's/ seconds)//')" + echo "Now playing: \"$(echo $SONG | sed 's/\.brstm//')\"" + mpv --ab-loop-a="$STARTLOOP" --ab-loop-b="$ENDLOOP" --ab-loop-count="$LOOPCOUNT" "$SONG" +} + +forever () { + SONG="$(command ls -1 | dmenu -i)" + vgmstream-cli -m "$SONG" > /tmp/brstminfo.txt + STARTLOOP="$(grep "seconds" /tmp/brstminfo.txt | head -n 1 | sed 's/.*(//' | sed 's/ seconds)//')" + ENDLOOP="$(grep "seconds" /tmp/brstminfo.txt | tail -n 1 | sed 's/.*(//' | sed 's/ seconds)//')" + mpv --ab-loop-a="$STARTLOOP" --ab-loop-b="$ENDLOOP" --loop-file=inf "$SONG" +} + +random () { + while true; do + RANDNUM=$(shuf -i 1-$(ls -1 | wc -l) -n 1) + SONG="$(command ls | head -n $RANDNUM | tail -n 1)" + playsong + done +} + +case "$MODE" in + Forever) forever ;; + Random) random ;; +esac