Talvez adicionar uma regra udev para executar o mesmo comando quando os comandos do teclado puderem resolver o problema.
-
Primeiro, conecte seu teclado externo e execute
lsusbpara encontrar o ID do hardware. Seria algo parecido comBus 002 Device 002: ID 04f2:0402 Chicony Electronics Co., Ltd Genius LuxeMate i200 Keyboar. O id é 04f2: 0402 . -
Em seguida, adicionamos uma regra UDEV. Para editar o arquivo, faça
sudo nano /etc/udev/rules.d/00-usb-keyboards.rules, preencha o arquivo de texto com algo comoACTION=="add", ATTRS{idVendor}=="YOUR_VENDOR(04f2 for me)", ATTRS{idProduct}=="YOUR_PRODUCT(0402 for me)", RUN+="/usr/local/bin/kbd_udev", OWNER="USERNAME"Observe que você deve alterar o campo USERNAME . E com isso, informamos ao udev para executar o script sempre que o dispositivo com o fornecedor correspondente e a ID do produto estiver conectado.
-
Agora chegamos ao arquivo de script
/usr/local/bin/kbd_udev, dosudo nano /usr/local/bin/kbd_udeve preenchemos com o script abaixo#!/bin/bash export DISPLAY=:0 su YOURUSERNAME -c "setxkbmap -layout us -variant altgr-intl -option '' -option caps:escape -option altwin:swap_alt_win lv3:rwin_switch" &> /tmp/kbd_tempNovamente, lembre-se de alterar YOURUSERNAME com seu nome de usuário.
-
Depois de escrever o script, você precisa torná-lo executável. Para fazer isso ..
sudo chmod 755 /usr/local/bin/kbd_udev -
Finalmente, diga ao udev para recarregar suas regras, execute
udevadm control --reload-rules -
Opcional, mas você pode testar para ver se o comando funcionou, procurando no diretório
/tmp/. Docat /tmp/kbd_temp, se houver algum erro, você poderá vê-lo.