Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   БИБЛИОТЕКА
     Другие статьи этого раздела:
 

    Система
Другие разделы библиотеки:
   БИБЛИОТЕКА
     последние поступления:
 

Hardware
Перевод Serial-Programming-HOWTO
15.05.2006 | San АНДРЕЕВ
Перевод Linux Power Management Support
03.04.2004 | San АНДРЕЕВ
Варианты решения проблем со смещением геометрии монитора.
10.10.2003 | EsTaF
Multimedia
VideoCD для пингвинов
10.10.2003 | Buddha
Смотрим любимые фильмы с помощью MPlayer
23.07.2003 | Alexey Dmitriev
X-сервер
Включаем Bytecode Interpreter в пакете freetype в некоторых дистрибутивах
05.07.2006 | Alexey Dmitriev
НАСТРОЙКА СЕРВЕРА XDMCP ДЛЯ WINDOWS-КЛИЕНТОВ
09.09.2004 | Kotjara
Type1 и truetype шрифты в LaTeX.
03.05.2004 | geekkoo
Разное
Как самому написать концепцию информационной безопасности
22.03.2007 | Crion
Список рекомендуемой литературы
11.09.2006 | San АНДРЕЕВ
The Multi Router Traffic Grapher
02.06.2004 | Crion
Сеть
"Огненная стена" или строим файрвол на базе iptables
15.03.2005 | Alexey Dmitriev
Защищенная почтовая система
08.09.2004 | Crion
Postfix+Cyrus-SASL
18.12.2003 | geekkoo
Система
Написание драйверов под Linux: рекомендации, типичные ошибки и ловушки.
16.01.2007 | Mr.Nobody
Перевод Linux Daemon HOWTO
21.08.2006 | San АНДРЕЕВ
Усыпляем компьютер
11.01.2006 | San АНДРЕЕВ
   БИБЛИОТЕКА Система    
Автор статьи:
Дата: 26.02.2005

Настройка мультимедийной клавиатуры в консоли

История началась тогда, када купил я себе, новую клаву, то есть на ней было аж 3 новых кнопки (Power, Sleep, Wake). Продолжилась тем, что я решил их заюзать. Значит настроить эти кнопочки в иксах труда особого не составило. А вот консоль... Консоль заставила почитать несколько манов :)
Были прочитаны следующие маны:

setkeycodes (8), dumpkeys (1), loadkeys (1), showkey (1), getkeycodes (8), keymaps(5)

Итак, приступим. :)
Важно: Вы спросите почему настройка мультимедийной клавы, да потому что все это применимо и к мультимедийным клавишам.

Шаг первый.
С помощью команды showkey получаем скан коды нащих клавиш.
Я, в ниже проилюстрированном примере, получил скан коды клавиш Wake, Sleep, Power соответственно.

Elvenhome root # showkey -s
режим клавиатуры был XLATE
нажмите на клавишу 'any' (она на системном блоке)...
Программа завершается после 10 секунд 'покоя' (не нажимается ни одна клавиша)
0xe0 0x63 0xe0 0xe3 //Первых две позиции - клавиша нажата, следующих две отпущена.
0xe0 0x5f 0xe0 0xdf //аналочично.
0xe0 0x5e 0xe0 0xde //аналогично.

А теперь попробуйте зпустить ту же программу только с ключиком -k. Не пугайтесь, программа ничего не выдаст, так и должно быть. И так у нас есть скан коды, но что же с ними делать? Как что?

Шаг второй.
Нужно назначить им соответствующие клавишные коды, с помощью команды setkeycodes.
Внимание! Важно: клавишных кодов есть всего 127. Это заложено в ядре. Поэтому, нужно глянуть в файл Вашей текущей раскладки клавиатуры (у меня используется раскладка ms-ru.map, файл которой лежит в /usr/share/keymaps/i386/qwerty/) и посмотреть есть ли там свободные места. Там так же могут быть расписаны все клавиши, но они могут не иметь никакого значения. Так же не пытайтесь ничего записать на нулевую позицию.
Elvenhome root # setkeycodes e063 122
Elvenhome root # setkeycodes e05f 123
Elvenhome root # setkeycodes e05e 124

Я назначил каждой клавише по клавишному коду. Теперь можете запустить, уже извесную Вам, команду showkey -k и посмотреть результат. :) Но и это еще не все.

Шаг третий.
Открываем на редактирование файл вашей текужей раскладки и дописываем в него следующе:
...
keycode 122 = Decr_Console
keycode 123 = Incr_Console
keycode 124 = F13
string F13 = "/sbin/shutdown -h now\n"

Если Вы самостоятельно дописывали строку keycode, может быть случай, что она там уже есть, то старайтесь выровнять ее с вышенаписанной такой же строкой.
Поясню, что я написал. Я повесил на клавишу Wake переключение консолей (на одну назад), а на клавишу Sleep переключение консолей на одну вперед.
Теперь самая изюминка: так как на наших клавах нет клавиш F13, F14 (и так далее), то мы можем использовать эти клавиши как 'переменные' (наверно можно создать и свою 'переменную' но я не стал на этом зацикливаться). Значит я присвоил клавише F13 строчку '/sbin/shutdown -h now\n' (символ "\n" означает перевод строки, а в данном случае заменяет Enter), а потом клавише Power присвоил значение клавиши F13. Не забудьте в конце файла оставить пустую строку.
Теперь надо загрузить нашу раскладку:
Elvenhome root # loadkeys /usr/share/keymaps/i386/qwerty/ru-ms.map.gz

Все, теперь наслаждайтесь своей работой. Если у Вас что-то не получилось, вернитесь к Шагу 1.
Будьте внимательны! Если Вы находитесь, например, в редакторе vi, то при нажатии клавиши Power у Вас в редакторе появится строка:
/sbin/shutdown -h now

Причем курсор переведется на новую строку. То есть чтоб компьютер выключился, надо находиться непостредственно в командной строке. Переключение консолей работает независимо от того, что у Вас запущено, будь то vi или mp3vlaster.

Шаг червертый.
Наслаждаться Вы будете до первой перезагрузки. Как же так скажете вы? А вот так :)
Нужно записать все команды setkeycodes в какой-нибудь загрузочный скрипт, для гентульменов я рекомендую все это дело засунуть в /etc/conf.d/local.start
Удачи и приятного освоения консоли!!!

P.S. © /me
Оригинал на блоге



Все статьи раздела "Система"

©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: