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

setkeycode

Добавлено: 17 авг 2006, 18:31
Silos
Есть: FC5, мультимедийная клавиатура Genius.
Проблема: на клавиатуре есть три кнопки, которые не "ловяться" с помощью xev. После того, как были нажаты по разу, dmesg "показывает" это:

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

atkbd.c: Use 'setkeycodes e023 <keycode>' to make it known.
atkbd.c: Unknown key released (translated set 2, code 0xa3 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e023 <keycode>' to make it known.
atkbd.c: Unknown key pressed (translated set 2, code 0x94 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e014 <keycode>' to make it known.
atkbd.c: Unknown key released (translated set 2, code 0x94 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e014 <keycode>' to make it known.
atkbd.c: Unknown key pressed (translated set 2, code 0x93 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e013 <keycode>' to make it known.
atkbd.c: Unknown key released (translated set 2, code 0x93 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e013 <keycode>' to make it known.
/*Думаю эти кнопки можно назвать XF86WheelButton, XF86Excel, XF86Word соответственно*/

Далее делаю:

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

# setkeycodes e023 229
# setkeycodes e014 177
# setkeycodes e013 155
Добавляю в свой .Xmodmap следующего содержания:

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

keycode 174 = XF86AudioLowerVolume
keycode 160 = XF86AudioMute
keycode 176 = XF86AudioRaiseVolume
keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 237 = XF86AudioMedia
keycode 236 = XF86Mail
keycode 232 = XF86Stop
keycode 231 = XF86Refresh
keycode 234 = XF86Back
keycode 178 = XF86WWW
keycode 233 = XF86Forward
keycode 229 = XF86Search
keycode 230 = XF86Favorites
keycode 223 = XF86Sleep
keycode 161 = XF86Calculator
keycode 235 = XF86MyComputer
вот это:

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

keycode 229 = XF86WheelButton
keycode 177 = XF86Excel
keycode 155 = XF86Word
ctrl+alt+backspace
Вуаля! Запускаю xev|grep keycode, нажимаю на XF86WheelButton, XF86Excel, XF86Word по разу и получаю:

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

    state 0x10, keycode 216 (keysym 0x0, NoSymbol), same_screen YES,
    state 0x10, keycode 216 (keysym 0x0, NoSymbol), same_screen YES,
    state 0x10, keycode 220 (keysym 0x0, NoSymbol), same_screen YES,
    state 0x10, keycode 220 (keysym 0x0, NoSymbol), same_screen YES,
    state 0x10, keycode 236 (keysym 0x1008ff19, XF86Mail), same_screen YES,
    state 0x10, keycode 236 (keysym 0x1008ff19, XF86Mail), same_screen YES,
Что я сделал неправильно?

Добавлено: 17 авг 2006, 21:17
mend0za
а где гарантии того, что этот .Xmodmap обрабатывается при старте сессии?

Добавлено: 17 авг 2006, 22:07
Silos
Гарантии :)

/etc/rc5.d/S99local

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

touch /var/lock/subsys/local
echo 1024 > /proc/sys/dev/rtc/max-user-freq
/usr/bin/setkeycodes e023 216
/usr/bin/setkeycodes e014 220
/usr/bin/setkeycodes e013 221
~/.xsession

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

/usr/X11R6/bin/xmodmap $HOME/.Xmodmap