Como ativar o NumLock condicionalmente? [RESOLVIDO]

1. Como ativar o NumLock condicionalmente? [RESOLVIDO]

Zack
Zacks

(usa KUbuntu)

Enviado em 25/08/2012 - 19:50h

Boa Noite, pessoal.

Eu configurei meu KUbuntu para sempre inicializar o NumLock.
Quando uso um teclado externo, isso é perfeito. Mas quando vou usar o teclado do
notebook, preciso lembrar de ficar desabilitando o NumLock (do contrário, as letras 'viram' números).
No Ubuntu, isso é padrão, mas no KUbuntu estou tendo dificuldades em solucionar isso.
Alguém saberia como proceder?

Obrigado pela atenção,
Zack.


  


2. MELHOR RESPOSTA

Elder Marco
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

3. Re: Como ativar o NumLock condicionalmente? [RESOLVIDO]

Bruno
BrunoTecnico

(usa Sabayon)

Enviado em 25/08/2012 - 21:20h

. Menu K
. digite: settings
. clique no ícone Personal Settings ou System Settings
aberta a tela com vários ícones...
. Input Devices.

A questão é chegar á essa tela: http://i45.tinypic.com/od20x.png

- - -

> Conecte o seu Teclado e veja se na tela citada acima, aparecem 2 Keyboards (teclados).

Caso apareçam 2 (sendo um do Notebook e outro do Teclado externo), vc configura o NumLock de cada um.


4. Re: Como ativar o NumLock condicionalmente? [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 25/08/2012 - 23:07h

Uma outra forma seria executar um script no lugar do numlock diretamente. Este script poderia verificar se o teclado externo está conectado. Se sim, ele ativa o numlock. Se for um teclado usb, ele talvez seja listado na saída do comando lsusb.


5. Re: Como ativar o NumLock condicionalmente? [RESOLVIDO]

Zack
Zacks

(usa KUbuntu)

Enviado em 26/08/2012 - 17:09h

Bruno, eu consegui chegar neste menu.
Mas, não aparece 2 teclados... Eu acredito que ambos os modelos (do notebook e o externo) são iguais ou semelhantes..

eldermarco, eu já procurei por algum script semelhante, mas não consegui nada..
Eu estava tentando fazer alguma coisa com o 'xinput' mas sem sucesso.

Pensei em usar uma solução "feia" com o xinput:
Com o xinput, eu posso ter dois teclados, dois mouses (ou mais) na tela;
assim, pensei em criar um script para sempre tentar dividi-los e habilitar o numlock apenas no segundo teclado
(o externo). Mas achei que era muita gambiarra...


6. Re: Como ativar o NumLock condicionalmente? [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 26/08/2012 - 17:23h

Você consegue listar os dois teclados com algum comando via terminal? Ou melhor, somente o teclado externo já é suficiente.


7. Re: Como ativar o NumLock condicionalmente? [RESOLVIDO]

Zack
Zacks

(usa KUbuntu)

Enviado em 26/08/2012 - 17:34h

Com o comando "xinput --list" eu consigo ver os teclados conectados,
com o comando "xinput --query-state [id]" estou tentando fazer algum script para verificar se o teclado externo está ou não conectado:

Minha ideia:
Executo o comando "xinput --query-state 11" //11 é a id do teclado externo (de acordo com o "xinput --list")
Comparo a saída com "unable to find device 11",
se verdade: o teclado externo não está conectado, desabilito o numlock
do contrário: está conectado, não faz nada.

Eu não sei programar em shell script.. (estou lendo vários tutoriais)
Cheguei no seguinte código:

variavel=`echo xinput --query-state 11`
if $variavel = "unable to find device 11"; then
echo "Ok!!"
else
echo "Não..."
fi

Mas o xinput não funciona como funciona no terminal...



8. Re: Como ativar o NumLock condicionalmente? [RESOLVIDO]

Zack
Zacks

(usa KUbuntu)

Enviado em 26/08/2012 - 18:21h

Puxa!! Funcionou certinho!
Muito obrigado!

Realmente, aquela forma, usando o if era bem mais trabalhosa..


9. Re: Como ativar o NumLock condicionalmente? [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 26/08/2012 - 18:27h

Ah, beleza! Bom que funcionou =]






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts