mpv is a pretty cool media player. It's simple and gets the job done. I've been using it since I started using Linux distributions. I like the simple config and keyboard focus. I even went so far to remove all keybindings and only assign those I actually use. The only downside it has is the fact that it launches a new instance (window) for every file that I open.
There's a script in the official mpv repository which is supposed to solve that problem. It does indeed reuse the opened instance of mpv, but it appends newly opened files to the playlist instead of replacing the currently playing video with it. That's the behaviour I desire, so the script isn't really useful for me.
I figured that I could just use a hacky workaround which consisted of killing any open mpv instances and then launching our new one. After some trial and error and the help of the internet, I settled on this:
#!/bin/bash pid=$(pidof "mpv") if [[ "$pid" ]]; then kill "$pid" fi mpv --player-operation-mode=pseudo-gui "$1"
Save that into a file, make it executable and put it in your $PATH.
Next we need a desktop file.
I slightly tweaked the example provided in the standard specification and
this is the end result. For
Exec= we have to specify the name of our
above mentioned script.
That's pretty much it. Now all I had to do was associate media files
with our new
mpv Media Player - Single Instance desktop file via my
file manager and I was set.