eldermarco
(usa Fedora)
Enviado em 26/08/2012 - 17:57h
Não é necessário fazer um if. Apenas procure pelo seu teclado na saída do comando xinput. Se lá estiver, você executa o comando numlockx on. Caso contrário, o script não faz nada. Vou dar um exemplo com a saída do meu aqui. Estou usando somente um teclado, mas a ideia permanece a mesma. Veja:
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ HOLTEK Wireless USB Device id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ USB2.0 Camera id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
Agora suponha que se o meu teclado estiver conectado, a string "AT Translated" apareça. Caso contrário, não (só um exemplo). Então você pode escrever um script que executa o numlockx se essa string aparecer:
#!/bin/bash
xinput --list | grep -q "AT Translated" && numlockx on
onde a opção -q do grep é para que ele não mostre saída nenhuma. Se ele achar a string "AT Translated" ele irá executar o comando numlock on. Caso contrário, ele não irá fazer nada. Salve esse escript, dê permissões de execução e mova ele para o diretório /usr/local/bin. No lugar de executar o numlockx, passe a executar ele.
Alternativamente, você poderia executar esse comando diretamente duranta a inicialização do KDE, mas eu não saberia te dizer onde fazer isso nesse ambiente, já que uso o GNOME.
Teste aí. Tente também a dica dada pelo colega acima. =)
EDIT: Esses monte de carateres estranhos na saída do comando xinput ali em cima é culpa do VOL. Ele que colocou eles aí! rsrs