3

According to this page I can have two different physical keyboards attached and have a different layout on each of them. I need German on one, and Danish on the other, so this would be a very elegant solution.

However, my xinput command output does not show me two keyboards; the wireless Logitech K230 keyboard is listed as a pointer because it uses the Logitech "Unifying Receiver" that also receives my wireless mouse. Also, the USB keyboard is shown as id 11 and 12?

$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech K230                             id=8    [slave  pointer  (2)]
⎜   ↳ Logitech M705                             id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Sleep Button                              id=7    [slave  keyboard (3)]
    ↳ UVC Camera (046d:0991)                    id=10   [slave  keyboard (3)]
    ↳ SINO WEALTH USB Keyboard                  id=11   [slave  keyboard (3)]
    ↳ SINO WEALTH USB Keyboard                  id=12   [slave  keyboard (3)]

I have discovered that I can use setxkbmap on device 3 to affect both keyboards at once.
setxkbmap -device 11 at also affects device 8 (the Logitech keyboard).
setxkbmap -device 8 dk works - but only until I type anything at all on the USB keyboard! From then on, both keyboards have the at layout.

  • How do I assign different layouts to these two keyboards?
  • Why does using one keyboard affect the other keyboard?

This unanswered question from 2017 says that "Apparently, the [Logitech keyboard] has no layout of [its] own... it just uses the layout of the last keyboard that has been used." Since nobody has answered there, perhaps that is really an unsolvable problem? Perhaps specific to Logitech?

  • I had a similar problem with my laptop keyboard and bluetooth keyboard, and what ended up working for me to use xkbcomp with the -i flag to identify the id of each keyboard. However, that seems to be essentially what you've done, only with the xkbcomp command rather than the setxkbmap command. You could try setxkbmap at -print | xkbcomp -i 11 $DISPLAY and setxkbmap dk -print | setxkbmap dk -print | xkbcomp -i 8 $DISPLAY, but I'm not sure if it'd be any different. For me, both keyboard show up under the "Virtual core keyboard" section, so that might have something to do with it. – ElliotThomas Aug 28 '22 at 19:00

0 Answers0