To apply them on startup (If ~/.xinitrc does not exist):
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
In all cases
$ gedit ~/.xinitrc
Make the first line this:
$ xmodmap ~/.Xmodmap
это не нужно. гном при старте предложит загрузить этот файл.
... и понтов с того? xmodmap кнопки сам не оживляет ("xev" после перезагрузки их опять не видит). Уже ни ... не понимаю. Искал простые разъяснения: как происходить процесс инициализаци клавиатуры при загрузке ОС. Ответ не нашел. Сплошные советы: написать то-то там-то... А зачем? почему? Болезней много, здоровье - одно. Но как узнать о нём? Ведь решение, скорее всего, скорлупы выеденой не стоит... а разьяснений нет.
Попробую по полочкам, хотя сам не спец, но кое-какие идейки имею:
1. Есть два типа кнопок:.те. которые УЖЕ определяются с пом. xev, и те, которые не определяются.
Тем, которые видны с пом. xev, можно сразу назначать keysym'ы (читабельные названия) с пом. xmodmap. Например так:
xmodmap -e "keycode 130 = hpUser"
(но об этом несколько позже, ок?)
Те же, которые с пом. xev сразу не видны -- их нужно посканить сначала с пом. dmesg.
Я делал так:
1. холостой запуск "
sudo dmesg -c" (чтобы "слить" буффер).
2. нажимаю нужную кнопку
3. делаю "
sudo dmesg -c" еще раз -- смотрю что за код сгенерило.
4. нажимаю вторую нужную кнопку
5. делаю "
sudo dmesg -c" еще раз -- смотрю что за код сгенерило.
6. и т.п.
Все найденые с пом. dmesg, коды надо теперь записать в некое подобие "автостарта" (файл:
/etc/init.d/bootmisc.sh ) :
setkeycodes e02c 172 # xev keycode: 130; user
setkeycodes e014 148 # xev keycode: 159; hp
setkeycodes e026 167 # xev keycode: 177; ?
setkeycodes e01f 160 # xev keycode: 163; photo
setkeycodes e016 151 # xev keycode: 201; music
setkeycodes e039 186 # xev keycode: 93; video
...
(все что после # -- камменты. их можно не писать, это для себя, чтобы проще читать)
где, "e02c" -- это то, что выдал dmesg. Второй параметр -- че-нить уникальное (не занятое другими кнопками, проверять можно с пом.
sudo dumpkeycodes, в этом триде уже были рекомендации как удобнее подбирать эти номера).
Все это шамаство с
setkeycodes нужно в приципе лишь для того, чтобы кнопки определялись
xev'ом.
3. Теперь, когда все нужные кнопки определяются
xev'ом, мы пропишем им "Keysym'ы". Это делается с пом. xmodmap.
Мне проще всего было выполнить одну за другой команды типа таких:
xmodmap -e "keycode 130 = hpUser"
xmodmap -e "keycode 159 = hpSystem"
xmodmap -e "keycode 177 = Help"
xmodmap -e "keycode 163 = XF86Pictures"
xmodmap -e "keycode 201 = XF86Music"
xmodmap -e "keycode 93 = XF86Video"
xmodmap -e "keycode 204 = XF86Shop"
xmodmap -e "keycode 200 = XF86LaunchA"
...
С последуюцим: "
xmodmap -pke > ~/.Xmodmap"
Далее, когда есть KeySym'ы -- можно вписыватьих в гномовский реестр, либо как-нить по-другому ассайнить к конкретным действиям.
А вообще -- советую вот этот топик почитать, как я свою клаву настраивал:
https://forum.ubuntu.ru/index.php?topic=10549.msg76750#msg76750