00:00:00Este es Kanata, una herramienta de código abierto que maximiza el potencial de tu teclado
00:00:03haciendo cosas como registrar una tecla diferente según si la pulsas o la mantienes presionada,
00:00:08usar una sola tecla para activar múltiples pulsaciones,
00:00:10o tener diferentes capas para distintos mapeos de teclas personalizados.
00:00:12Lo cual es genial para alguien como yo, que intenta usar principalmente el teclado.
00:00:16Pero, ¿a qué viene esa sintaxis de configuración tan rara?
00:00:19¿Y por qué usaría esto en lugar de Karabiner u otra herramienta que empiece por K?
00:00:24Suscríbete y vamos a verlo a fondo.
00:00:27Kanata es el nombre indígena iroqués para "aldea",
00:00:30lo cual no tiene absolutamente nada que ver con los teclados.
00:00:33Pero si te gustan los teclados mecánicos, puede que hayas oído hablar de QMK,
00:00:37un popular firmware de código abierto para teclados,
00:00:39que permite remapear las teclas en el propio hardware antes de enviar la señal al equipo.
00:00:42Kanata es como QMK pero funciona a nivel de software,
00:00:46así que es compatible con todos los teclados, incluso el de tu portátil.
00:00:49Y como está escrito en Rust, esto significa que es rápido
00:00:52y que realmente no hay retraso perceptible al escribir.
00:00:55Aunque no es tan sencillo de configurar,
00:00:57porque tras instalar Kanata con Karabiner para Mac (luego hablaré de eso),
00:01:00luego hablaré de eso,
00:01:02tienes que escribir un archivo de configuración usando una sintaxis de expresiones S inspirada en Lisp,
00:01:07que es la sintaxis de configuración más extraña que he visto jamás.
00:01:11En lugar de escribir el nombre de la función fuera de los paréntesis, como sería de esperar,
00:01:16en este archivo se escribe dentro de los paréntesis, justo al lado de los argumentos.
00:01:21Pero la cosa se vuelve más rara cuando empiezas a anidar funciones,
00:01:24lo cual es bastante común en la configuración,
00:01:26porque en vez de tener los nombres de las funciones fuera de los paréntesis,
00:01:30todo queda dentro, haciendo que parezca un poco difícil de entender al principio.
00:01:35Pero te acabas acostumbrando después de un tiempo.
00:01:36Como ejemplo sencillo de mapeo, digamos que quiero que la tecla A actúe como la X.
00:01:41Puedo hacerlo con la función "defsource" para especificar las teclas de origen con el argumento A,
00:01:46y al menos una función "deflayer" para especificar las teclas de salida.
00:01:50A esta la llamaré "base" y le daré el argumento X.
00:01:53Cualquier tecla que no figure en el archivo de configuración se comportará de forma normal.
00:01:57Así que añadir más teclas como B y C y mapearlas a X y Z se ve así.
00:02:02Por suerte, los espacios en blanco y los tabuladores son irrelevantes,
00:02:04así que puedes espaciar las teclas para que sean tan legibles como quieras.
00:02:08Hay otras cosas interesantes que puedes hacer con este archivo.
00:02:10Podría configurar el "tap hold", para que pulsar haga una acción y mantener haga otra,
00:02:15definiendo un tiempo de espera y las teclas que quiero mapear.
00:02:19En este caso, pulsar A registrará X y mantenerla registrará el Shift izquierdo.
00:02:24Para facilitar las cosas, podría añadir una función "defvar" para registrar variables
00:02:28que use varias veces y referenciarlas con el símbolo de dólar.
00:02:32Esto es perfecto para los "home row mods", asignando las teclas centrales a los cuatro modificadores comunes.
00:02:36Sinceramente, parece muy raro al principio,
00:02:39pero me he acostumbrado tanto que no me imagino usando un teclado de otra forma.
00:02:42También podría crear un nuevo "deflayer" con un nombre como "editor"
00:02:46específicamente para editar vídeos, con todo un conjunto nuevo de mapeos
00:02:51y cambiar a esa capa mediante una tecla de cambio de capa.
00:02:54Y si quieres hacer algo realmente pro al cambiar de capa o cualquier otra cosa,
00:02:58puedes activar el servidor TCP de Kanata para que otras aplicaciones lo escuchen.
00:03:03En mi caso, tengo SketchyBar escuchando a Kanata
00:03:06para que, cuando cambio de capa, se muestre en la parte superior de mi escritorio.
00:03:10Sí, costó mucha configuración llegar a este punto,
00:03:13pero no es nada con lo que la IA no pueda ayudar.
00:03:16Aun así, ¿por qué alguien usaría Kanata en lugar de Karabiner Elements?
00:03:21Teniendo en cuenta que este último puede hacer todo lo de Kanata y mucho más,
00:03:24como mapeos específicos según la aplicación o el teclado,
00:03:28probar teclas con un visor de eventos muy intuitivo,
00:03:30y una interfaz gráfica para quienes no gustan de usar comandos en la terminal.
00:03:35Pero para mí, la función "tap hold" de Karabiner para los home row mods dejaba mucho que desear.
00:03:40Me llevó mucha investigación y configuración lograr que funcionara bien.
00:03:45E incluso cuando lo conseguí, no era tan intuitivo como en Kanata.
00:03:49A menudo registraba las pulsaciones largas como toques simples.
00:03:51Kanata, en cambio, manejó esto perfectamente desde el principio sin ajustes,
00:03:56y no he sentido la necesidad de volver a Karabiner Elements.
00:03:59Así que, si realmente quieres home row mods, te sugiero usar Kanata.
00:04:03Pero eso no significa que sea perfecto.
00:04:05Necesitarás varios archivos de configuración si usas distintos teclados con distintos mapeos,
00:04:09lo cual es algo molesto si desconectas un teclado,
00:04:12porque tienes que ejecutar un comando para cambiar al mapeo correspondiente.
00:04:15No encontré forma de remapear el botón play/pause a F8 en mi teclado,
00:04:20algo que sí podía hacer con Karabiner.
00:04:22Y me costó unos cuantos ajustes hacer que Kanata funcionara con el ratón MX Master.
00:04:26Por suerte, he podido programar soluciones para la mayoría de estos problemas,
00:04:30que quizás publique como código abierto en el futuro.
00:04:31Pero ojalá Kanata tuviera una comunidad más grande,
00:04:34algo a lo que este vídeo podría ayudar si más gente lo comparte con sus amigos y colegas, ¿verdad?