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.

  • nmtake
    link
    fedilink
    arrow-up
    3
    ·
    2 days ago

    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?

    • Dr. Wesker@lemmy.sdf.orgOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      2 days ago

      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 restart volumeicon for it to work again.

  • Maxxie@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Hey thanks, I’ve been delaying writing something similar and now I dont have to :)

  • Commodore@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    4 days ago

    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