Покоряй и властвуй: Советы по работе в терминале. Часть 5 Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
fullcircle:29:советы_ч_5 [2010/06/07 17:20]
создано
fullcircle:29:советы_ч_5 [2011/02/05 18:56] (текущий)
[Покоряй и Властвуй: Советы по работе в терминале. Часть 5]
Строка 1: Строка 1:
-====== Покоряй и Властвуй:​ Советы по работе в терминале. Часть ​4======+====== Покоряй и властвуй:​ Советы по работе в терминале. Часть ​5======
  
 <style right> <style right>
Строка 10: Строка 10:
   - [[..:​28:​советы_ч_4|Советы по работе в терминале - Часть 4]]   - [[..:​28:​советы_ч_4|Советы по работе в терминале - Часть 4]]
   - [[..:​29:​советы_ч_5|Советы по работе в терминале - Часть 5]]   - [[..:​29:​советы_ч_5|Советы по работе в терминале - Часть 5]]
 +  - [[..:​30:​советы_ч_6|Советы по работе в терминале - Часть 6]]
 +  - [[..:​31:​советы_ч_7|Советы по работе в терминале - Часть 7]]
 +  - [[..:​32:​советы_ч_8|Советы по работе в терминале - Часть 8]]
 +  - [[..:​33:​советы_ч_9|Советы по работе в терминале - Часть 9]]
 +  - [[..:​34:​советы_ч_10|Советы по работе в терминале - Часть 10]]
 +  - [[..:​35:​советы_ч_11|Советы по работе в терминале - Часть 11]]
 +  - [[..:​36:​советы_ч_12|Советы по работе в терминале - Часть 12]]
 +
 +Вам когда-нибудь доводилось нажимать дополнительную клавишу на клавиатуре ноутбука и обнаруживать,​ что она ничего не делает,​ а программа обработки комби-наций клавиш вообще её не распознаёт?​ Я столкнулся с такой проблемой,​ когда установил Openbox на свой нетбук. Поэтому я решил показать вам, как назначать клавишам функции,​ даже если клавиши не распознаны.
 +
 +=====Шаг первый:​ распознавание клавиш=====
 +
 +Сперва мы должы выяснить,​ распознана ли клавиша ядром. Откройте терминал и выпол-ните команду
 +
 +<​code>​xev | grep -A2 --line-buffered '​^KeyRelease'​ | 
 +sed -n '/​keycode /​s/​^.*keycode \([0-9]*\).* ​
 +(.*, \(.*\)).*$/​\1 \2/​p'</​code>​
 +
 +Эта команда должна вывести коды и соответству-ющие им названия клавиш (XF86AudioMute,​ XF86MonBrightnessDown,​ a, b и так далее). Если после кода вывелось «NoSymbol»,​ это означает,​ что клавише ещё не назначен код, тогда приступайте сразу ко второму шагу. Если ни одна клавиша ничего не возвратила,​ следует попробовать showkey.
 +
 +Переключитесь на tty0, нажав ctrl + alt + F1, и выполните вход, используя своё имя пользователя. Сделав это, выполните команду:​
 +
 +<​code>​showkey</​code>​
 +
 +Программа вернёт коды нажатых клавиш и автоматически завершится через 10 секунд после нажатия последней клавиши. Когда эта команда запущена,​ нажмите клавиши,​ которые хотите протестировать,​ и запомните коды, которые она возвратит. Если код не вывелся,​ необходимо проверить,​ есть ли у этой клавиши код опроса.
 +
 +Проделать это можно, нажав тестируемую клавишу. После этого проверьте dmesg командой
 +
 +<​code>​dmesg|tail -5</​code>​
 +
 +Если на выходе dmesg появилось что-то подобное:​
 +
 +<​code>​atkbd.c:​ Unknown key pressed (translated set 2, code 0xf1 on isa0060/​serio0).
 +
 +atkbd.c: Use '​setkeycodes e071 <​keycode>'​ to make it known.</​code>​
 +
 +то вы можете назначить код опроса коду клавиши. Делается это с помощью HAL или setkeycodes (инструмент ядра), как показано в выводе dmesg. В разделе «Читайте также» в конце статьи предлагается ссылка на страницу,​ описыва-ющую процесс назначения клавиш при помощи HAL. Я не буду сейчас вдаваться в детали,​ поскольку знаю, что в этом нет необходимости из-за редкости такой проблемы.
 +
 +=====Шаг второй:​ назначение кодов клавиш=====
 +
 +Я расскажу о назначении кодов к клавишам в Xorg, поскольку большинство мультимедийных клавиш не нужны в консоли tty0. Для начала создайте файл .Xmodmap либо командой touch, либо редактированием и сохранением в gedit. Строки в файле должны быть в таком формате:​
 +
 +<​code>​keycode <​Xkeycode>​ = keysymbol</​code>​
 +
 +Вот несколько примеров:​
 +
 +<​code>​keycode 153 = XF86MonBrightnessDown
 +
 +keycode 154 = XF8MonBrightnessUp</​code>​
 +
 +=====Шаг третий:​ тестирование кодов клавиш=====
 +
 +Выполните команду
 +
 +<​code>​xmodmap ~/​.Xmodmap</​code>​
 +
 +Теперь вы сможете назначать клавишам любые функции,​ какие хотите. Если нет, проверьте ещё раз коды и названия клавиш на предмет опечаток. Полный список символов находится здесь:
 +
 +<​code>/​usr/​include/​X11/​keysymdef.h</​code>​
 +
 +Для дополнительных клавиш:​
 +
 +<​code>/​usr/​include/​X11/​XKeySymDB</​code>​
 +
 +Как только вы убедились,​ что клавиши работают,​ приступайте к следующему шагу.
 +
 +=====Шаг четвёртый:​ закрепляем эффект=====
 +
 +Чтобы изменения оставались всегда,​ вам придётся запускать команду xmodmap каждый раз после входа в систему. Я бы рекомендовал добавить её в ваш .xprofile.
 +
 +xbindkeys — это альтер-натива xmodmap, причём довольно эффективная. У неё есть GUI, который называется xbindkeys_config,​ но я не уверен,​ есть ли он в репозиториях Ubuntu.
 +
 +Читайте также:
 +Хитрости HAL:
 +http://​people.freedesktop.org/​~hughsient/​quirk/​quirk-keymap-index.html