Intercambio de roles

A veces, demasiadas veces, me da la sensación de que los ingenieros que diseñan equipos para los distintos fabricantes de hardware piensan con el trasero. Toman decisiones relativas al diseño de los ordenadores y periféricos que atentan contra cualquier sentido de la lógica (y no digamos del sentido común). Y lo peor es que, seguramente, son decisiones fundamentadas en su personalísimo criterio, no en las opiniones, quejas o necesidades de los clientes que compran sus artículos.

Una muestra de este despotismo estético y funcional es la fisonomía del teclado y la distribución de funciones entre sus teclas. Y lo voy a explicar a través de un ejemplo.

tecla portatil HP Stream

Tecla ‘ImprPant/Ins’ de un HP Stream

Cuando adquirí el portátil que tengo entre mis manos, un modesto HP Stream 11, no tardé en descubrir que la tecla usada habitualmente para conmutar el modo de inserción de texto (Ins) tenía dos funciones: esa misma (la de conmutar) y la función de realizar capturas de pantalla (ImprPant). Hasta ahí todo bien. El problema estaba en que la función más importante y útil de las dos, la conmutación del modo de inserción, era la función secundaria de dicha tecla, lo cual obligaba a recurrir a la combinación de teclas FnImprPant para activarla; mientras que la función principal, a la cual se accedía oprimiendo simplemente dicha tecla, era la captura de pantalla, lo cual no parece muy necesario para el usuario común.

Es posible que no parezca de vital importancia el hecho de tener que presionar una combinación de dos teclas para activar el modo de inserción, pero si se tiene en cuenta que la función Ins también se utiliza muy frecuentemente para la operación de copiar y pegar hacia y desde el portapapeles (a través de las teclas Ctrl y Mayus, respectivamente), entonces ya no resulta tan insignificante el esfuerzo extra necesario. Ya que no es lo mismo, por ejemplo, poder pegar mediante la combinación MayusIns, que tener que hacerlo con MayusFnIns; más que nada porque no es lo mismo copiar o pegar usando una sola mano, que tener que hacerlo con ambas manos 1.

Este detalle, aparentemente intrascendente, me daba mucho coraje. Especialmente cuando pensaba que, si hubieran diseñado el teclado con sentido de la lógica, podría ahorrarme ese esfuerzo repetitivo, pues podría activar/desactivar el modo de inserción tocando una única tecla. Por tanto, me puse manos al teclado (nunca mejor dicho) para averiguar si existía una solución en la distro GNU/Linux que había instalado 2 y de qué manera podría intercambiar las funciones ImprPant e Ins o, generalizando, reconfigurar el mapeo del teclado. Y, tras una ardua búsqueda por la red, encontré la solución, la cual me dispongo a explicar detalladamente.

  1. Ejecutar con derechos de administrador nuestro editor de texto favorito y abrir el fichero /usr/share/X11/xkb/symbols/pc, fichero que contiene datos de configuración de la extensión del teclado del servidor Xorg, en el cual se asigna a cada acción o tecla modificadora la función que le corresponde.
  2. Cada acción está representada por un identificador mnemotécnico situado a continuación de una etiqueta key, por lo que hay que realizar un pequeño esfuerzo para reconocer cuales son los identificadores de las acciones cuyas funciones queremos intercambiar. En mi caso, las acciones implicadas son insertar e imprimir pantalla, cuyos identificadores son INS y PRSC (PRint SCreen), respectivamente, que se sitúan dentro de la sección partial hidden alphanumeric_keys xkb_symbols del fichero citado.
  3. Las funciones asignadas se definen mediante una serie de constantes descriptivas que se especifican entre llaves y corchetes ({ [ … ] }). En el caso que nos ocupa, la función de insertar se describe así:
         key  <INS> {	[  Insert		]	};
    

    y así la función de capturar pantalla:

         key <PRSC> {
    		type= "PC_ALT_LEVEL2",
    		symbols[Group1]= [ Print, Sys_Req ]
    	};
    
  4. Como queremos que la función principal de la tecla ImprPant/Ins sea Ins y la función secundaria ImprPant, solo será necesario intercambiar en dicho fichero las definiciones funcionales de cada acción, quedando así las asignaciones anteriores:
        key <PRSC> {        [  Insert               ]       };
        ...
        key  <INS> {
            type= "PC_ALT_LEVEL2",
            symbols[Group1]= [ Print, Sys_Req ]
        };
    
  5. Guardamos el fichero y salimos del editor.

Y, por último, solo queda reiniciar el sistema para que el intercambio se haga efectivo, lo cual es perfectamente comprobable con solo pulsar la tecla (o las teclas) afectada, con y sin la tecla modificadora Fn. Es posible intercambiar las funciones de cualquier otro par de acciones o teclas, tan solo es necesario buscar en el fichero /usr/share/X11/xkb/symbols/pc sus identificadores (que son muy descriptivos) e intercambiar las definiciones asociadas a cada una de ellas. Intercambio que, por cierto, se puede hacer rápidamente mediante un corta & pega 😉


  1. Los que hagan uso intensivo del teclado para esas operaciones sabrán a qué me refiero. 
  2. Dicho modelo de portátil viene con Windows 8 preinstalado, como es previsible. 
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s