Skip to content

ergohaven-entropy: mark as an IBus engine, fix the udev rule; 0.3.4 -> 0.3.20 - #552644

Closed
AlexBSoD wants to merge 3 commits into
NixOS:masterfrom
AlexBSoD:ergohaven-entropy-ibus-engine
Closed

ergohaven-entropy: mark as an IBus engine, fix the udev rule; 0.3.4 -> 0.3.20#552644
AlexBSoD wants to merge 3 commits into
NixOS:masterfrom
AlexBSoD:ergohaven-entropy-ibus-engine

Conversation

@AlexBSoD

@AlexBSoD AlexBSoD commented Aug 14, 2026

Copy link
Copy Markdown

programs.entropy.enable = true does not evaluate on current master:

error: A definition for option `i18n.inputMethod.ibus.engines."[definition 1-entry 1]"' is not of type `ibus-engine'

The module unconditionally puts pkgs.ergohaven-entropy into i18n.inputMethod.ibus.engines, and the package installs an IBus component into $out/share/ibus/component, but it never set meta.isIbusEngine, which that option type requires. First commit adds the flag.

Second commit bumps the package to 0.3.20, the current release (0.3.4 is from July). Changelog: https://github.com/ergohaven/entropy/releases

Third commit fixes the udev rule. Since 0.3.4 the app validates the contents of 59-vial.rulesvial_udev_rule_is_current (src/ui/app_settings.rs) requires the # Entropy Vial hidraw access v2 marker, the USB serial match, the Ergohaven Bluetooth match KERNELS=="0005:E126:*" and SUBSYSTEM=="hidraw". The rule shipped here had only the USB line and no marker, so the app kept showing the "install udev rules" banner on a system where the module had already installed them, and Bluetooth keyboards were never granted access. The new rule matches what the upstream installer writes (linux/udev/install-vial-rules.sh).

Upstream now carries a Nix flake with its own NixOS and home-manager modules (ergohaven/entropy#115, merged 2026-08-25), so the rule and the engine registration can be cross-checked against it.

Disclosure: the commits and this summary were written with the assistance of Claude Code (Claude Opus 5); every change and claim here was reviewed and verified by me, as recorded by the Assisted-by: trailers.

Things done

Details on the two checked items: the upstream test suite (612 tests) runs in checkPhase; ./result/bin/entropy starts, detects a connected Ergohaven K:04 over hidraw and talks Vial protocol 6 to it; the installed $out/lib/udev/rules.d/59-vial.rules carries all four markers the app checks for. A NixOS system with programs.entropy.enable = true and i18n.inputMethod = { enable = true; type = "ibus"; } fails to evaluate before the first commit with the error above and evaluates afterwards with the engine registered into ibus-with-plugins. nixfmt --check is clean on the changed file.

@nixpkgs-ci nixpkgs-ci Bot added 8.has: package (update) This PR updates a package to a newer version 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 12.first-time contribution This PR is the author's first one; please be gentle! 9.needs: reviewer This PR currently has no reviewers requested and needs attention. labels Aug 14, 2026
AlexBSoD and others added 2 commits August 26, 2026 18:07
The package installs an IBus component and the programs.entropy module
puts it into i18n.inputMethod.ibus.engines, but without this flag the
option rejects it: enabling the module fails with "A definition for
option i18n.inputMethod.ibus.engines.[definition 1-entry 1] is not of
type ibus-engine".
@AlexBSoD
AlexBSoD force-pushed the ergohaven-entropy-ibus-engine branch from 2d39769 to fa7093e Compare August 26, 2026 15:31
@AlexBSoD AlexBSoD changed the title ergohaven-entropy: mark as an IBus engine; 0.3.4 -> 0.3.9 ergohaven-entropy: mark as an IBus engine, fix the udev rule; 0.3.4 -> 0.3.20 Aug 26, 2026
@AlexBSoD

AlexBSoD commented Aug 26, 2026

Copy link
Copy Markdown
Author

Rebased onto master and refreshed: bump is now 0.3.4 -> 0.3.20, plus a third commit fixing the udev rule (missing v2 marker and the Bluetooth match, so the app reports the rules as not installed and BLE keyboards get no access).

@geekiot-hub could you take a look? The module is currently unusable — programs.entropy.enable = true aborts the eval on master.

Since 0.3.4 the app validates the contents of 59-vial.rules, not just its
presence: vial_udev_rule_is_current (src/ui/app_settings.rs) requires the
"# Entropy Vial hidraw access v2" marker together with the USB serial match,
the Ergohaven Bluetooth match KERNELS=="0005:E126:*" and SUBSYSTEM=="hidraw".

The rule shipped here carried only the USB line and no marker, so the app kept
showing the "install udev rules" banner on a system where the module had
already installed them, and Ergohaven keyboards connected over Bluetooth were
never granted access at all. Match the rule the upstream installer writes
(linux/udev/install-vial-rules.sh).
@AlexBSoD
AlexBSoD force-pushed the ergohaven-entropy-ibus-engine branch from fa7093e to 172846e Compare August 26, 2026 16:14
@RossSmyth

Copy link
Copy Markdown
Contributor

Please do not modify the PR template. It is as it is for a reason. If you wish to continue this PR, please review the listed guidelines, and apply proper PR template. Thank you.

@RossSmyth RossSmyth closed this Aug 27, 2026
@AlexBSoD

Copy link
Copy Markdown
Author

Sorry about that — I replaced the checklist instead of filling it in. The description now follows the template verbatim, with the boxes ticked as applicable.

I also added Assisted-by: Claude Code (Claude Opus 5) trailers to the three commits per the automation/AI policy; the changes and the claims in the description were reviewed and verified by me. This comment was drafted with the same tool.

GitHub refuses to reopen this PR because the branch was force-pushed while it was closed. Could you reopen it, or should I file a fresh one?

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

Labels

8.has: package (update) This PR updates a package to a newer version 9.needs: reviewer This PR currently has no reviewers requested and needs attention. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 12.first-time contribution This PR is the author's first one; please be gentle!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants