Solaar/lib/solaar/ui/perkey
Ken Sanislo ce88a22fbd perkey: add PRO X RAPID media top row layout
The PRO X RAPID (reported as "PRO X RAPID", USB 046D:C35B) wires five
dedicated media keys above the F-row with board-specific 0x8081 zone ids
(150 Bright, 155 Prev, 152 Play, 154 Next, 153 Mute) that the canonical
extras map (153-158) doesn't cover: 150/152/154 were dropped as phantoms
and never surfaced in the painter. Ids and positions are hardware-probed
(ported from the OpenRGB key-map for this model).

Add keyboard_pro_x_rapid.with_media_top_row(), which pushes any regional
TKL base down one row and prepends the media row as explicit bound cells.
No EXTRAS_ALLOWLIST change is needed - the media keys paint directly,
while the base's extra_zones keeps filtering the phantom zones this board
shares with the G515 (47, 97, 99-103, 254). Registered per region ahead
of the generic family matchers so country-code routing (ANSI/ISO/AZERTY/
JIS) still selects the main block; only the media top row differs. The
logo has no addressable LED on this model, so no logo zone is mapped.

Labels are words rather than media glyphs: the media/emoji codepoints
aren't in DejaVu (the baseline Linux font) and tofu on minimal installs,
unlike the nav-arrow glyphs which the base font covers.
2026-07-31 16:34:42 -04:00
..
layouts perkey: add PRO X RAPID media top row layout 2026-07-31 16:34:42 -04:00
__init__.py Add regional keyboard layouts (ISO_QWERTY, QWERTZ, AZERTY, JIS) and fix copyright 2026-05-10 17:52:55 -04:00
_icons.py PerKey icons: read theme fg from style-updated, not Settings notify 2026-05-12 12:51:36 -04:00
binding.py Add regional keyboard layouts (ISO_QWERTY, QWERTZ, AZERTY, JIS) and fix copyright 2026-05-10 17:52:55 -04:00
canvas.py perkey/canvas: allow rect/gradient anchors in grid gaps 2026-05-14 12:26:33 -04:00
control.py Add RGB lighting persistence and software LED power management for G515 2026-05-13 19:03:44 -04:00
dialog.py PerKey dialog: one window per device, keyed by firmware unit-id 2026-05-12 12:51:36 -04:00
editor.py PerKey dialog: one window per device, keyed by firmware unit-id 2026-05-12 12:51:36 -04:00
layout.py Add regional keyboard layouts (ISO_QWERTY, QWERTZ, AZERTY, JIS) and fix copyright 2026-05-10 17:52:55 -04:00
palette.py PerKey gradient swatch: align gradient endpoints to visible corners 2026-05-12 12:51:36 -04:00
protocol.py Add regional keyboard layouts (ISO_QWERTY, QWERTZ, AZERTY, JIS) and fix copyright 2026-05-10 17:52:55 -04:00
tools.py Add regional keyboard layouts (ISO_QWERTY, QWERTZ, AZERTY, JIS) and fix copyright 2026-05-10 17:52:55 -04:00