¿Es posible reasignar las teclas Atrás / Adelante de un teclado USB Thinkpad en Linux?

8

En mi computadora portátil Thinkpad, puedo cambiar fácilmente las teclas Atrás / Adelante a otra cosa (generalmente las asigno a PageDown / PageUp), ya que tienen su propio código de tecla (166 y 167):

xmodmap -e 'keycode 166=Prior'
xmodmap -e 'keycode 167=Next'

Sin embargo, en mi teclado USB Thinkpad, las teclas Atrás / Adelante parecen estar asignadas a Alt + Izquierda y Alt + Derecha, respectivamente, por lo que no puedo usar xmodmap para reasignarlas. ¿Hay alguna otra forma de reasignarlos? Ya he intentado xautomation, pero eso no funcionó.

Esto es lo que 'xev' me muestra cuando presiono la tecla Reenviar:

KeyPress event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023191, (16,-20), root:(641,33),
    state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023191, (16,-20), root:(641,33),
    state 0x8, keycode 114 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023271, (16,-20), root:(641,33),
    state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023271, (16,-20), root:(641,33),
    state 0x0, keycode 114 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
Guilherme Salgado
fuente
1
Si las teclas tienen código clave, pueden reasignarse, ¿verdad? ¿Es diferente a la tecla de bloqueo de mayúsculas? Esta página lo reasigna bien, parece. No lo he probado Solo sugiero. efod.se/writings/linuxbook/html/caps-lock-to-ctrl.html
Bibhas
El problema es exactamente que no tiene un código clave y, en cambio, está conectado a alt-left / alt-right
Guilherme Salgado

Respuestas:

0
  1. Instalar xdotool
  2. Cree un script o un alias de shell para el comando de pulsación de tecla que desea ejecutar ( xdotool key --clearmodifiers Page_Down)
  3. Enlace ese script / alias al combo enviado (Alt + Izquierda) en la configuración de acceso directo / acceso directo de su entorno de escritorio.

Tenga en cuenta que en gnome-control-center no parece posible asignar los botones Atrás / Adelante del teclado USB a un acceso directo (en realidad puede asignarlos, pero el comando / acción que asignó a él nunca se llamará / suceda), por lo que es posible que deba usar algo más, como el complemento Comiz 'Commands.

Trineo
fuente
1
Gracias por la sugerencia @sleighboy. Lo intenté con xautomation , pero no funcionó. Vea mi propia respuesta, a continuación, sobre por qué
Guilherme Salgado
1
En realidad, esta debería ser la respuesta final y explicaré aquí por qué no funcionó. El comando a ejecutar debería ser xdotool key --clearmodifiers Page_Upy, por alguna razón, asignar el botón Atrás / Adelante como acelerador de un acceso directo en gnome-control-center no parece funcionar, pero si usa el complemento compiz '' Comandos 'funcionará.
Guilherme Salgado
0

Puse esto en mi .bashrc:

# this maps the previous and next page buttons to pgup and pgdown 
xmodmap -e "keycode 167 = Next" 
xmodmap -e "keycode 166 = Prior"

funciona muy bien, pero no parece cortarlo en virtualbox 6 por alguna razón.

Stu
fuente