From 17481dfeba7ceb5347b3caf6ddd179faa74464d5 Mon Sep 17 00:00:00 2001 From: coast Date: Thu, 29 May 2025 23:27:56 +0200 Subject: [PATCH] Add .local/bin/sb-liisten --- .local/bin/sb-liisten | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .local/bin/sb-liisten 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