Skip to content

rev-hardware-client-2: init#67

Draft
nullcubee wants to merge 4 commits intofrc4451:mainfrom
nullcubee:rev-hardware-client
Draft

rev-hardware-client-2: init#67
nullcubee wants to merge 4 commits intofrc4451:mainfrom
nullcubee:rev-hardware-client

Conversation

@nullcubee
Copy link
Copy Markdown

@nullcubee nullcubee commented Mar 21, 2026

Fixes: #66

Opened as a draft as I have only gotten it mostly working a FHSEnv, and it has a few issues:

  • It requires BuildFHSEnv, otherwise it complains about java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration, not necessarily an issue but I suspect it might be causing other issues?
  • It spawns a empty black window in addition to the main client window
  • It has an error about DBus? Failed to call method: org.freedesktop.DBus.Properties.GetAll or something.
  • In the telemetry tab when you click the Load or Save Layout button the following appears in the terminal and nothing happens:
[76012:76124:0323/205514.391703:ERROR:cef/libcef/browser/file_dialog_manager.cc:407] Default dialog implementation is not available; canceling the file dialog

Other Notes:

The program uses Java CEF, (aka JCEF) which makes it a smidge annoying to package. I've been trying to reference other nixpkgs packages for how best to package this and the closest I've come across so far is bolt-launcher, and the regular cef-binary, but also I haven't looked super closely. I haven't looked that far into trying to patch JCEF yet, again I suspect that is causing a couple issues. But it does work inside of the FHSEnv, mostly lol!

The download page seems to imply that there are other architecture options besides x86_64 (with the whole dpkg --print-architecture and all) but as far as I can tell there only exists a x86_64 build for linux?

I also don't have anything to properly test this with at the moment and my team isn't meeting for a couple weeks.

All the commit names are temporary due to this being a draft, I intend to squash/rebase once I have a fully working version with minimal issues.

meta = {
description = "Hardware client for REV devices.";
homepage = "https://docs.revrobotics.com/rev-hardware-client-2";
# license = lib.licenses.unfree;
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was commented out for easier testing

@AvidCoder27
Copy link
Copy Markdown

This feature would be very useful, and I would love to help get it integrated! I have some hardware that I may be able to test this on; is there anything in particular I should test?

@nullcubee
Copy link
Copy Markdown
Author

is there anything in particular I should test?

I mean as long as the client is able to detect and modify settings on motor controllers and whatnot that should be all that needs to be tested.

The main other things I'd appreciate some help with on PR is fixing the mentioned issues, such as the empty black window and not being able to access the XDG Portals.

@nullcubee
Copy link
Copy Markdown
Author

Realized if I'm gonna be sticking the app in a FHSEnv anyways, there isn't much reason to use autoPatchelfHook, and in fact it was causing at least one issue:

Now, in the "Downloads" tab, you can click the "Browse" button for the downloaded files and it will actually open your file dialog, however in the telemetry tab when you click the "Load Layout" button the following appears in the terminal, which for the record is what it did before as well:

[76012:76124:0323/205514.391703:ERROR:cef/libcef/browser/file_dialog_manager.cc:407] Default dialog implementation is not available; canceling the file dialog

@ArtixBTW
Copy link
Copy Markdown
Collaborator

ArtixBTW commented Apr 16, 2026

Realized if I'm gonna be sticking the app in a FHSEnv anyways, there isn't much reason to use autoPatchelfHook, and in fact it was causing at least one issue:

Now, in the "Downloads" tab, you can click the "Browse" button for the downloaded files and it will actually open your file dialog, however in the telemetry tab when you click the "Load Layout" button the following appears in the terminal, which for the record is what it did before as well:

[76012:76124:0323/205514.391703:ERROR:cef/libcef/browser/file_dialog_manager.cc:407] Default dialog implementation is not available; canceling the file dialog

This could possibly be related to not having a dialog manager like zenity. I'm not familiar with CEF so I'm not quite sure.

@ArtixBTW
Copy link
Copy Markdown
Collaborator

ArtixBTW commented Apr 16, 2026

Okay so I just ran it locally on my machine and hitting "Browse" simply opened Dolphin, no crash, perhaps you need to have a default set for inode/directory?

Here's what I have on my machine

$ xdg-mime query default inode/directory
org.kde.dolphin.desktop

Edit: I read your comment wrong, I was testing the wrong thing

@nullcubee
Copy link
Copy Markdown
Author

This could possibly be related to not having a dialog manager like zenity. I'm not familiar with CEF so I'm not quite sure.

I tried adding zenity to my environment.systemPackages and to the targetPkgs of the package and I still had the same error message and issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

REV Hardware Manager 2

3 participants