Blog do TaQ

Quem não tem LED caça com applet

Publicado em Developer

Keyboard LEDs Applet

Devido à situação exposta nesse outro post e no fato de que não houve movimentação no fim de semana a respeito do tal bug e eu não ter tempo para compilar o servidor gráfico inteiro, resolvi mexer a massa cinzenta para procurar uma solução mais de curto prazo para o problema, já que eu estava ficando meio perdido com os LEDs sem resposta. Aí tive que tirar a poeira do meu conhecimento de programação em C (e olha que tinha poeira ali hein!) mais do que eu tirei em relação à Python, que é mais recente.

Devo confessar duas coisas: sempre gostei de programação em C e pode ser que eu tenha feito algumas coisas bem estúpidas de uns tempos para cá com isso pois eu nunca fui a fundo na coisa depois do meu tempo usando C direto em ... DOS. Tá, faz tempo né, fazer o que. Bons tempos que ativar o modo gráfico em 16 cores e usar interrupções direto do processador era a coisa mais linda do mundo. :-) Mas depois disso perdi um pouco o contato, então se alguém achar alguma caquinha minha em C, me desculpe!

Acreditando que tirei o meu da reta com essa explicação, eu procurei alguns programinhas que pudessem mostrar o estado dos LEDs e encontrei alguns:

Infelizmente tive alguns probleminhas com eles, um não compilava sem ter um monte de coisa do GNOME, outro precisava de mais coisas para rodar e outro não existia mais a URL. Procurei um pouco mais informações mas não encontrei algo que me satisfez. Mas como Software Livre nos dá uma flexibilidade e liberdade tremenda, nada melhor do que dar uma olhadinha no código fonte desses pacotes e ver como eles lidam com a situação!

Após uma revisão dos códigos, uma rápida adaptação de algum código que eu tinha aqui e uma procura por APIs que pudessem dar uma ajuda em explicar a captura de eventos do servidor gráfico e do GTK, fiz o código do que chamei de KLAP: Keyboard LEDs Applet, cuja carinha vocês podem ver na imagem acima, rodando aqui no meu XFCE. A sequência de LEDs segue a ordem alfabética: CAPS, NUM e SCROLL. O código e a assinatura do pacote podem ser pegos aqui e a minha chave pública podem pegar aqui.

Fiz um código bem simples, depois eu vou dar uma garibadinha nele e colocar no Sourceforge, mas para instalar é só rodar:

make
make install

Depois disso é só chamar o klap que ele vai direto para a tray mostrando o que seria o estado dos LEDs. Nas minhas máquinas com Slackware rodou de boa, e assim que sobrar um tempo vou fazer um lance mais decente com o configure etc e tal, mas já dá parar ir quebrando um galho. :-) Se alguém confiar em mim pode conferir a assinatura do pacote e rodar o binário já compilado e linkado que vai com o pacote, e ver se não dá nenhum xabú. :-)


Tags:


Comentários

comments powered by Disqus

Twitter