Roon TUI: A Roon Remote for the terminal (v0.3.2)

Edit: Just looking for the latest release? Click here

I’m working on a Roon Remote for the terminal. It is in early development so I’m looking for some frequent terminal users who are able to built from source (instructions provided), might the need arise.

Prebuilt binaries are available for Linux (tested on Ubuntu) and Windows (untested).

screenshot


I would love to get some feedback on this. More information can be found on GitHub.

20 Likes

Yeah, on a phone or tablet you might be better off just using the Roon Remote. The laptop or desktop is really the use case I had in mind when developing this, especially for Linux, which is lacking an official remote. For Linux it is now the third option besides the Wine solution and the Web Controller.

2 Likes

Hello Jan,

I know hardly anything from Linux, but was able to follow your guidelines and create and run roon-tui under Ubuntu 22.04.3 LTS

My Roon core runs on a Nuc+Rock(build 1299).
Roon-tui does not find my core, so is there a config file or an option to add startup params?


(Roon webcontroller on same Ubuntu PC runs fine, extensions live on an old RPI2_+ dietPi)

Hi @ger_tielemans,

I just added a critical step to the README file of the project:

Authorizing Core Access

On first execution the outside border of the UI will be highlighted without any views active, this indicates that pairing with a Roon Core has to take place. Use your Roon Remote and select Settings→Extensions from the hamburger menu and then Enable Roon TUI.

If Roon TUI is not in the Extensions list then there might be a firewall that is blocking access.

2 Likes

Hi Jan –

Managed to compile on ARM64 (Debian in Parallels VM on macOS). Running like a charm:

Me like!

For future development: I’d love some sorting options for the Artists and Album browsers (release date, last added, most played, etc.). Hey – a man can dream… :wink:

1 Like

Unfortunately, no luck with Ubuntu 23.04 …

Similar result with prebuild binary, and if I compile.

1 Like

Same results after a reboot, and no extensions found under Roon > Settings > Extensions. :frowning:

There’s a “No extensions discovered message” displayed, and under View, “No authorized extensions”.

I recompiled, and it’s the same.

Going to try native rust and cargo using APT …

Same results. I’ll try on my Ubuntu 22.04 box tomorrow.

Compiled and running on a Raspberry Pi 3 running DietPi :+1:t3:

Required

sudo apt install build-essential

Thank you @Jan_Koudijs . If only I had not deleted my initial Roon user profile years ago — it would be nice if the API understood profiles.

The sorting options that are provided by the Roon API can be found in Explore->Settings->Display Settings, unfortunately only name sort for artists and composers. This is more of a Roon API feature request :slight_smile:

It does, in the same Settings menu you can select a profile, if you then start something to play that profile will be used.

Do you have, by any chance, two Roon cores in your setup? The error message seems to point to this. I haven’t been able to test the Rust port of the API with multiple cores.

I really have no need for this, but I LOVE that you did it.! :+1:

2 Likes

Hi @Jan_Koudijs ,

Nice alternative to Roon with Wine on Linux! Will definitely try it next week when I’m home from holiday.

Cheers,
Joost

Thanks for your reponse @Jan_Koudijs.

I was specifically concerned about the Playlist functionality, which displayed the deleted “default” profile playlists upon initial startup, but now that I have selected one of the active profiles I see that the last profile selected is retained when the app is run again (nice!). Great.

It would be convenient if the default profile upon first startup is in fact an active profile, but admittedly an edge case not really worth coding around.

Only FYI that the screen formatting on an iPad using Prompt is slightly misaligned but extremely usable, while using a Bitvise terminal (on Windows 11) everything looks great.

Changing the terminal size while running does does cause a temporary rendering failure, but adding keyboard input usually forces a redraw. However, a few times I have gotten this sort of panic:

One request for future consideration is documentation of the keyboard shortcuts in some sort of online Help menu option. The letters are not intuitive to me, so I have had to open your repo a few times to remind myself. :slight_smile:

I’m getting a panic as well. I do have two cores. Will try again later after disabling one,

Many thanks for realizing this fantastic idea. Have you seen the LazyGit projekt? It could be interesting to grab som ideas from this project. I’ve seen that there is a library/framework that is been used to build LazyGit. Just to provide some ideas for future :wink:

I just built it on macOS 13.5. Initially I got the same “index out of bounds” errors as others here did. After closing the Roon Remote running on the Mac, the error disappeared and I was able to enable access via the Roon Remote on the phone.

3 Likes

I’m open for suggestions on more intuitive key bindings, there was little time spent on the current selection for the media controls. What it did try was using the media keys from the keyboard but could not get them to work. Also quite some Ctrl+“key” combination coulds not be used because they were captured by the terminal application.

Thanks for the bug report I will look into it.

Thanks for this, it works for me now, too.

1 Like

Thanks for this addition info guys. It is indeed the case that a Windows or macOS Roon Remote behaves like a core on the Roon API, which makes the number of affected setups higher. Maybe I have to get the Wine solution up and running again to reproduce.