Como fazer o seu sistema Linux detectar o seu teclado da ZSA
TL;DR
O Moonlander Mark I e outros teclados da ZSA podem ter o seu firmware modificado várias vezes através de um software chamado Wally. Na interface Oryx, a ZSA também oferece um centro de treinamento de digitação. No entanto, algumas de suas dependências no Linux não ficam exatamente claras no zsa.io/101 – elas estão enterradas no repositório do Wally. Para que ambos funcionem normalmente, deve-se instalar dependências relacionadas ao GTK3 e libusb
. Além disso, é necessário adicionar uma regra udev para que o sistema reconheça o teclado apropriadamente.
Os teclados da ZSA podem receber as suas diversas modificações em suas configurações através de um software chamado Wally. Tal software envia o arquivo binário gerado no configurador Oryx para o teclado. Cada reinstalação envolverá os seguintes passos:
- Compilar o layout desejado no configurador Oryx
- Abrir o Wally no terminal ou usá-lo através de sua interface gráfica
- Seguir os passos descritos pelo software (selecionar o arquivo binário, apertar o botão de redefinição, esperar a instalação do novo firmware)
Na interface Oryx, a ZSA também oferece um centro de treinamento de digitação. No entanto, algumas de suas dependências no Linux não ficam exatamente claras no zsa.io/101 – elas estão enterradas no repositório do Wally.
Instalando as dependências do Wally no Linux
O Wally precisa de dependências relacionadas ao libusb
e, adicionalmente, ao GTK3 se você quiser usar a sua interface gráfica. Segundo a documentação do Wally, estes são os nomes dos pacotes necessários nas distribuições mais populares:
- Distribuições da família Arch:
gtk3 webkit2gtk libusb
- Distribuições da família Debian:
libusb-dev
- Distribuições da família RHEL:
gtk3 webkit2gtk3 libusb
Criando uma regra udev para o seu teclado
Regras udev
são criadas para que “eventos” relacionados a aparelhos conectados possam ser acessados sem que seja necessário conceder privilégios desnecessários a certas partes do sistema.
Para criar uma regra udev
para o Wally, crie um arquivo chamado 50-wally.rules
em /etc/udev/rules.d/
com privilégios de administrador.
sudo touch /etc/udev/rules.d/50-wally.rules
Neste arquivo, você deve inserir as seguintes linhas:
# ErgoDox EZ
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666"
# Moonlander e Planck EZ
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", \
MODE:="0666", \
SYMLINK+="stm32_dfu"
Por fim, certifique-se que seu usuário faz parte do grupo plugdev
:
sudo groupadd plugdev
sudo usermod -aG plugdev $USER
Não se esqueça de encerrar a sessão com o seu usuário e começar uma nova para que as mudanças sejam detectadas pelo seu sistema.
Voilà! O seu sistema está pronto para usar tanto o Wally quanto o treinamento em tempo real do Oryx.
Referências
Notas de rodapé
Se você usa macOS, você também precisa instalar o libusb
usando brew
:
brew install libusb