Hello The french ADB keyboard features a < key at the right of the left shift key. On the console it works fine, however with X, it displays a @. The @ key also displays a @.
I ran a program to dump wskbd events, and both keys produce the same keycode 53. This is the same with french keymap or default US keymap (tested in singler user before any wscons configuration is done). My understanding is that this cannot be worked around by a keymap, because there is no way to distinguish the keys. Reading the sources, I see that userland programs get a ADB to USB translation defined in sys/dev/adb/adb_usb_map.c. When using a real USB keyboard, the < key reports keycode 100 instead of 53. I therefore suspect the ADB to USB translation is wrong. Below is the proposed fix, The grave key on a US keyboard is at the same location as the < key on the french keyboard, hence the left hand side seems correct. However, I am almost certain changing the right hand side will break US keyboard. I probbaly miss something here. --- sys/dev/adb/adb_usb_map.c 8 Nov 2014 16:52:35 -0000 1.2 +++ sys/dev/adb/adb_usb_map.c 8 May 2022 02:04:22 -0000 @@ -84,9 +84,9 @@ /* 46, KS_m */ 16, /* 47, KS_period */ 55, /* 48, KS_Tab */ 43, /* 49, KS_space */ 44, -/* 50, KS_grave */ 53, +/* 50, KS_grave */ 100, /* 51, KS_Delete */ 42, /* 52, KS_KP_Enter */ 88, /* 53, KS_Escape */ 41, /* 54, KS_Control_L */ 224, -- Emmanuel Dreyfus m...@netbsd.org