Remapear teclas en Linux

Regresarle la vida a la tecla Caps Lock

El post de hoy es bastante sencillo, pero al mismo tiempo útil. En un día normal, si presiono dos veces la tecla Caps Lock (Bloq Mayús en español) la primera es por error y la segunda para regresar a minúsculas. Es por esto que busqué la manera de remapear dicha tecla para que tenga una función que sí me sea de utilidad y te voy a explicar el proceso enseguida.

Teclado con Caps Lock remapeado

En Linux el proceso es bastante sencillo, sólo basta con utilizar xmodmap para asignar a cada tecla la función que queramos; en mi caso voy a asignarle la función de Esc a la tecla Caps Lock ya que la primera la uso con bastante más frecuencia.

La primer parte del proceso es saber el keycode de la tecla que queremos cambiar, la forma más sencilla es ejecutando desde terminal la aplicación xev la cual, si presionamos una tecla mientras se ejecuta, mostrará en consola algo parecido a esto:

KeyRelease event, serial 35, synthetic NO, window 0x2600001,
    root 0x1e6, subw 0x0, time 13947572, (503,685), root:(3072,719),
    state 0x12, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

En la línea 3 podemos ver claramente el keycode de la tecla presionada, así como la función que tiene. Con la mayoría de las teclas lo único que se tiene que hacer es asignar la nueva función, pero en caso de Caps Lock, al ser una tecla especial (ya que nos permite cambiar directamente el layout entero del teclado a mayúsculas), tenemos primero que quitarle dicha función y posteriormente asignarle una nueva, esto se consigue de la siguiente forma:

xmodmap -e "clear Lock"
xmodmap -e "keycode 66 = Escape"

Como estoy consciente que puede existir la posibilidad (en un caso remoto) de utilizar las mayúsculas continuamente, busqué asignarle a otra tecla esta misma función para que no me faltara. Mi teclado cuenta con teclas multimedia entre las que se incluye una para silenciar el ordenador, esta tecla no la utilizo ya que cuento con una tarjeta de sonido externa desde la que controlo mi volumen general y es mucho más accesible que hacerlo mediante software.

Repitiendo el proceso anterior busqué el keycode de la tecla que quería y enseguida le asigné el valor de la tecla Caps Lock.

xmodmap -e "keycode 121 = Caps_Lock"

Adicionalmente decidí remapear el controlador de volumen de mi teclado, ya que es de esas tipo “perilla sin fin”, y me funciona perfecto para scrollear en el navegador al asignarle los valores de las teclas de las flechas arriba y abajo.

DasKeyboard Media Keys

xmodmap -e "keycode 122 = Up"
xmodmap -e "keycode 123 = Down"

Cabe destacar que si cambias la distribución de teclado en la sesión estos cambios se pierden y se tienen que asignar de nuevo dichas teclas, por esto integré todas las lineas anteriores a un script que se ejecuta al inicio de sesión y al cambiar mi distribución de teclado, ya que estoy probando Dvorak, pero de eso ya hablaré otro día.

A mi esto me resultó muy útil, cuéntame en los comentarios si para ti sí tiene utilidad la tecla Caps Lock o si prefieres remapearla qué función decidiste asignarle. No olvides seguirme en Twitter @engell25 y nos leemos pronto.

 
comments powered by Disqus