Keywords: linux hardware keyboard x xmodmap From: Роман Богородский 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: [bogorodskiy@inbox.ru] 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 <> , где 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