
Dies sollte wirklich ein Kommentar zu einer Antwort auf die Frage seinWie weise ich einer USB-Tastatur dauerhaft ein anderes Tastaturlayout zu?Da Kommentare nicht möglich sind, hier die neue Frage, ich hoffe, @Sadi liest sie:
Meine kabellose Tastatur und Maus funktionierten danach nicht mehr. Das könnte daran liegen, dass die Zeichenfolge „USB-Tastatur“ im Namen meines Geräts nicht vorkommt.
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)]
daher sieht meine GREP-Zeile folgendermaßen aus:
xinput -list | grep 'Wireless Desktop.*keyboard' "$@"
Um das Layout zu ändern, notieren Sie sich einfach die ID und den Typ
setxkbmap -device 14 {language code}
Irgendwelche Ideen, wie man das dauerhaft beheben kann, sodass der Computer das Gerät erkennt und es nach dem Anschließen in der richtigen Sprache bereithält?
Mögliche Hinweise hier:
Antwort1
Soweit ich weiß (und das ist nicht viel), sind alle Lösungen mitudev.ruleshat vor Kurzem aufgehört zu funktionieren und die einzige Lösung, die derzeit zu funktionieren scheint, ist ein einfaches Startskript, das davon ausgeht, dass die zweite Tastatur angeschlossen ist, bevor sich der Benutzer anmeldet. Andernfalls muss der Benutzer das Skript später manuell ausführen.
Das Skript funktioniert nachweislich mit USB-Tastaturen (hier:https://askubuntu.com/a/337431/47343) sollte natürlich modifiziert werden fürdrahtlose Tastaturen, das in etwa wie das Folgende aussehen könnte.
Hinweis 1: Zusätzlich zur Eingabe des gewünschten Tastaturlayoutcodes sind möglicherweise auch einige Versuche erforderlich (z. B. jede Zeile zuerst in einem Terminalfenster eingeben), da der Autor ein „Amateur“- (und fast Anfänger-) „Skriptautor“ ist ;-)
#!/bin/bash
extkbd=`xinput -list | grep -c "Wireless.*keyboard"`
if [[ "$extkbd" -gt 0 ]]
then
extkbd_id1=`xinput -list | grep "Virtual core keyboard" | awk -F'=' '{print $2}' | cut -c 1-2`
extkbd_id2=`xinput -list | grep "Wireless.*keyboard" | awk -F'=' '{print $2}' | cut -c 1-2`
extkbd_layout="<kbdlayoutcode>"
setxkbmap -device "${extkbd_id1}" -layout "${extkbd_layout}"
setxkbmap -device "${extkbd_id2}" -layout "${extkbd_layout}"
notify-send -i input-keyboard "Wireless Keyboard" "is ready and set for use..."
fi
exit 0
Hinweis 2: Da das System einer Hardware scheinbar zwei Geräte-IDs zuweist, bin ich zu dem Schluss gekommen, dass es sicherer ist, beiden Geräte-IDs denselben Tastaturlayoutcode zuzuweisen.