x11 – ¿Cómo obtener códigos clave para xmodmap?

Pregunta:

Estoy tratando de usar xmodmap para reasignar las teclas Alt / Super en el teclado Dell L100 y tengo problemas para obtener los códigos de teclas.

Por ejemplo, usar xev no me da un código clave para Alt

FocusOut event, serial 36, synthetic NO, window 0x4a00001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 36, synthetic NO, window 0x4a00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 36, synthetic NO, window 0x0,
    keys:  122 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

Para la tecla Super derecha , xev y showkey dan diferentes códigos de showkey : 134 y 126 respectivamente.

¿Qué está pasando con estos códigos clave?

Intenté obtener códigos de showkey -k de showkey -k y usar el archivo xmodmap continuación, pero eso me dio un mapa extraño que reasignó la tecla b :

clear Mod1
clear Control
keycode 125 = Meta_L
keycode 126 = Meta_R
keycode 58 = Control_L
keycode 56 = Control_L
keycode 100 = Control_R
add Control = Control_L Control_R
add Mod1 = Meta_L Meta_R

Respuesta:

Hay muchos jugadores entre su teclado y el proceso que finalmente maneja el evento de teclado. Entre las principales piezas del panorama se encuentra el hecho de que el sistema X tiene su propia capa de manejo del teclado, y X asocia diferentes "códigos de teclas" con las teclas que su sistema base Linux. El comando showkey le muestra los códigos de teclas en la jerga del sistema base Linux. Para xmodmap , necesita los códigos de xmodmap X, que son los que muestra xev . Siempre que esté planeando trabajar en X y xmodmap a xmodmap su clave con xmodmap , ignore las showkeys y escuche lo que dice xev .

Lo que desea buscar en su salida xev son bloques como este:

KeyPress event, serial 27, synthetic NO, window 0x1200001, root 0x101, subw 0x0, time 6417361, (340,373), root:(342,393), state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 27, synthetic NO, window 0x1200001, root 0x101, subw 0x0, time 6417474, (340,373), root:(342,393), state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False

xev tiende a generar una gran cantidad de resultados, especialmente cuando mueve el mouse. Puede que tenga que retroceder un rato para encontrar la salida que está buscando. En la salida anterior, vemos que el keysym Alt_L está asociado con el código de tecla X 64 .

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım