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:

2 Likes

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: .

2 Likes

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:

Thanks!

3 Likes

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 ( https://roonlabs.github.io/node-roon-api/RoonApiTransport.html ) but I do not understand how to implement it… Some help would be appreciated.

Thank you,
Best, Stephan

Hi @s_m1 , I’m trying to install this exact extension but cannot figure out how to do this… I checked but can’t find any info on how to install when the extension is not listed in any ‘category’ (within Roon Extension Manager)… can you please advise how you installed this specific ‘keyboard remote’ extension? This is the first extension I’ve ever attempted to load into Roon. I’m hoping you can help since you were the most recent post on this topic.

Hi @Martin_Maisey, if you are still checking this any input would be appreciated as well.

Thanks,
Jeff

I will include the Keyboard Remote in the Extension Repository.

Hi Jeff,
sorry for late reply… Are you still struggling with this extension? It’s quite a while ago I have been trying out so many different solutions and extensions and codes to reach the end goal of volume control over keyboard commands.
If you like I can write a quick howto but allow me to go through this ‘instruction’ once more myself.

Happy listening!
Stephan

Thanks Jan, looking forward to it! -Jeff

Hi Stephan, thanks for the follow-up. Yes, I am still looking for a solution. Jan_Koudijs has kindly stated that he would include it in the Extension Repository so hopefully that will resolve it. What I’m attempting to do is to get the Powermate Bluetooth (not the USB version) to work as a simple volume dial for Roon. Any other workarounds or solutions you may have would be appreciated as well. Thanks! -Jeff

Hi Jan, just wondering if you’ve had a chance to look into adding this to the repository yet? Thanks, Jeff

I looked into it but I’m afraid I was a bit too quick with my statement. Issue is that the Keyboard Remote relies on a console via which the key presses are received. When executed via the Extension Manager the extension runs in the background and then there is no such console available. Maybe there is a way to do it but I haven’t found it :frowning:

Oh I see… that’s too bad. Thank you so much for looking into it though! Appreciate it.

1 Like

Hi, I installed Keyboard remote, but found that I don’t need it. How can I remove / uninstall it? It does not show-up in the Roon Extension manager!

Thanks!

Karl

Hi Karl,

As documented up the thread it can’t run in the Roon Extension Manager as that doesn’t allow it the required access to the console.

I’m not developing/using it myself any more so can’t test the below - caveat emptor - but it should be just be a case of reversing the install instructions in the README.md here.

Disabling it is probably all you need:

$ systemctl disable roon-extension-keyboard-remote.service
$ systemctl disable changevt.service

and then a reboot. If you want to clean up completely:

$ rm /lib/systemd/system/changevt.service
$ rm /lib/systemd/system/roon-extension-keyboard-remote.service
$ rm -r /etc/roon-extension-keyboard-remote
$ rm -r /opt/roon-extension-keyboard-remote

Cheers,

Martin

Thanks! It worked. :grin: