You never can tell with bees (dil) wrote in ru_linux,
You never can tell with bees
dil
ru_linux

Как переопределить клавиатурные события?

Есть у меня китайский ИК-пульт с USB-приемником. Приёмник делает вид, что он мышь и клавиатура
Sep 16 16:22:45 plex4 kernel: [612580.176030] usb 3-2: new low speed USB device using uhci_hcd and address 3
Sep 16 16:22:45 plex4 kernel: [612580.410133] usb 3-2: configuration #1 chosen from 1 choice
Sep 16 16:22:45 plex4 kernel: [612580.429288] input: Cy se P-05R UIR_V2b as /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.0/input/input9
Sep 16 16:22:45 plex4 kernel: [612580.429367] generic-usb 0003:0755:2626.0005: input,hidraw2: USB HID v1.10 Keyboard [Cy se P-05R UIR_V2b] on usb-0000:00:1a.0-2/input0
Sep 16 16:22:45 plex4 kernel: [612580.455456] input: Cy se P-05R UIR_V2b as /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1/input/input10
Sep 16 16:22:45 plex4 kernel: [612580.455561] generic-usb 0003:0755:2626.0006: input,hidraw3: USB HID v1.10 Mouse [Cy se P-05R UIR_V2b] on usb-0000:00:1a.0-2/input1


Но есть проблема. Пульт заточен для работы с Microsoft Media Player'ом. С мышью всё нормально, курсор двигается, кнопки нажимаются, некоторые кнопки (volume up/down, например) тоже работают, а вот остальные - нет.

Кнопка play/pause генерирует вот что (по мнению xev):
FocusOut event, serial 38, synthetic NO, window 0x4c00001,
mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 38, synthetic NO, window 0x4c00001,
mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 38, synthetic NO, window 0x0,
keys: 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 0


а Close вот что:MappingNotify event, serial 36, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 36, synthetic NO, window 0x4c00001,
root 0xa6, subw 0x0, time 613395728, (-363,611), root:(696,662),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

PropertyNotify event, serial 37, synthetic NO, window 0x4c00001,
atom 0x192 (XKLAVIER_STATE), time 613395731, state PropertyNewValue

PropertyNotify event, serial 37, synthetic NO, window 0x4c00001,
atom 0x192 (XKLAVIER_STATE), time 613395731, state PropertyNewValue

KeyRelease event, serial 37, synthetic NO, window 0x4c00001,
root 0xa6, subw 0x0, time 613395888, (-363,611), root:(696,662),
state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False


Вопрос: как бы эти события превратить во что-нибудь, которое будет понимать vlc?
Либо в нажатия клавиш, либо во внутриvlc'шные события.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments