summaryrefslogtreecommitdiff
path: root/local/bin/sb-liisten
diff options
context:
space:
mode:
authorcoasteen <coasteen@proton.me>2026-07-09 10:42:28 +0330
committercoasteen <coasteen@proton.me>2026-07-09 10:42:28 +0330
commit8cbadb61604667b407b53ee1258433994fa4765a (patch)
tree97765fb29418fd6278fcb4cbb9760893afaf7a58 /local/bin/sb-liisten
Diffstat (limited to 'local/bin/sb-liisten')
-rwxr-xr-xlocal/bin/sb-liisten38
1 files changed, 38 insertions, 0 deletions
diff --git a/local/bin/sb-liisten b/local/bin/sb-liisten
new file mode 100755
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