Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
fullcircle:29:советы_ч_5 [2010/06/07 17:20] создано |
fullcircle:29:советы_ч_5 [2010/06/20 17:05] |
||
---|---|---|---|
Строка 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]] | ||
+ | |||
+ | Вам когда-нибудь доводилось нажимать дополнительную клавишу на клавиатуре ноутбука и обнаруживать, что она ничего не делает, а программа обработки комби-наций клавиш вообще её не распознаёт? Я столкнулся с такой проблемой, когда установил 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 | ||