You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Commit a7a73f0 introduced a command line parameter whether to assume an ISO keyboard layout.
For USB keyboards, the mainline kernel gained the ability to autosense an ISO layout with commit torvalds/linux@bd77a0f by looking at the bCountryCode field in the HID descriptor: 0x13 means ISO layout and e.g. 0x0d means German (de_DE) layout.
It seems likely that Apple used the same values and somehow communicates the country code either upon initialization or with every packet. The first step would thus be to look for 0x13 in data coming from the keyboard controller on a MacBook with ISO keyboard, then check if a German keyboard has 0x0d in the same byte position.
Just a little heads up here: I'm currently looking into why my Apple aluminium USB keyboard with german layout has those swapped keys and I've been digging through kernel history the whole day.
Please do not include a parameter that is necessary for unbreaking keyboards and leave them broken by default. That was done with the hid_appleiso_layout parameter and now we have a total mess where some keyboards work and some haven't been working for years, but nobody actually bothers to fix it because there's a parameter that can be set as a workaround.
Commit a7a73f0 introduced a command line parameter whether to assume an ISO keyboard layout.
For USB keyboards, the mainline kernel gained the ability to autosense an ISO layout with commit torvalds/linux@bd77a0f by looking at the
bCountryCode
field in the HID descriptor: 0x13 means ISO layout and e.g. 0x0d means German (de_DE) layout.It seems likely that Apple used the same values and somehow communicates the country code either upon initialization or with every packet. The first step would thus be to look for 0x13 in data coming from the keyboard controller on a MacBook with ISO keyboard, then check if a German keyboard has 0x0d in the same byte position.
See also the mailing list discussion on the patch for USB keyboards.
The text was updated successfully, but these errors were encountered: