ergohaven-entropy: mark as an IBus engine, fix the udev rule; 0.3.4 -> 0.3.20 - #552644
ergohaven-entropy: mark as an IBus engine, fix the udev rule; 0.3.4 -> 0.3.20#552644AlexBSoD wants to merge 3 commits into
Conversation
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".
2d39769 to
fa7093e
Compare
|
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 — |
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).
fa7093e to
172846e
Compare
|
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. |
|
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 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? |
programs.entropy.enable = truedoes not evaluate on current master:The module unconditionally puts
pkgs.ergohaven-entropyintoi18n.inputMethod.ibus.engines, and the package installs an IBus component into$out/share/ibus/component, but it never setmeta.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.rules—vial_udev_rule_is_current(src/ui/app_settings.rs) requires the# Entropy Vial hidraw access v2marker, the USB serial match, the Ergohaven Bluetooth matchKERNELS=="0005:E126:*"andSUBSYSTEM=="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
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Details on the two checked items: the upstream test suite (612 tests) runs in
checkPhase;./result/bin/entropystarts, detects a connected Ergohaven K:04 over hidraw and talks Vial protocol 6 to it; the installed$out/lib/udev/rules.d/59-vial.rulescarries all four markers the app checks for. A NixOS system withprograms.entropy.enable = trueandi18n.inputMethod = { enable = true; type = "ibus"; }fails to evaluate before the first commit with the error above and evaluates afterwards with the engine registered intoibus-with-plugins.nixfmt --checkis clean on the changed file.