
Un aporte a Monkeytype.
3 min read
Un aporte a Monkeytype, solo por diversión
A veces un proyecto empieza con una pregunta sencilla: ¿y si pudiera hacer que Monkeytype entendiera mejor el teclado que uso? Me puse a explorar el código por curiosidad y terminé creando dos prototipos para el mapa de teclado. No era una tarea ni una entrega: quería experimentar, aprender cómo se contribuye a un proyecto abierto y construir algo que a mí me resultara útil.
Colores que muestran qué dedo usar
La primera idea fue añadir zonas por dedo al mapa de teclado: cada tecla se tiñe según el dedo que normalmente la pulsa. El meñique, anular, medio e índice tienen colores distintos; la barra espaciadora se marca como tecla del pulgar. La guía se basa en la posición física de cada tecla, no en la letra que aparece, así que puede acompañar distribuciones como QWERTY, Colemak o Dvorak.
También quise que no fuera solo una capa de colores bonita. La opción queda apagada por defecto, se puede activar desde los ajustes y adapta los tonos al tema elegido para conservar el contraste y la legibilidad. La idea responde a una preocupación que ya había aparecido en una conversación de la comunidad: los colores fijos pueden verse mal con algunos temas.[1]
Antes y después
Antes: el mapa con las zonas por dedo desactivadas.
Después: los colores indican qué dedo corresponde a cada zona.
Distintos teclados, distribuciones y temas
Las zonas por dedo en un mapa de teclado dividido.
Colemak-DH en un teclado dividido de matriz: la guía sigue la posición física, no la letra.
La misma idea en un tema claro, con colores adaptados para mantener las teclas legibles.
Un mapa para mi Cornix LP
Después llevé la experimentación a mi propio teclado dividido, un Cornix LP. Añadí un estilo de mapa que representa sus mitades, columnas escalonadas y teclas de pulgar. A partir de la distribución de fábrica, incorporé las leyendas de la capa de símbolos y resaltado de combinaciones.
Así, cuando Monkeytype pide escribir un carácter como ! o :, el mapa puede señalar las teclas que participan en la combinación —por ejemplo, la tecla base, Shift y la tecla que activa la capa—, en vez de iluminar solo una tecla y dejar que uno adivine el resto. También ajusté el mapa para que las teclas especiales y los dedos asignados reflejen mejor la distribución real.
El Cornix en acción
El mapa completo del Cornix LP: columnas escalonadas, teclas de pulgar y leyendas de la capa de símbolos.
Para escribir !, el mapa resalta L1 + Shift + Q: todas las teclas de la combinación, no solo la letra.
Para escribir :, se resaltan L1 + Shift + F, incluso con las zonas por dedo desactivadas.
Estas capturas forman parte de la propuesta que compartí en la discusión de la comunidad.[1]
Lo que aprendí construyéndolo
No encontré un primer issue libre que me entusiasmara, así que dejé de buscar una tarea ajena y probé una idea propia. En el camino tuve que entender cómo Monkeytype convierte las distribuciones en mapas, cómo se comportan sus temas y cómo mantener intactos los estilos existentes cuando las funciones nuevas están desactivadas.
En mis pruebas locales, pasaron 1,143 pruebas del frontend, incluidas 11 nuevas para estas funciones; además, lint y typecheck terminaron sin errores. Organicé el trabajo en commits separados para las zonas por dedo y el estilo Cornix, y los subí a mi fork de Monkeytype.[2][3]
Un prototipo, no una función oficial (todavía)
Vale la pena aclararlo: esto todavía no está integrado en Monkeytype. Dejé los cambios en mi fork y ya compartí la propuesta en la discusión de la comunidad; todavía falta abrir los pull requests.[1] La implementación está hecha y probada localmente, pero la comunidad y quienes mantienen el proyecto todavía tendrían que revisarla y decidir si encaja.[4]
Por ahora, me quedo con lo más divertido del proceso: tomar algo que uso para practicar, imaginar cómo podría ayudar a aprender mecanografía y convertir esa curiosidad en código funcional. No tenía que ser más que eso; si después termina ayudando a alguien más, sería un buen extra.