The following works:
# play file1 and then file 2:
mpv "file1" "file 2"
# use fzf to select a file and play that file:
mpv "$(fdfind . /path/to/Music | fzf)" 
Now fzf -m allows for multi-select. However the following doesn't work:
mpv "$(fdfind . /path/to/Music | fzf -m)" #select at least 2 files here
At first I thought the problem is that fzf -m returns the selections separated by newline, such as:
file1
file 2
So I tried some sed/ awk stuff:
fdfind . /path/to/Music | fzf -m |
    sed 's/^/"/;s/$/"/' | #double quotes every line
    awk 1 ORS=' ' | #replace newline with ' '
    head -c -1 | #delete the last ' '
To format it as:
"file1" "file 2"
This also doesn't work. So I also tried kdialog with the following:
mpv "$(kdialog --getopenfilename --multiple /path/to/Music/)" #select at least 2 files here
And it doesn't work. However the kdialog-open-files.lua user-script works fine for me!
I think I am making a mistake in how I am passing the arguments to mpv, as the following (obviously) works:
mpv "$(fdfind . /path/to/Music | fzf)" "$(fdfind . /path/to/Music | fzf)"
Found it from this stack-overflow post:
fdfind . Music/ | fzf -m | xargs -d "\n" mpv
You can also pass command line arguments to mpv this way:
fdfind . Music/ | fzf -m | xargs -d "\n" mpv --volume=50 --loop-playlist=inf
etc.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With