Tabela de conteúdos
Teclado Devastator, Scroll Lock e I3WM
Recentemente eu recebi de doação do amigo criptografico Ayr, um teclado Devastator CM-STORM da Cool Master.
Um teclado sem dúvidas lindo, macio e gostoso de usar. Porém enfrentei um problema muito chato no meu I3wm. Por ser um teclado que possui leds a iguinição dele funciona atráves do Scroll Lock.
E cada vez que eu apertava o Scroll Lock o teclado era bloqueado e eu não conseguia me locomover atráves das Áreas de trabalhos virtuais, com meu bind (windows). Ou seja, para conseguir trabalhar eu precisava usar o Led desligado.
Este problema não era notavel no Xfce e no Kde, mas no I3wm não tinha como continuar com a brincadeira.
Então comecei a pensar e bater a cabeça qual seria a melhor solução para resolver o meu problema. A primeira ideia foi remapear o teclado! Mas puto trabalho ein?
Então resolvi apelar para o Shell Script e com alguns passos eu consegui resolver meu problema temporáriamente.
Com uma receita simples de Achar a valor do Scroll Lock e criar um script, seu problema será resolvido!
Desativando o Scroll Lock
A primeira brincadeira é usar o comando xev, você ira precisar habilitar e desabilitar o Scroll Lock para conseguir ver qual o Valor/Value dele. Para isto envie a saída para um arquivo para ter melhor visibilidade. Após isso vamos usar o grep para fazer a filtragem e o awk para pegar somente os campos que necessitamos.
$ xev > resultado $ grep "Scroll" result | awk '{print $3,$4}' keycode 78
Ou se preferir você pode pegar a saida sem cortes.
$ grep "Scroll" result state 0x30, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
Perceba que o Keycode do Scroll Lock é 78, vamos agora desabilitar o Scroll Lock, para não ter mais problemas com ele.
Para esta finalidade vamos usar o comando xmodmap, sua sintaxe é: xmodmap -e 'keycode <value>=<action>'.
Em <value> você utilizará o valor capturado com o comando xev, e após o sinal de = você deixará em branco.
$ xmodmap -v -e 'keycode 78=' ! 1: keycode 78= keycode 0x4e = ! ! executing work queue ! keycode 0x4e =
O Script Colorido
Para facilitar nossa vida eu criei um script a qual deverá ser executado no auto-start da interface gráfica! Para ambientes via TTY ou Não GUI, você necessitará de outra receita.
Na variável led_off perceba que o valor é 00000000. Este retorno da quando todos os leds do teclado estão desligados!
Se caso você necessite encontrar um outro tipo de retorno use o comando:
xset -q | grep "LED" | awk '{print $10}'
Se não você pode seguir.
#!/usr/bin/env bash #==================HEADER============================================| #AUTOR # Jefferson Rocha # # Resolve o problema para ativar o led no teclado CM-DEVASTATOR # Cooler Master Devastator - LED Gaming Keyboard #====================================================================| #=======================VARS led_off='00000000' key_code='78' # LED Mask LED_STATUS=$(xset -q | grep "LED" | awk '{print $10}') # Scroll Lock off xmodmap -e 'keycode ${key_code}=' # On if [[ "$LED_STATUS" = "${led_off}" ]]; then xset led 3 # on LED else xset -led 3 # off LED fi exit 0
Dê permissão de execução e envie o script para /usr/bin, para ter um acesso global.
# cp led_devastator /usr/bin/
Agora vamos adicionar no arquivo de configuração do i3, .config/i3/config presente na home do seu usuário o seguinte comando:
exec led_devastator
E pronto, agora seu teclado estara com o led ligado sem problemas. Basta reiniciar sua interface e ter o led colorindo sua vida.
Fontes
- Originally written by Slackjeff