2010-10-14 8 views
5

Poseo un Razer Naga Mouse, en esencia tiene un pequeño teclado numérico al costado. Quiero reasignar estas claves a diferentes claves no utilizadas o a comandos bash. Puedo hacerlo fácilmente usando xev para tomar el código clave (por ejemplo, "1" en el mouse es keycode 87) y luego puedo usar xmodmap para vincular el keycode a una clave diferente.¿Se está creando una clave según el dispositivo en el que se encuentra la clave? (Linux)

Sin embargo, el teclado numérico en mi teclado también heredará esto como el código clave es la misma, lo que he notado es que aunque la "serie" es diferente.

Por ejemplo aquí es la salida de xev al pulsar el botón "1" en mi teclado numérico del ratón.

KeyPress event, serial 34, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2179878, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False 

KeyRelease event, serial 35, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2179966, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XFilterEvent returns: False 

y aquí está la salida al pulsar "1" en mi teclado del teclado numérico

KeyPress event, serial 35, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2180261, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False 

KeyRelease event, serial 36, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2180341, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XFilterEvent returns: False 

¿Hay alguna forma podría asignar las teclas de mi ratón en base a esto?

Respuesta

1
+0

Obtuve el código de linux para mi sistema y me quedé atrapado. No veo init_module() función en cualquier lugar de los/drivers/HID/usbhid :( –

+0

encontré/dev/input/by-id/USB-Razer_Razer_Naga-caso-KBD y haciendo un volcado hexadecimal de esto parece algo que pueda derecha una programa para analizar. Seguir por esta interpretación recorrido por X para Razer Naga tendrá que ser desactivado. –

+0

no me daba cuenta de la que la pregunta es casi un año de edad ... espero que mi respuesta le puede ayudar, aunque :) –

2

En lugar de xmodmap, intente utilizar setxkbmap y xkbcomp. El comando xkbcomp le permite especificar una ID de dispositivo de entrada (usando la opción -i).

Para obtener una lista de los ID de dispositivo se ejecutan xinput --list. (Fwiw, mi Razer Salmosa fue claramente etiquetado como "Razer Razer Salmosa".)

Así es como he convertido mi teclado USB (ID 16) para utilizar la asignación de teclas alemana, manteniendo mi teclado portátil en un mapeo de los Estados Unidos:

setxkbmap de -print | xkbcomp - -i 16 $DISPLAY 

que no se sabe muy bien cómo configurar xkb asignaciones, pero me encontré con un tutorial that looks pretty good.

Cuestiones relacionadas