Configurando teclados multimídia
Colaboração: Carlos E. Morimoto
Data de Publicação: 14 de Maio de 2006
Depois de 6 dias falando sobre redes, vamos a uma dia mais "light", entrando
em clima de Domingo.
Existem no mercado muitos teclados com teclas especiais, que permitem abrir
o media player, ajustar o volume, abrir o leitor de e-mails e assim por
diante. Estes teclados quase sempre acompanham algum driver ou utilitário
de configuração, que naturalmente está disponível apenas para Windows. Mas,
você pode definir ações para as teclas especiais do seu teclado também no
Linux, com algumas configurações simples.
A idéia central é que todo teclado utiliza um processador de 8 bits para
ler as teclas digitadas. Ele suporta 256 teclas diferentes, mas os teclados
possuem apenas 104 ou 105 teclas, deixando um monte de endereços livres. Os
"teclados multimídia" aproveitam esta característica para adicionar algumas
teclas extras. Ao configurar estes teclados no Linux, você precisa verificar
quais são os códigos gerados pelas teclas adicionais e atribuir funções a
elas, usando o Painel de controle do KDE.
Você pode usar o xev, um pequeno utilitário que monitora as teclas digitadas
e lhe mostra todas as informações. Ele permite que você veja a forma como
o sistema vê cada uma.
Abra um terminal e execute-o usando seu login de usuário:
$ xev
Pressione agora cada uma das teclas especiais. Na saída exibida no terminal,
o xev exibe dois eventos para cada tecla pressionada (um ao pressionar,
outro ao soltar). O volume de informações é grande, mas o que nos interessa
é apenas o código numérico de cada tecla, exibido depois do "keycode" na
terceira linha de cada evento:
Anote o código de cada tecla e abra o arquivo ".xmodmap", dentro do seu diretório de usuário:
$ kedit ~/.xmodmap
Vamos agora relacionar cada código com uma tecla de função. No teclado temos
as teclas F1 até F12, podemos então relacionar as teclas especiais com,
por exemplo, as teclas F18 em diante (que na verdade não existem), como em:
keycode 144 = F18
keycode 164 = F19
keycode 162 = F20
keycode 153 = F21
keycode 174 = F22
keycode 176 = F23
keycode 160 = F24
keycode 130 = F25
keycode 236 = F26
keycode 234 = F27
keycode 233 = F28
keycode 223 = F29
Aqui eu coloquei todas as teclas, mas você pode adicionar apenas as que
for realmente utilizar :). Para que a alteração entre em vigor sem precisar
reiniciar o X, rode o comando:
$ xmodmap ~/.xmodmap
A partir daí, você pode configurar ações para elas no "Ações de entrada",
no "Painel de Controle do KDE > Regional & Acessibilidade". Você pode
tanto definir ações "simples", para que seja aberto um determinado programa
quando a tecla é pressionada, quanto ações mais complexas. Neste caso vale
a criatividade.
Para fazer com que a tecla do media player abra o XMMS, clique no "Nova
Ação". Na aba "Geral", marque a opção "Tipo da Ação > Atalho do teclado >
Comando/URL (simples)". Acesse a aba "Atalho de teclado", defina a tecla
usada e, na aba "Configurações do Comando/URL", coloque o aplicativo que
será aberto, no caso, "xmms". Você não está restrito apenas a aplicativos,
pode usar qualquer comando de terminal.
Caso esteja em dúvida sobre qual comando abre determinado programa, clique
com o botão direito sobre o botão "K" na barra de tarefas e acesse o "Editor
de menus". Nele você pode ver o comando correspondente a cada ícone no menu.
Para os casos mais complicados, onde a tecla não gere nenhuma resposta no
xev, existe um procedimento um pouco mais trabalhoso, que "ensina" o sistema
o que fazer com cada tecla.
Mude para um terminal de texto puro (pressione Ctrl+Alt+F1), e pressione
as teclas especiais. Elas não farão com que apareça nada na tela, mas se o
sistema estiver recebendo algum sinal do teclado, ele incluirá uma entrada
no log, falando sobre a tecla "não identificada".
Rode o comando "dmesg", que mostra o log do sistema:
# dmesg
Você verá uma entrada para cada tecla, contendo um código em hexa para cada tecla, como em:
atkbd.c: Unknown key pressed (translated set 2, code 0x9e on isa0060/serio0).
atkbd.c: Use 'setkeycodes e01e <keycode>' to make it known.
Precisamos agora achar um código livre para associar a tecla a ele. Isto é bem
simples, pois os códigos de 121 a 255 estão geralmente livres. Para verificar,
use o comando abaixo, substituindo o "122" por um número até 255. Se ele não
retornar nada, significa que o código não vago e você pode utilizar sem medo:
# getkeycodes | grep 122
Falta agora associar o código em hexa da tecla com o keycode, o que é feito
usando o comando "setkeycodes", como em:
# setkeycodes e01e 122
Para que o comando torne-se definitivo, abra o arquivo
"/etc/init.d/bootmisc.sh" num editor de textos (como root) e adicione
o comando no final do arquivo. Todos os comandos dentro do arquivo são
executados a cada boot:
# kedit /etc/init.d/bootmisc.sh
A partir daí, volte ao arquivo ".xmodmop", associe a nova tecla com o "F18"
e defina uma ação para ela no "Ações de entrada". Repita o processo para
cada tecla que desejar ativar :).
Uma observação é que alguns teclados especiais, como os usados nos notebooks
Toshiba A70 e A75 realmente não funcionam, pois utilizam um sistema
proprietário para o mapeamento das teclas especiais, que não é suportado
pelo sistema. Nestes casos, realmente não existe muito o que fazer. '