I’ve been using volumeicon
for a long time, to enable the audio hotkeys on my laptop. But the problem is that if you plug in a USB or bluetooth headset, it doesn’t automatically switch to it as the default. You’d have to kill the service and restart it.
So I wrote a script that can offer me all the same functionality, and just mapped my audio hotkeys in my WM.
Thought someone might find the source useful.
Thanks for sharing.
As a somewhat related thing that others might find useful, here are my shortcuts to get my Varmilo keyboard media keys working with useful functions instead of the default stuff. I’ve got these set up as custom shortcuts in KDE, but they should work in any context:
Next track
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
Previous track
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous
Play-pause toggle
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
You can replace Spotify in the destination parameter with any MPRIS-capable program. To find out what’s available on the dbus and get the exact name, use this command:
dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
But the problem is that if you plug in a USB or bluetooth headset, it doesn’t automatically switch to it as the default.
How about module-switch-on-connect?
The problem wasn’t PulseAudio, it was
volumeicon
. For instance, when I’d pair a bluetooth headset I would start getting audio through it, but my hotkeys would still be trying to adjust the previous sink. I’d have to kill and restartvolumeicon
for it to work again.I see. Thanks for the explanation. It seems a long standing issue: https://github.com/Maato/volumeicon/issues/49
I figured if I could eliminate the middle man in under 55 lines I may as well. I’ll always jump at the opportunity to reduce my package reliance.
Hey thanks, I’ve been delaying writing something similar and now I dont have to :)