GNU/Linux >> Znalost Linux >  >> Ubuntu

Klávesy Ctrl a Alt jsou z nějakého důvodu namapovány na Shift?

Nainstaloval jsem Ubuntu 14.04 a miluji ho. Když jsem však hrál hru s názvem Garry’s Mod, všiml jsem si, že můj CTRL a ALT klávesy na mé drátové klávesnici byly obě detekovány jako Shift . Podíval jsem se na tabulku rozložení klávesnice a potvrdil jsem to. Také jsem si všiml, že můj Windows nebo Super Klávesa Pravý CTRL a Pravý ALT všechny jsou mapovány na Levý Shift .

Všechny fungují perfektně, jen jsou špatně detekovány. Vybral jsem rozložení Spojené státy, které má být moje klávesnice a je ve Windows. Může někdo pomoci? Moje klávesnice je detekována jako SONiX USB Keyboard (skutečná značka klávesnice je Avazz).

  • moje xev -event keyboard výstup je pro každý jednotlivý:

    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
    

    Jediné, co se mění, je čas.

  • sudo evtest příkaz zobrazí všechny modifikační klávesy jako

    type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1v type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
    
  • pro lsusb , ovladač, který používá, je usbhid řidič.

    lsusb ukazuje něco matoucího; stejný port jako moje klávesnice je zobrazen v jiných příkazech se zobrazuje v lsusb jako ovladač mé bezdrátové myši Logitech, Inc. Unifying Receiver . To může být problém, ale pravděpodobně se prostě mýlím v jakém portu je. Z tohoto důvodu si nejsem jistý, jaký ovladač je co. Všechny je zveřejním, i když to může být nepříjemné. Mám samostatnou klávesnici zapojenou vedle mé hlavní, abych mohl používat CTRL , Skvělé nebo ALT mimochodem, nenechte se zmást ovladačem Logitech Classic Keyboard Driver.

    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
    

    Pro lsusb -t , použitý ovladač je usbhid .

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

    ignoreled   0
    mousepoll   0
    quirks  (null),(null),(null),(null)
    
  • Myslím, že to nepotřebujete, protože jsem řekl, že je to usbhid , ale stejně je to tady.

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

    ladění 0
    ignore_special_drivers 0

  • modinfo usbhid výstup je:

    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 mi říká, že jsem nenalezen, i když jsem změnil 2 na moje ID autobusu. co tady dělám špatně? Upřesněte, pokud můžete, prosím, jsem tam trochu zmatený. Zkusil jsem vložit 2 , 02 a 002 . Výstup
    sudo ls /sys/kernel/debug/usb/usbmon/ je
    0s 0u 1s 1t 1u 2s 2t 2u

Přijatá odpověď:

Moje klávesnice je Perixx P1800. Je to stejná identifikace lsusb (0c45:7603 Microdia)
Zjevně používá stejnou desku také jako klávesnice azio L70.

Související:Linux – klávesy hard remap key?

Linuxový ovladač pro klávesnici byl vyroben ručně a je k dispozici na této adrese.

Na Debianu mi to funguje velmi dobře (po update-initramfs ) kromě jediné klávesy blízko Enteru (* na klávesnici Azerty, * na klávesnici funguje dobře).


Ubuntu
  1. Proč se pro některé aplikace doporučuje vytvořit skupinu a uživatele?

  2. Klávesová zkratka/příkaz pro otevření nového okna Nautilus a jeho zvednutí?

  3. Jak přemapovat klíče pod Linuxem pouze pro konkrétní klávesnici

  1. Jak nainstalovat ovladač pro Rtl88x2bu?

  2. Klávesové zkratky pro Gnome 3 Shell?

  3. Přepnout rozložení klávesnice pomocí I3?

  1. Jak hledat klíče nebo hodnoty v Dconf?

  2. Rozbité globální klávesové zkratky ve 14.04?

  3. Samostatné klávesové zkratky pro přepínání mezi rozložením klávesnice?