Страница 1 из 1

xmodmap и XF86ScrollUp, XF86ScrollDown

Добавлено: 31 дек 2007, 19:17
shaleny
Мультимедиа-клавиатура. На ней есть скролл. Проблема в том, что вроде бы два разных события (прокрутка вверх и прокрутка вниз) генерируют один и тот же keycode. При прокрутке вверх считается, что клавиша с этим кодом нажата, при прокрутке вниз — отпущена. Соответственно не получается с помощью xmodmap задать символы X86ScrollUp и X86ScrollDown, но так, чтобы они (естественным образом) реагировали на прокрутку этого скролла.
Подскажите пожалуйста, где поискать решение.

Скролл на самом деле не очень-то нужен (или даже вообще не нужен), просто хотелось бы для полноты картины иметь и его нормально работающим.

Добавлено: 01 янв 2008, 07:01
Deltree
У тебя клавиатура (колёсико) подаёт один и тот же код ?

Добавлено: 01 янв 2008, 15:04
shaleny
Да. Вот что выдает xev, когда я прокручиваю скролл вверх:

Код: Выделить всё

KeyPress event, serial 30, synthetic NO, window 0x2400001,
    root 0xa3, subw 0x0, time 892341115, (99,88), root:(578,428),
    state 0x0, keycode 134 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False
Причем xev продолжает выдавать сообщения такого же вида (только с увеличенным time) даже если скролл вверх больше не вращать. И прекращает их выдавать только при прокручивании скролла вниз.

Тогда он выдает выдает такое сообщение:

Код: Выделить всё

KeyRelease event, serial 30, synthetic NO, window 0x2400001,
    root 0xa3, subw 0x0, time 892341126, (99,88), root:(578,428),
    state 0x0, keycode 134 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
Если продолжать вращать скролл вниз, то никаких новых сообщений не появляется.