Skip to content

feat(modules): label the auto layer deactivate-on-key setting - #162

Merged
kissetfall merged 1 commit into
ergohaven:mainfrom
iakunin:feat/auto-layer-deactivate-on-key-label
Sep 9, 2026
Merged

feat(modules): label the auto layer deactivate-on-key setting#162
kissetfall merged 1 commit into
ergohaven:mainfrom
iakunin:feat/auto-layer-deactivate-on-key-label

Conversation

@iakunin

@iakunin iakunin commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

What

K:04 firmware v0.1.10 exposes a new Vial QMK setting, Auto layer deactivate on key (qsid 335), which drops the pointing auto layer as soon as a non-mouse key is pressed instead of waiting out the inactivity timeout.

Entropy builds the module settings page straight from the device definition (module_settings_groups), so the row appears on its own once firmware advertises it — but with the raw English title and the generic Firmware setting: {field} tooltip. This adds the label and tooltip.

Changes

  • src/ui/module_settings.rs — catalog entry mapping the title to its label/tooltip keys
  • src/i18n.rsstatic_catalog_key entry
  • i18n/en.toml, i18n/ru.toml — label + tooltip strings
  • one test feeding a definition JSON through the real module_settings_groups pipeline, asserting the field lands in the Auto Layer group as a boolean row, visible in every pointer mode, and localized in both languages

No production code references qsid 335 — resolution is by title string, so this stays firmware-driven.

Firmware side

Requires ergohaven/rmk#19, which allocates qsid 335 and implements the behaviour. Without it the row simply does not appear; with an older Entropy the row appears untranslated. No hard dependency in either direction.

Verification

  • cargo test --bin entropy — 657 passed, 0 failed
  • cargo fmt --check — no diffs in any touched file (pre-existing drift in keycode.rs, layout_hints.rs, layout_indicator_window.rs left alone)
  • scripts/check_i18n.py — clean
  • Confirmed end-to-end on a K:04 Mini running the matching firmware

🤖 Generated with Claude Code

https://claude.ai/code/session_017y8Qh1NR26NxtP2wR1nPLu

K:04 firmware v0.1.10 exposes a new Vial QMK setting (qsid 335) that drops
the pointing auto layer as soon as a non-mouse key is pressed. Entropy builds
the module settings page straight from the device definition, so the row
appears on its own, but it rendered with the raw English title and the
generic "Firmware setting: {field}" tooltip.

Add the label and tooltip to the module setting catalog and to both
translation catalogs, and cover the path with a test that feeds a definition
JSON through module_settings_groups and asserts the field lands in the Auto
Layer group as a localized boolean row visible in every pointer mode.

Claude-Session: https://claude.ai/code/session_017y8Qh1NR26NxtP2wR1nPLu

@kissetfall kissetfall left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The Entropy changes follow the existing firmware-driven settings, capability filtering and localization paths. No blocking functional issue found at this head. I verified 37 exact-head module-settings tests, 2 supplemental compatibility/localization tests, 1 old-client fallback test, and the i18n checker. The four changed paths also merge cleanly with current main 004dbff2.

This client-side localization change can land independently of the firmware behavior fix in ergohaven/rmk#19: older firmware does not expose the field, and older Entropy already handles it through the generic settings UI. Please see the nonblocking tooltip suggestion inline. CI still needs to pass before merge.

Comment thread i18n/en.toml
auto_layer_scroll_tooltip = "Automatically switch to the selected layer in scroll mode"
auto_layer_text_tooltip = "Automatically switch to the selected layer in text mode"
auto_layer_timeout_tooltip = "How long the firmware keeps the auto layer active after module movement stops"
auto_layer_deactivate_on_key_tooltip = "Turn the auto layer off as soon as any non-mouse key is pressed"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

P3, nonblocking: any non-mouse key is broader than the firmware contract: layer-switch actions, ordinary macro triggers, pointer-mode User actions and bare Again include intentional exceptions. Please qualify the wording or mention those exceptions rather than promising every physical non-mouse key. The corresponding Russian tooltip in i18n/ru.toml should stay consistent. This is a copy clarification, not a request to change the firmware classifier.

@kissetfall
kissetfall merged commit 070a2e2 into ergohaven:main Sep 9, 2026
6 checks passed
@iakunin
iakunin deleted the feat/auto-layer-deactivate-on-key-label branch September 10, 2026 06:31
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.

2 participants