GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Teclas Ctrl y Alt asignadas a Shift por alguna razón?

Instalé Ubuntu 14.04 y me encanta. Sin embargo, al jugar a un juego llamado Garry's Mod noté que mi CTRL y ALT las teclas de mi teclado con cable se detectaban como Shift . Miré la tabla de distribución del teclado y lo confirmé. También noté que mi Windows, o Super Tecla, CTRL derecho y ALT derecha todos están siendo mapeados a Left Shift .

Todos funcionan perfectamente, solo se detectan mal. He seleccionado el diseño de Estados Unidos, que es lo que se supone que es mi teclado y está en Windows. ¿Alguien puede ayudar? Mi teclado se detecta como un teclado USB SONiX (la marca real del teclado es Avazz).

  • mi xev -event keyboard la salida es esta para cada uno:

    KeyRelease event, serial 28, synthetic NO, window 0x4a00001,
        root 0xdc, subw 0x0, time 2446369, (730,547), root:(795,599),
        state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
        XLookupString gives 0 bytes: 
        XFilterEvent returns: False
    

    Lo único que cambia es la hora.

  • El sudo evtest El comando muestra todas las teclas modificadoras como

    type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1v type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
    
  • para lsusb , el controlador que está usando es el usbhid conductor.

    lsusb muestra algo confuso; el mismo puerto que mi teclado se muestra en otros comandos se muestra en lsusb como controlador de mi mouse inalámbrico, Logitech, Inc. Unifying Receiver . Este puede ser el problema, pero probablemente simplemente me equivoque en qué puerto está. Debido a esto, no estoy seguro de qué controlador es qué. Voy a publicarlos todos, aunque esto puede ser molesto. Tengo un teclado separado conectado junto con el principal para usar CTRL , Súper o ALT por cierto, no se deje confundir por el controlador de teclado Logitech Classic.

    Bus 001 Device 009: ID 0bda:8172 Realtek Semiconductor Corp. RTL8191SU 802.11n WLAN Adapter
    Bus 001 Device 008: ID 046d:c315 Logitech, Inc. Classic Keyboard 200
    Bus 001 Device 007: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
    Bus 001 Device 006: ID 0480:0200 Toshiba America Info. Systems, Inc. 
    Bus 001 Device 004: ID 0c45:6340 Microdia 
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 004: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller
    Bus 002 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
    Bus 002 Device 002: ID 0c45:7603 Microdia 
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    

    Para lsusb -t , el controlador que se utiliza es usbhid .

  • for i in $(ls /sys/module/usbhid/parameters/); do echo -ne "$it"; more /sys/module/usbhid/parameters/$i; done es:

    ignoreled   0
    mousepoll   0
    quirks  (null),(null),(null),(null)
    
  • No creo que necesites esto ya que dije que es usbhid , pero aquí está todo de todos modos.

    for i in $(ls /sys/module/hid/parameters/); do echo -ne "$it"; more /sys/module/hid/parameters/$i; done salida.

    depuración 0
    ignore_special_drivers 0

  • modinfo usbhid La salida es:

    filename:       /lib/modules/3.18.3-031803-generic/kernel/drivers/hid/usbhid/usbhid.ko
    license:        GPL
    description:    USB HID core driver
    author:         Jiri Kosina
    author:         Vojtech Pavlik
    author:         Andreas Gal
    srcversion:     A395FA22EA2729BAC1557C9
    alias:          usb:v*p*d*dc*dsc*dp*ic03isc*ip*in*
    depends:        hid
    intree:         Y
    vermagic:       3.18.3-031803-generic SMP mod_unload modversions 
    signer:         Magrathea: Glacier signing key
    sig_key:        29:DB:FD:FC:5A:CC:82:3C:C5:2C:39:4C:C1:C7:4C:01:C3:BE:BF:78
    sig_hashalgo:   sha512
    parm:           mousepoll:Polling interval of mice (uint)
    parm:           ignoreled:Autosuspend with active leds (uint)
    parm:           quirks:Add/modify USB HID quirks by specifying  quirks=vendorID:productID:quirks where vendorID, productID, and quirks are all in 0x-prefixed hex (array of charp)
    
  • cat /sys/kernel/debug/usb/usbmon/2u > /tmp/usb.mon.out me dice que no se encontró a pesar de que cambié 2 a mi identificación de autobús. ¿Qué estoy haciendo mal aquí? Aclare si puede por favor, un poco confundido allí. Intenté poner 2 , 02 y 002 . La salida de
    sudo ls /sys/kernel/debug/usb/usbmon/ es
    0s 0u 1s 1t 1u 2s 2t 2u

Respuesta aceptada:

Mi teclado es un Perixx P1800. Tiene la misma identificación lsusb (0c45:7603 Microdia)
Aparentemente, también usa la misma placa que el teclado azio L70.

Relacionado:Linux:¿teclas de reasignación duras del teclado?

El controlador de Linux para el teclado fue hecho a mano y está disponible en esta dirección.

En Debian, me funciona muy bien (después de update-initramfs ) a excepción de una sola tecla cerca de Enter (* en el teclado Azerty, el * del teclado funciona bien).


Ubuntu
  1. ¿Cómo buscar claves o valores en Dconf?

  2. ¿Atajo de teclado/comando para abrir una nueva ventana de Nautilus y levantarla?

  3. ¿Atajos de teclado/ratón de Gnome 3 Shell?

  4. ¿Cambiar diseños de teclado con I3?

  5. ¿Atajos de teclado globales rotos en 14.04?

Creación de certificados y claves para su servidor OpenVPN

¿Cómo habilitar la tecla Alt Gr como Alt R para Emacs en Ubuntu 16.04?

¿Cómo ocultar el menú de Grub y hacer que las teclas Shift o Esc muestren el menú de Grub oculto en el momento del arranque?

Hoja de referencia gráfica de Firefox para atajos de teclado

Reasignar las teclas Win, Ctrl y Alt en Linux

¿Cuál es la razón por la que rmdir(1) y rm(1) coexisten?