Roon TUI: A Roon Remote for the terminal - New: Zone Presets (v0.3.0)

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:

A side column, or foot note section with them set out maybe :thinking:

Constant use will imprint them to memory in quick fashion I feel. :innocent:

1 Like

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.

Just to add, this also affects Linux hosts running Roon on Wine.

1 Like

I saw that LazyGit is written in Go, so I cannot use the library it uses for my Rust application, different programming languages.

But it is not that I made the rendering part myself :slight_smile: , the library I’m using is Ratatui:

That’s what I just realized and will probably use to reproduce and hopefully fix the issue.

1 Like

I’ve no idea if this is possible with the API, but it’d be great if the browser view could jump forward / backwards using keys, e.g., (, , 1-0, A-Z etc.

A couple more observations:

  • Search: it’s case-sensitive, i.e., doesn’t work with caps lock
  • Suspend (close laptop lid) kills the app

Could <space> be used instead of Ctrl-P?

1 Like

This will be fixed in the next release, meaning that caps lock and shift will not block key input. The search results itself will not change as the search, that is performed by the Roon core, seems to be case-insensitive.

Making a jump in the list based on key input is possible, but there are some complicating factors. When browsing Artists the sort can be on last name, meaning that the first character in the string is not necessarily the one to select on. There is also the case with “The” which probably should be ignored to select “The Beatles” by pressing the “b” key. I will see if I can come up with something, but no promises.

@Patrick_Seemann was willing to share his Roon TUI build for macOS M1/M2, so this is now available as a pre-built binary on the release page, it is the one named stable-aarch64-apple-darwin.zip.

Thanks Patrick!

2 Likes

Cool! So it is written in Rust?

This rocks! A great start. I would definitely use this, especially given the lack of native Linux roon remote.

1 Like

Make sure Roon GUI is closed when running TUI. This is a known issue.