
Esto realmente debería ser un comentario sobre una respuesta a la pregunta.¿Cómo asignar permanentemente una distribución de teclado diferente a un teclado USB?Como no es posible comentar, aquí está la nueva pregunta, espero que @Sadi la lea:
Mi teclado y mouse inalámbricos dejaron de funcionar después de esto. Podría estar relacionado con el hecho de que la cadena "Teclado USB" no está contenida en el nombre de mi dispositivo.
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)]
por lo tanto mi línea GREP se ve así:
xinput -list | grep 'Wireless Desktop.*keyboard' "$@"
Para cambiar el diseño simplemente anote el ID y escriba
setxkbmap -device 14 {language code}
¿Alguna idea de cómo solucionarlo permanentemente para que la computadora reconozca este dispositivo y lo tenga listo con el idioma correcto una vez conectado?
Posibles pistas aquí:
Respuesta1
Hasta donde yo sé (que no es mucho), todas las soluciones que involucranreglas udevdejó de funcionar recientemente y, por el momento, la única solución que parece funcionar es un script de inicio simple que supone que el segundo teclado está conectado antes de que el usuario inicie sesión o, de lo contrario, el usuario debería ejecutar ese script manualmente más tarde.
El script probado funciona con teclados USB (aquí:https://askubuntu.com/a/337431/47343) por supuesto debería modificarse parateclados inalámbricos, que podría ser algo como el siguiente.
Nota 1: Además de ingresar el código de distribución de teclado deseado, también puede requerir algo de prueba y error (por ejemplo, ingresar primero cada línea en una ventana de terminal) ya que el autor es un "aficionado" (y casi un nivel principiante). guionista" ;-)
#!/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
Nota 2: Como el sistema parece asignar 2 ID de dispositivo a un hardware, descubrí que es más seguro asignar el mismo código de distribución de teclado a ambos ID de dispositivo.