Haga que un teclado inalámbrico utilice siempre un diseño específico

Haga que un teclado inalámbrico utilice siempre un diseño específico

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.

información relacionada