Skip to content

Dock Alt shortcuts die after the first Alt-hold: positional refresh clears tier-1 keys #7

Description

@ClaydeCode

Symptom

Five of the seven dock Alt shortcuts stop working after the first Alt-hold. Alt+S and Alt+T keep working. Nothing errors.

Cause

js/keynav.js:76, inside assignPositional(), which runs on every Alt keydown (:95):

for (let i = 10; i <= 35; i++) unbindAlt((i - 9).toString(36));

(i-9).toString(36) for i in 10..35 yields 19 then aq. The dock binds its letters once in connectedCallback (js/components/dock.js:30) and never rebinds: h home, a apps, d devices, p public, s settings (:39), f feedback (:41), t theme (:42).

h, a, d, p and f all fall inside the cleared aq range and are evicted on the first Alt-hold. s and t survive only because they sort after q.

Underlying design issue

Stable component shortcuts (tier 1) and positional app keys (tier 2) share one flat registry with no ownership marking, so a routine tier-2 refresh silently evicts tier-1 entries.

Decided: the two tiers are separate concepts and keynav.js owns the split — a tier-2 refresh must not be able to reach tier-1 keys. The alternative, making every tier-1 owner re-register after each hint pass, would push an unnamed obligation onto every future component that wants a stable Alt key.

Fix shape

Give the registry tier ownership so assignPositional() clears only tier-2 bindings. The fix stays inside keynav.js; the dock does not change.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions