Skip to content

fix(gui): render bolt pairing click icons - #1144

Open
Augustine-C wants to merge 1 commit into
AprilNEA:masterfrom
Augustine-C:fix/pairing-step-icons
Open

Augustine-C wants to merge 1 commit into
AprilNEA:masterfrom
Augustine-C:fix/pairing-step-icons

Conversation

@Augustine-C

@Augustine-C Augustine-C commented Aug 29, 2026

Copy link
Copy Markdown

Summary

The Bolt pointer-passkey step list showed only the step numbers 1-10, with no indication of which button to click: the per-step click glyphs never painted because their svg() elements set no text color, and GPUI only paints an SVG when one is set.

Changes

  • openlogi-desktop: give the passkey click icons .text_color(pal.text_primary) in passkey_panel, matching every other svg() call site in the crate (app/home.rs, features/action_ring.rs, features/keyboard/function_row.rs).

Testing

  • cargo fmt -p openlogi-desktop -- --check
  • cargo check -p openlogi-desktop
  • cargo clippy -p openlogi-desktop --all-targets -- -D warnings
  • cargo test -p openlogi-desktop (200 passed)
  • Pre-push hook: full-workspace clippy + non-GUI rustdoc

Runtime-verified on hardware: paired an MX Anywhere 3S over Bolt and confirmed the left/right click glyphs now render above the 1-10 numbers.

Fixes #1221

@Augustine-C
Augustine-C requested a review from AprilNEA as a code owner August 29, 2026 14:16
@greptile-apps

greptile-apps Bot commented Aug 29, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge.

Summary

The PR restores the missing pointer-passkey click glyphs by applying the active palette’s primary text color to each SVG.

  • Colors left- and right-click icons with pal.text_primary.
  • Leaves pairing behavior, sequence ordering, and accessibility labeling unchanged.

Reviews (4) · Last reviewed commit: "fix(gui): render bolt pairing click icon..."

@Augustine-C
Augustine-C force-pushed the fix/pairing-step-icons branch from 678e3d5 to ef2d946 Compare September 1, 2026 10:22
@thorstent

Copy link
Copy Markdown

Second reproduction, plus a workaround for anyone landing here before this merges.

Hit this on v0.8.2 (macOS 26.6.2, arm64) pairing an MX Master 4 to a Bolt receiver: the Add Device window showed the instruction line and the bare 1 … 10 step numbers with empty space above them, so there was no way to tell which button to press at each step. Your diagnosis matches what I found independently — passkey_panel is the only svg() call site in openlogi-desktop without a .text_color, and the icons are present in the bundle, just unpainted.

Workaround without a patched build — the agent traces the passkey notification, so:

launchctl setenv OPENLOGI_LOG 'info,openlogi_device::pairing=trace'
launchctl kickstart -k gui/$(id -u)/org.openlogi.agent.service

The request then lands in ~/.local/state/openlogi/agent.<date>.log as sub_id 0x4d, with the passkey as ASCII in payload bytes 1..7:

TRACE openlogi_device::pairing: pairing notification sub_id=0x4d payload=[6, 48, 48, 48, 49, 54, 54, …]
                                                                            '0'  '0'  '0'  '1'  '6'  '6'

Decode exactly as passkey_to_clicks does — 10 bits MSB-first, set bit = right click, clear = left — so 0001660010100110 → L L R L R L L R R L, then both buttons together. Paired first try.

Would be good to get this merged; it makes Bolt mouse pairing unusable from the GUI alone. Related, same code path: #412.

@davidbudnick davidbudnick added type: bug Something is broken or behaves incorrectly area: gui Graphical user interface platform: all Cross-platform issue labels Sep 3, 2026
@cloudhal

cloudhal commented Sep 4, 2026

Copy link
Copy Markdown

OK how the heck do I convert this? I can see the log entry e.g.
hal@Mac openlogi % grep "0x4d" agent.2026-09-04.log | tail -n 1
2026-09-04T11:18:53.869977Z TRACE openlogi_device::pairing: pairing notification sub_id=0x4d payload=[6, 48, 48, 48, 55, 50, 49, 212, 26, 149, 113, 78, 212, 0, 0, 0, 0]
But I have about 30 seconds before it times out. How do I convert the first 7 characters? Thanks

@Augustine-C
Augustine-C force-pushed the fix/pairing-step-icons branch from ef2d946 to 116d6a7 Compare September 14, 2026 16:05
The passkey step glyphs painted nothing because the svg elements set no
text color, leaving only the step numbers 1-10 above no indication of
which button to click. GPUI only paints an svg when a text color is set;
give the icons the palette's primary text color like every other svg in
the crate.
@Augustine-C
Augustine-C force-pushed the fix/pairing-step-icons branch from 116d6a7 to ef02921 Compare September 17, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: gui Graphical user interface platform: all Cross-platform issue type: bug Something is broken or behaves incorrectly

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Device]: Mouse Bolt pairing doesn't show left or right button to press for pairing code

4 participants