This really should be a comment on a reply to the question How to permanently assign a different keyboard layout to a USB keyboard? Since commenting isn't possible, here is the new question, I hope @Sadi is reading it:
My wireless keyboard and mouse stopped working after this. It might be related to the fact that the string "USB Keyboard" isn't contained in the name of my device.
lsusb
Bus 003 Device 088: ID 046a:010b Cherry GmbH
xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ MLK Wireless Desktop id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ MLK Wireless Desktop id=14 [slave keyboard (3)]
thus my GREP line looks like this:
xinput -list | grep 'Wireless Desktop.*keyboard' "$@"
To change the layout simply note the ID and type
setxkbmap -device 14 {language code}
Any Ideas how to fix it permanently so the computer recognizes this device and has it with the correct language ready once plugged in??
Possible clues here: