General2026-07-21

Los códigos secretos de mi teclado — encontrando códigos de tecla que nunca supiste que existían

Presioné una tecla en mi teclado y obtuve un número que abrió un agujero de conejo de códigos de tecla ocultos. Algunos ni siquiera tienen teclas físicas asociadas.

Estaba construyendo una función de atajos de teclado para una pequeña aplicación web en la que trabajaba. Solo una pequeña herramienta simple. Presiona una tecla, captura el keycode, asígnalo a una acción. Preparé rápidamente un listener de keydown que registraba event.code y event.key en la consola. Presioné la letra J. Obtuve 74. Presioné Enter. Obtuve 13. Cosas normales.

Entonces, por curiosidad, presioné la tecla Pausa — esa tecla polvorienta entre Impr Pant y Bloq Despl que nunca había tocado intencionalmente en mi vida. Devolvió 19. Presioné Bloq Despl. Otro número que nunca había visto. De repente estaba presionando cada tecla de mi teclado, anotando números como si estuviera descifrando un código antiguo.

Así fue como caí en el mundo de los keycodes, y es mucho más interesante de lo que esperaba.

Lo primero que aprendí es que hay una diferencia entre la tecla física y el carácter que produce. event.key te da el carácter — "a", "b", "1", "!" — basado en lo que realmente se escribe. event.code te da la ubicación física de la tecla en el teclado, como "KeyA" o "Digit1", independientemente de qué teclas modificadoras estén presionadas. Presionar Shift+1 te da "!" para event.key pero siempre "Digit1" para event.code.

Esta distinción importa mucho más de lo que pensaba. Si estás construyendo atajos de teclado, casi siempre quieres event.code, porque no importa qué diseño de idioma tenga el usuario. Un teclado alemán tiene posiciones de letras diferentes que uno estadounidense, pero la ubicación física de la tecla sigue siendo la misma.

Luego descubrí las teclas que ni siquiera existen en la mayoría de los teclados. Hay un keycode para "Cerrar" — un botón X que algunos teclados tienen. Hay un keycode para "Correo" que abre el cliente de correo predeterminado. "Calculadora" lanza la aplicación de calculadora. "Suspender" pone el ordenador en suspensión. Estas son teclas multimedia y de funciones especiales que muchos teclados incluyen pero la mayoría de los desarrolladores nunca manejan.

Las teclas de función más allá de F12 fueron una revelación. F13 a F24 existen. Nunca he visto un teclado con F13, pero los keycodes están ahí. Existen para compatibilidad heredada con teclados de terminal antiguos que tenían teclas F13 a F24 físicas. Los códigos todavía están en la especificación.

Luego están las combinaciones de teclas modificadoras. Mantener presionadas Ctrl, Alt y Shift simultáneamente y presionar una letra te da una ruta de keycode completamente diferente que presionar la letra sola. El objeto de evento del navegador distingue entre modificadores izquierdo y derecho también — event.ctrlKey versus solo comprobar si control está presionado. La tecla Shift izquierda y la Shift derecha son teclas físicas diferentes y puedes comprobarlas por separado.

Construí una pequeña herramienta que muestra cada keycode en vivo mientras escribo. Está en un marcador en mi barra del navegador ahora. Cada vez que necesito mapear un nuevo atajo, solo la abro y presiono la combinación de teclas que quiero y copio el código. No más adivinar si es "Coma" o "«" o 188.

Honestamente, la parte más divertida fue simplemente presionar teclas al azar y ver aparecer números. La tecla Pausa todavía me hace sonreír cada vez que la presiono.