Skip to content

Stream Deck: document on VerbKey that its keys have no runtime face (manifest image is the hardware face) #1459

Description

@amrmelsayed

Ride-along, not its own lane (same pattern as #1454): add a short comment to VerbKey in apps/streamdeck/src/actions.ts recording which kind of action it is, and fold it into the next PR that touches that file.

What to write (wording is the implementer's, content is the point):

Keys built on VerbKey have no runtime face: they implement onKeyDown only — no renderTo, no setImage — so the manifest States[].Image is the permanent image on the hardware, not a pre-render placeholder. Contrast the compositing actions (SlotKey/BuilderAction, the Gates key, Send Feedback, Run Dev, and ReviewNav's dials), which repaint an SVG face on every render and therefore treat the manifest image as a placeholder only.

Why it is worth a comment. Whether an action composites its own face decides what changing its icon actually affects — picker-only, or picker and the physical key. That was not obvious from either file: I assumed picker-only when filing #1440, and #1444's builder found the opposite by checking the class hierarchy. The next person doing icon work will ask the same question, and the answer lives in a class shape rather than anywhere named.

Established in #1444 (PR #1453); the reasoning is written up in that issue's shipping record.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/streamdeckStream Deck plugin — apps/streamdeck, Elgato channel (profiles, Maker Console, packaging)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions