miércoles, noviembre 21, 2012

modificar el símbolo o la función de una tecla en xserver en linux

HERRAMIENTAS A CONSIDERAR

  • showkey
  • xev

Compre un teclado Wireless de marca Perfect Choice, el cúal me gusto debido al tamaño reducido y su diseño ya que las teclas y el espacio entre teclas es similar al de Mac, sin embargo cometieron la burrada de no poner la tecla AltGr que es básica para poner el tercer símbolo de las teclas, por lo que el workaround que se me ocurre es mapear la tecla Ctrl_Derecha para que sea AltGr, pero como se requiere Ctrl_Derecha para poder salir del modo capturado en Virtual Box, tengo la opción de convertir Supr en Ctrl_Derecha o usar la inutil tecla de windows como Ctrl_Derecha

Así que esto es algo de lo que investigue para implementar este workaround:

usando xev observamos el keycode correspondiente a la tecla que tiene el 1 como vemos es el codigo 10

#mapear la tecla del 1 para que ponga 3
xmodmap -e 'keycode 10=3'
#mapear la tecla del 1 para que ponga a
xmodmap -e 'keycode 10=a'

ahora podemos intentar con una tecla que no tenga simbolo como supr y mapearla a que sea un simbolo

supr keycode is 119

xmodmap -e 'keycode 119=a'

ok, funciona, ahora lo que quiero es mapear la tecla de supr para que funcione como AltGr que este estupido teclado no contiene dicha tecla y no puedo poner la @

xmodmap -e 'keycode 119=ISO_Level3_Shift'

Para el caso de las teclas modificadoras como shift, se tiene que hacer algo más Para ver como esta configurado usamos:

xmodmap

esto mostrara algo como esto

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69),  Super_L (0x85)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_R (0x86),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

En resumidas cuentas lo que necesitamos hacer es: La tecla de windows (keysym=Super_L) funcionara como tecla de control # Como esta definida como mod4, entonces hay que removerla xmodmap -e 'remove mod4 = Super_L' # Lo siguiente es añadirla como tecla de control xmodmap -e 'add control = Super_L' # Luego procedemos a quitar la Control_R como tecla de control xmodmap -e 'remove control = Control_R' # Y añadimos Control_R como mod5 xmodmap -e 'add mod5 = Control_R' # La tecla de Insert, como esta en el extremo superior derecho, debería ser Supr xmodmap -e 'keysym Insert = Delete' # No tenemos AvPag ni RePag, pero podemos usar Up and Down, cuando se presionan con Shift xmodmap -e 'keysym Up = Up Page_Up' xmodmap -e 'keysym Down = Down Page_Down' Y CON ESTO DAREMOS POR CONCLUIDO LA CONFIGURACIÓN, ya dependiendo de como nos adaptemos a este teclado, entonces añadiremos otras funciones si es necesario. Lo que si se me hace muy necesario a esta altura sería tener teclas para subir y bajar el volumen.

No hay comentarios.: