00:00:00Este é o Kanata, uma ferramenta de código aberto que maximiza o potencial do seu teclado
00:00:03fazendo coisas como registrar uma tecla diferente quando ela é tocada versus quando é segurada,
00:00:08usar uma única tecla para acionar múltiplos comandos,
00:00:10ou ter camadas diferentes para mapeamentos de teclas personalizados.
00:00:12O que é ótimo para alguém como eu, que faz o possível para usar principalmente o teclado.
00:00:16Mas qual é a dessa sintaxe de configuração estranha?
00:00:19E por que eu usaria isso em vez do Karabiner ou de outra ferramenta que começa com K?
00:00:24Se inscreva no canal e vamos direto ao assunto.
00:00:27Kanata é o nome indígena iroquês para "vila",
00:00:30o que não tem nada a ver com teclados.
00:00:33Mas se você gosta de teclados mecânicos como eu, talvez já tenha ouvido falar do QMK,
00:00:37um firmware de teclado de código aberto muito popular,
00:00:39que permite remapear as teclas no próprio teclado antes de o sinal ser enviado para a máquina.
00:00:42O Kanata é como o QMK, mas funciona no nível de software,
00:00:46por isso suporta todos os teclados, até mesmo o do seu notebook.
00:00:49E por ser escrito em Rust, isso significa que ele é rápido
00:00:52e não há praticamente nenhum atraso perceptível ao digitar.
00:00:55Mas não é tão simples de configurar,
00:00:57porque após instalar o Kanata com o Karabiner para Mac —
00:01:00falarei mais sobre isso depois —
00:01:02você precisa escrever um arquivo de configuração usando esta sintaxe de expressão-S inspirada em Lisp,
00:01:07que é a sintaxe de configuração mais bizarra que eu já vi.
00:01:11Porque, em vez de escrever o nome da função fora dos parênteses como seria de se esperar,
00:01:16neste arquivo, você a escreve dentro dos parênteses, logo ao lado dos argumentos.
00:01:21Mas a coisa fica ainda mais estranha quando você começa a aninhar funções,
00:01:24o que é bem comum na configuração,
00:01:26porque em vez de ter os nomes das funções fora dos parênteses,
00:01:30tudo fica dentro, o que torna a compreensão um pouco difícil no início.
00:01:35Mas você acaba se acostumando depois de um tempo.
00:01:36Como um exemplo simples de mapa de teclas, digamos que eu queira que a tecla A mapeie para X.
00:01:41Eu posso fazer isso com uma função "defsource" para especificar as teclas de origem com o argumento A,
00:01:46e pelo menos uma função "deflayer" para especificar as teclas de saída,
00:01:50que chamarei de "base" e darei o argumento X.
00:01:53Qualquer tecla não listada no arquivo de configuração se comporta normalmente.
00:01:57Adicionar mais teclas como B e C e mapeá-las para X e Z ficaria assim.
00:02:02Felizmente, espaços e tabs são insignificantes,
00:02:04então você pode espaçar as teclas para deixá-las tão legíveis quanto quiser.
00:02:08Mais algumas coisas legais que dá para fazer nesse arquivo.
00:02:10Eu poderia configurar o "tap-hold", onde tocar faz uma ação e segurar faz outra,
00:02:15definindo um tempo limite e as teclas que desejo mapear.
00:02:19Neste caso, tocar no A registrará X, e segurar registrará o Shift esquerdo.
00:02:24Para facilitar, eu poderia usar uma função "defvar" para registrar variáveis
00:02:28que uso várias vezes na configuração e referenciá-las com um cifrão,
00:02:32o que é perfeito para "home row mods", combinando as teclas de repouso com os quatro modificadores comuns.
00:02:36Para ser sincero, isso parece muito estranho no começo,
00:02:39mas eu me acostumei tanto que não consigo imaginar usar um teclado de outra forma.
00:02:42Eu também poderia criar uma nova "deflayer" com um nome como "editor"
00:02:46e usá-la especificamente para editar vídeos, com um conjunto totalmente novo de mapeamentos,
00:02:51alternando para essa camada através de uma tecla de troca de camada.
00:02:54E se quiser fazer algo realmente avançado na troca de camadas ou qualquer outra coisa,
00:02:58você pode habilitar o servidor TCP do Kanata para que outros aplicativos possam escutá-lo.
00:03:03No meu caso, tenho o SketchyBar monitorando o Kanata
00:03:06para que, quando eu mudo de camada, isso apareça no topo da minha área de trabalho.
00:03:10Sim, deu trabalho escrever tanta configuração para chegar nesse nível,
00:03:13mas nada que uma IA não possa ajudar a resolver.
00:03:16De qualquer forma, por mais legal que isso seja, por que alguém usaria o Kanata em vez do Karabiner Elements?
00:03:21Considerando que ele faz tudo o que o Kanata faz e muito mais,
00:03:24como mapeamentos específicos por aplicativo ou por teclado,
00:03:28teste de teclas com um visualizador de eventos intuitivo,
00:03:30e uma interface gráfica agradável para quem não gosta de comandos no terminal.
00:03:35Mas para mim, o recurso de "tap-hold" do Karabiner — essencial para home row mods — deixava muito a desejar.
00:03:40Exigiu muita pesquisa e configuração para chegar ao ponto de fazê-lo funcionar.
00:03:45E mesmo quando consegui, não era tão intuitivo quanto no Kanata.
00:03:49Ele registrava constantemente o ato de segurar como um toque rápido.
00:03:51O Kanata, porém, lidou com isso perfeitamente logo de cara, sem ajustes,
00:03:56e não senti necessidade de voltar para o Karabiner Elements.
00:03:59Portanto, se você quer mesmo usar home row mods, sugiro o Kanata.
00:04:03Mas isso não significa que ele seja perfeito.
00:04:05Você precisará de vários arquivos de configuração se tiver teclados com mapas diferentes,
00:04:09o que é um pouco chato se você desconecta um teclado,
00:04:12pois precisa rodar um comando para alternar o mapeamento.
00:04:15Não consegui remapear o botão de play/pause para F8 no meu teclado,
00:04:20algo que eu conseguia fazer com o Karabiner.
00:04:22E levou alguns ajustes para o Kanata funcionar com o mouse MX Master.
00:04:26Felizmente, consegui resolver a maioria desses problemas com soluções rápidas de código,
00:04:30que talvez eu torne código aberto no futuro.
00:04:31Mas eu realmente gostaria que o Kanata tivesse uma comunidade maior,
00:04:34o que este vídeo pode ajudar a fazer se mais pessoas compartilharem com amigos e colegas, certo?