Need help? Check out Spotify Answers for solutions to a wide range of topics. |
Actually the issue isn't attached by the Ubuntu version, but the desktop environment. The media keys does not works in Unity desktop (Ubuntu 16.04 default), but works in others desktops, like Gnome shell(Ubuntu 18.04 default). For example, if you install gnome session in Ubuntu 16.04, the keys will works perfectly
EDIT: Never mind, I spoke too soon! Issue persists.
ORIGINAL:
It seems the issue is finally fixed! My media keys are suddenly working again. 🙂
I'm glad to hear that. Now I just have to remember to to deactivate the workaround on my affected laptop.
Actually, I don't know what happened but the issue still persists. Sorry for the false hope!
There is nothing Spotify can do, except maybe for modifying there player name to 0Spotify or something which maybe gets it sorted at the top of the dbus list.
When you encounter issues with your media-keys execute the following command and look at the result:
dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames | grep 'org.mpris'
It will probably show that there is an other player also active, and possibly with a letter earlier in the alphabet then the S from Spotify.
To mitigate this at least for your self you could close this other player or use a tool i created which i posted a few posts back which you can use to bind it to Spotify it self.
Don't think media keys depend on name order. From my experience, it really only controls the app that started first. A quick fix is to start Spotify after you boot and leave it there. Media keys will always work for Spotify in this case. As you have mentioned, this isn't something the Spotify app can do to remediate.
Excellent tip about looking-up the DBus mpris registry entries. I usually have the opposite problem. If I have both Spotify and Clementine running (I use Clementine for certain radio stations not available in Spotify) Spotify responds to the media buttons but not Clementine. If I close Spotify then Clementine responds to the media buttons.
I was inspired to build on your DBus command, this will yield the process ID as well as the DBus name. This will make it easier to pin-point the culprit using your process viewer.
DBus Media Player & PID
for qualifiedName in `dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames | sed -n 's/.*"\(org\.mpris\..*\)"/\1/p'` do printf "$qualifiedName\t"; dbus-send --session --print-reply --dest=org.freedesktop.DBus / org.freedesktop.DBus.GetConnectionUnixProcessID string:$qualifiedName | sed -n 's/^[[:space:]]*uint32 \([0-9]*\)$/\1/p' done
Example
org.mpris.MediaPlayer2.clementine 24870 org.mpris.MediaPlayer2.spotify 19718 org.mpris.clementine 24870
I can then use System Activity to track-down these processes (screenshot attached).