Roon Extension: Keyboard Remote

This extension allows keyboard keypresses to be used to control basic transport controls (currently play/pause, previous track, next track). This is useful because RF and Bluetooth keyboards - or any remote that generates a keypress - can now be used for physical control of a headless zone.

It is also possible (albeit a little fiddly) to connect a Harmony Hub as a Bluetooth keyboard, which then allows control from a Harmony activity. I’ve done this, and it’s nice as I can now control my amp as well as my Pi/iQaudIO DAC+ Roon endpoint from one ‘Music’ activity.

This probably makes most sense for lightweight, headless Linux endpoints running on single-board computers like the Raspberry Pi, most of which (I’m guessing) will probably be using DietPi with RoonBridge. I’ve included systemd services that can be installed on DietPi to start the extension on the second virtual console and switch to it after boot.

Install instructions and code at:


Actually, I’ve just found the wonderful work by @spockfish on RoPieee, which somehow I’d missed before. Looks fantastic and this type of functionality would ideally be built into a distribution like that (leveraging the existing extension), as it would be suitable for use by less technically inclined people. However, this may come in useful for geeky DietPi users until that happens.

Harry, if there’s anything useful to you here, please do feel free to reuse it. Although I suspect you may want to rewrite from scratch :slight_smile: .


Harry this would be awesome to add it to Ropieee. I already use the harmony extension to power on my system and set correct inputs. To be able to control playback and skip/back via this and my harmony would be amazing.

Hi @Martin_Maisey,

I’ll look into this. As you stated: RoPieee’s goal is to be as simple as can be, without the requirement for people to have ‘computer skills’. But this might fit that scheme :slight_smile:



By the way, I’ve had the opportunity to try this cheap remote with my bedroom system:

and can confirm it works well with the extension. Only costs £5.99 (at time of writing) and uses RF, so doesn’t require line of sight.

This looks great! I’m looking forward to trying it out, but my main system actually has three different DACs/Roon zones running on the same Pi (one for my living room, plus two for outside that are always synced). I wonder if there is a way to specify which zone the keyboard commands control?

Hi @Andy_Spinks,

At the moment the controlled zone for the keyboard commands is configurable within Roon | Settings | Extensions via any of the Roon apps - in fact, this is a necessary setup step. Is that what you want?

What can’t be done (currently) is to use a keyboard command to switch the controlled zone. If you need this, give the extension a try to see if it works for you in other respects, then let me know and I’ll see if I can get some time to implement it (no guarantees!).

Hi @Martin_Maisey,

I have installed your extension and am really happy how it works! IT JUST WORKS PERFECTLY OUT OF THE BOX! Thank you for providing your code, excellent job.

Is there a way to implement the volume control via keyboard commands through the API? I looked at the RoonApiTransport code ( ) but I do not understand how to implement it… Some help would be appreciated.

Thank you,
Best, Stephan