
Isso realmente deveria ser um comentário sobre uma resposta à perguntaComo atribuir permanentemente um layout de teclado diferente a um teclado USB?Como não é possível comentar, aqui está a nova pergunta, espero que @Sadi esteja lendo:
Meu teclado e mouse sem fio pararam de funcionar depois disso. Pode estar relacionado ao fato de a string "USB Keyboard" não estar contida no nome do meu 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)]
portanto, minha linha GREP fica assim:
xinput -list | grep 'Wireless Desktop.*keyboard' "$@"
Para alterar o layout basta anotar o ID e digitar
setxkbmap -device 14 {language code}
Alguma idéia de como consertá-lo permanentemente para que o computador reconheça este dispositivo e o tenha com o idioma correto pronto depois de conectado?
Possíveis pistas aqui:
Responder1
Pelo que sei (o que não é muito) todas as soluções que envolvemudev.rulesparou de funcionar recentemente e, no momento, a única solução que parece funcionar é um script de inicialização simples que pressupõe que o segundo teclado esteja conectado antes do usuário fazer login ou então o usuário deve executar manualmente esse script mais tarde.
O script testado para funcionar com teclados USB (aqui:https://askubuntu.com/a/337431/47343) deve, obviamente, ser modificado parateclados sem fio, que pode ser algo como o abaixo.
Nota 1: Além de inserir o código de layout de teclado desejado, também pode ser necessária alguma tentativa e erro (por exemplo, primeiro inserir cada linha em uma janela de terminal), pois o autor é um "amador" (e quase iniciante) " roteirista" ;-)
#!/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 o sistema parece atribuir 2 IDs de dispositivos a um hardware, descobri que é mais seguro atribuir o mesmo código de layout de teclado a ambos os IDs de dispositivos.