summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/shuffle18
1 files changed, 10 insertions, 8 deletions
diff --git a/bin/shuffle b/bin/shuffle
index ce27bb7..c611f32 100755
--- a/bin/shuffle
+++ b/bin/shuffle
@@ -1,22 +1,24 @@
#!/bin/sh -eu
-files=$(find "${1:-.}" -type f)
-n=$(echo "$files" | wc -l)
-
-prev=-1
-index=$((RANDOM % n))
+prev2=-1
+prev1=$prev2
+index=$prev1
while :; do
- while [ $index -eq $prev ]; do
+ files=$(find "${1:-.}" -type f)
+ n=$(echo "$files" | wc -l)
+
+ while [ $index -eq $prev2 ] || [ $index -eq $prev1 ]; do
index=$((RANDOM % n))
done
- prev=$index
+ prev2=$prev1
+ prev1=$index
echo "$files" | (
i=0
while read -r file; do
if [ $i -eq $index ]; then
echo "Playing $file"
- mpv "$file" || :
+ mpv --no-video "$file" || :
break
fi
i=$((i + 1))