1 pontos por seungchan1e 12 일 전 | Ainda não há comentários. | Compartilhar no WhatsApp

Descrição

KeyZen é um mecanismo de remapeamento de teclas baseado em camadas, rápido e com baixo uso de recursos.

  • Usa camadas de teclado baseadas em pilha.
  • Suporta execução no login com inicialização rápida, em nível de execução imediata após o login.
  • É possível configurar como o remapeamento será feito por meio de arquivos YAML.

Mais detalhes sobre a configuração podem ser consultados no guia de configuração.

Situações em que vale a pena usar o KeyZen

Se, ao usar o teclado, as setas direcionais ficarem longe das teclas-base como F e J e isso quebrar seu fluxo, experimente mapear Capslock + H, J, K, L para Left, Down, Up, Right.

Experimente mapear palavra anterior (Ctrl + Left), próxima palavra (Ctrl + Right), início da linha (Home) e fim da linha (End) para W, E, P e O, respectivamente. Assim, a necessidade de levar a mão até o mouse diminui.

Motivo da criação

Todos provavelmente concordam que o capslock está em uma posição confortável demais em relação à frequência com que é usado. Por isso, procurei várias formas de usá-lo em combinação para obter um comportamento parecido com o do vim. Originalmente eu usava autohotkey para isso, mas havia alguns problemas.

  • Havia um problema em que o estado da tecla capslock não era sincronizado corretamente. Isso pode variar dependendo de como o código é escrito, mas no meu caso havia várias situações em que o sistema reconhecia o capslock como pressionado mesmo sem eu tê-lo pressionado, e eu precisava apertá-lo repetidamente.
  • Eu usava a execução no login colocando o programa na pasta de inicialização, mas nesse caso havia o problema de ele só começar a rodar vários minutos depois de o computador ser ligado.

Como alternativa, também procurei projetos como o kanata, mas no caso do kanata os recursos eram amplos demais, ele consumia mais CPU do que eu esperava e não suportava execução no login rápido. (Seria possível colocá-lo na pasta de inicialização, como no caso do autohotkey, mas o mesmo problema ocorreria.)

Além disso, o Keyboard Manager do PowerToys tinha o problema de exigir que Capslock fosse pressionado junto a cada entrada mesmo em um caso como Capslock + H = Left Arrow.

Por isso, criei o KeyZen com foco em baixo uso de recursos, configuração simples e execução rápida no login.

Aspectos técnicos

A maior parte do código foi escrita com o uso do Codex. Depois de cerca de 10 dias de pesquisa prévia, comecei o desenvolvimento com Codex e fiquei surpreso por ter terminado em apenas um dia.

Ele foi implementado em Rust e instala hooks de teclado por meio da Windows API. Eu considerei se deveria instalar hooks de teclado em nível de usuário ou implementar isso via driver, mas optei pelos hooks de teclado. Os hooks de teclado têm o problema de não funcionar em programas como o Gerenciador de Tarefas, mas achei que mexer na parte de drivers poderia ser um pouco arriscado.

Ainda não há comentários.

Ainda não há comentários.