Keyboard maps are on the host, not on the keyboard. Engravings on the keytops are meaningless and are not what determine how a key is understood. A (for example) U.K. 105-key keyboard and a French 105-key keyboard just look like two 105-key keyboards with all the same keys to the host.
Several common operating systems just combine all keyboard input from multiple plugged-in keyboards into one giant "union" keyboard and apply a single keyboard map to it.
I've been working on Linux/BSD software that allows individual different keyboard maps per keyboard, for my user-space virtual terminal system. It's achievable, but I've not encountered anyone else who has seriously attempted to make such a thing work, in the general case where arbitrary USB keyboards can be plugged in and out at runtime.
You're right, I haven't tried this. But my (unmentioned) approach was going to include using at least one fully programmable keyboard -- QMK or similar -- to send precisely the keycodes wanted.
It doesn't work that way. The USB HID usages (and PS/2 scancodes) are the same. There is one usage for the key at (say) D01, and the keyboard doesn't know or control whether it is "Q" or "A" or something else entirely. You cannot switch layouts on the keyboard, because the maps are on the host. Multiple keyboards with D01 engraved with different symbols will not actually vary anything, and all send the same thing across the wire.
I have.
Keyboard maps are on the host, not on the keyboard. Engravings on the keytops are meaningless and are not what determine how a key is understood. A (for example) U.K. 105-key keyboard and a French 105-key keyboard just look like two 105-key keyboards with all the same keys to the host.
Several common operating systems just combine all keyboard input from multiple plugged-in keyboards into one giant "union" keyboard and apply a single keyboard map to it.
I've been working on Linux/BSD software that allows individual different keyboard maps per keyboard, for my user-space virtual terminal system. It's achievable, but I've not encountered anyone else who has seriously attempted to make such a thing work, in the general case where arbitrary USB keyboards can be plugged in and out at runtime.