I’ve fallen in love with Music Player Daemon, also commonly known as MPD. It’s client-server architecture makes it easy to use multiple controllers at the same time.

For example, while sitting at the computer you could be using ncmpcpp CLI-client, and while doing something away from keyboard you could use e.g. MPDroid available on Google Play . It really makes using computer much more enjoyable.

Anyway, one thing didn’t allow me to enjoy my MPD experience. I spend a lot of time with Netbeans and Eclipse IDEs, and one thing they taught me is that keyboard hotkeys can save you a lot of time. It would be much better if you could change current track with single keystroke combination the same way some other music players allow , wouldn’t it?

Fortunately, some clever guys thought about it and came up with MPRIS, standard providing unified D-Bus interface for controlling media players. That and Its implementation for MPD – MpDris2 allow us to communicate with MPD using simple commands. Below I’m describing how to get keyboard shortcut keys working on KDE.

  1. Grab MpDris2 for your Linux distribution, don’t use deprecated first version of package which still is shipped with some distributions(e.g. Ubuntu/Mint).
  2. Once you’ve completed previous step go to KDE System Settings -> Shortcuts and Gestures. In the Custom Shortcuts group create new D-Bus Command by clicking RMB and selecting New -> Global Shortcut -> D-Bus Command.

    New D-bus command
    New D-bus command
  3. In the Trigger tab you can set your shortcut for given action.
  4. In new entry’s Action tab you should fill fields in the following way:
  • In “Remote application:” there always be “org.mpris.MediaPlayer2.mpd”
  • In “Remote object:” “/org/mpris/MediaPlayer2″
  • In function you define which function you want to invoke (Play/Stop/Next etc.), for example Play function is defined as “org.mpris.MediaPlayer2.Player.Play”. More information about available functions you can get on MPRIS documentation page or by using “Launch D-Bus Browser” button. Remember not to include whitespaces in your entries or it won’t work at all without giving you any hint why :)
    Sample Action entry
    Sample Action entry

    D-Bus Browser
    D-Bus Browser

If you don’t feel like filling all those fields, go ahead and Import the basic mapping I prepared for myself: mpd-mpris-keys.

As a bonus, with MpDris2 you get nice integration with KDE notifications bar showing currently played song:

Ok, seems like I finally managed to publish my first, and hopefully not last, post :)