특정 장치의 키 코드 변경

특정 장치의 키 코드 변경

방금 Logitech Spotlight Presenter를 구입했는데 여기에는 내 프레젠테이션(revealjs)과 호환되지 않는 키 코드가 포함된 두 개의 버튼이 있습니다. Next그리고 sum Previous으로 바인딩되어 있고 sum 으로 변경하고 싶습니다 . 저는 Ubuntu 18.04와 ArchLinux를 사용하고 있습니다.RightLeftnp

장치 매개변수:

$ lsusb -d 046d:c53e -v

Bus 001 Device 012: ID 046d:c53e Logitech, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        32
  idVendor           0x046d Logitech, Inc.
  idProduct          0xc53e
  bcdDevice           41.00
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           84
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          4
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               98mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      59
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               8
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     148
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               2
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      98
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               2

현재 디스플레이 키는 다음과 같습니다.

# showkeys --scancodes
0xe0 0x4d 0xe0 0xcd
0xe0 0x4b 0xe0 0xcb

# showkeys --keycodes
keycode 106 release
keycode 105 release

내 키보드를 기반으로 한 키는 다음과 같습니다.

# showkeys --scancodes
0x31 0xb1
p0x19 0x99

# showkeys --keycodes
keycode  49 release
keycode  25 release

나는 다음을 추론했습니다 /lib/udev/hwdb.d/61-logitech-spotlight-presenter-revealjs.hwdb.

# This file has been created to improve Logitech Spotlight Presenter in revealjs
evdev:input:b*v046dpc53e*
 KEYBOARD_KEY_69=p
 KEYBOARD_KEY_6a=n

그런 다음 다음을 시도했습니다.

$ sudo systemd-hwdb update
$ udevadm trigger
$ sudo udevadm control --reload-rules && udevadm trigger

하지만 내 리모컨은 여전히 Right​​/ 을 실행합니다 Left.

답변1

오픈 소스 소프트웨어영사기Logitech Spotlight 버튼을 매핑할 수 있으며 사용자 정의 가능한 데스크탑 지점도 있습니다.

프로젝트 홈페이지:https://github.com/jahnf/Projecteur

아치 패키지도 사용 가능합니다: https://aur.archlinux.org/packages/projecteur

Ubuntu의 경우 패키지는 프로젝트의 github 페이지와 Ubuntu 저장소 20.10 이상에서 찾을 수 있습니다.

면책조항: 나는 다음의 저자입니다영사기

관련 정보