From b6c930162a51b6271dfc26c349152b15be76e5c7 Mon Sep 17 00:00:00 2001 From: grechmarlon <55017324+grechmarlon@users.noreply.github.com> Date: Thu, 11 Jun 2026 19:31:24 +0200 Subject: [PATCH] perkey layouts: route country code 4 to ISO QWERTY, not AZERTY A real UK-ISO G915 TKL (model B35F408EC343, WPID 408E) reports 4 from KEYBOARD_LAYOUT_2 (0x4540). Its zone bitmap includes the ISO-only POUND (47) and ISO_BACKSLASH (97) keys and the physical board is UK QWERTY, so the painter showed AZERTY symbols on the digit row for a QWERTY board. No spec for the 0x4540 country enumeration is public; this is a device-observation correction. AZERTY keeps its layout but has no country code mapped until a confirmed FR device report arrives. Co-Authored-By: Claude Fable 5 --- lib/solaar/ui/perkey/layouts/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/solaar/ui/perkey/layouts/__init__.py b/lib/solaar/ui/perkey/layouts/__init__.py index 128b3e39..af7e5473 100644 --- a/lib/solaar/ui/perkey/layouts/__init__.py +++ b/lib/solaar/ui/perkey/layouts/__init__.py @@ -76,6 +76,10 @@ _KEYBOARD_FAMILY_BY_COUNTRY: dict[int, str] = { 1: "ansi", # ISO QWERTY (UK + ES/IT/PT/BE/Nordic — same shape, different keycap legends) 2: "iso_qwerty", + # Observed: UK-ISO G915 TKL (model B35F408EC343, WPID 408E) reports 4 — + # its zone bitmap includes the ISO-only POUND (47) and ISO_BACKSLASH (97) + # keys and the physical board is UK QWERTY, not AZERTY. + 4: "iso_qwerty", 5: "iso_qwerty", 8: "iso_qwerty", 0x0B: "iso_qwerty", @@ -89,8 +93,9 @@ _KEYBOARD_FAMILY_BY_COUNTRY: dict[int, str] = { # ISO QWERTZ (DE/Swiss) 3: "iso_qwertz", 7: "iso_qwertz", - # ISO AZERTY (FR) - 4: "iso_azerty", + # ISO AZERTY (FR) — no confirmed country code; 4 was originally mapped + # here but a real UK-ISO G915 TKL reports 4 (see above), so AZERTY is + # unreachable until a confirmed FR device report arrives. # JIS 9: "jis", 0x3E: "jis",