Ключевые слова:linux, hardware, keyboard, x, xmodmap, (найти похожие документы)
From: Роман Богородский <[email protected]>
Newsgroups:
Date: Mon, 28 Feb 2004 14:31:37 +0000 (UTC)
Subject: Настройка дополнительных мультимедийных клавиш на клавиатуре
Оригинал: http://www.nixp.ru/cgi-bin/go.pl?q=articles;a=multikeyboard
Автор: Роман Богородский
E-mail: [[email protected]]
ICQ: 230066
Сначала нужно определить коды мультимедийных клавиш. Для этого из
терминала запускаем xev. При нажатии подобной клавиши на терминале
появится что-нибудь похожее на это:
KeyRelease event, serial 27, synthetic NO, window 0x2200001,
root 0x6a, subw 0x0, time 16723980, (154,94), root:(187,143),
state 0x0, keycode 234 (keysym 0x0, NoSymbol), same_screen YES,
" XLookupString gives 1 bytes: "
Где keycode 234 -- это и есть код клавиши. Аналогичную операцию
проделываем для остальных мультимедийных клавиш. Теперь необходимо
ассоциировать с кодами имена. Полный список имен клавиш в X11 можно
найти в /usr/X11R6/include/X11/XF86keysym.h. Выполняем команду:
xmodmap -e <<keycode CODE = NAME>>
, где CODE -- это код клавиши, а NAME -- наиболее подходящее имя из
/usr/X11R6/include/X11/XF86keysym.h, только без префикса "XK_".
Присвоив имена всем клавишам, опять проверяем с помощью xev. Теперь
должно быть примерно так:
KeyRelease event, serial 27, synthetic NO, window 0x1a00001,
root 0x6a, subw 0x0, time 17897438, (112,108), root:(161,173),
state 0x0, keycode 236 (keysym 0x1008ff19, XF86Mail), same_screen YES,
XLookupString gives 0 bytes: ""
Если все правильно, создаем файл ~/.xmodmaprc и заносим туда команды
xmodmap (то, что мы набирали в кавычках при вызове "xmodmap -e").
Теперь в ~/.xinitrc или в ~/.xsession (в зависимости от того, как вы
запускаете X) добавляем строку "xmodmap .xmodmaprc", причем ее нужно
добавить перед той строкой, которой вы запускаете оконный менеджер.
Это мы сделали для того, чтобы изменения сохранились при перезапуске
X. Теперь можно настраивать свой оконный менеджер для работы с этими
клавишами.
В основном, преимущество данного метода заключается в том, что вам не
надо использовать никаких дополнительных программ и держать запущенным
какой-либо демон. Примеры:
~/.xinitrc
xmodmap ~/.xmodmaprc
fluxbox & wmpid=$!
#
# Skipped
#
gkrellm -w &
~/.xmodmaprc
keycode 234 = XF86AudioPrev
keycode 233 = XF86AudioNext
keycode 232 = XF86AudioPlay
keycode 178 = XF86AudioLowerVolume
keycode 229 = XF86AudioRaiseVolume
keycode 230 = XF86AudioMute
keycode 236 = XF86Mail
keycode 223 = XF86PowerDown
Fluxbox keys file (~/.fluxbox/keys)
None XF86AudioPrev :ExecCommand xmms -r
None XF86AudioNext :ExecCommand xmms -f
None XF86AudioPlay :ExecCommand xmms -t
None XF86AudioLowerVolume :ExecCommand mixer vol -10
None XF86AudioRaiseVolume :ExecCommand mixer vol +10
None XF86AudioMute :ExecCommand mixer vol 0
None XF86Mail :ExecCommand aterm -title mutt -e mutt
None XF86PowerDown :ExecCommand sudo halt -p