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

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Ответить
Аватара пользователя
serg_sk
Бывший модератор
Сообщения: 2749
Статус: <3 Anime
ОС: Gentoo Linux <3
Контактная информация:

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

Сообщение serg_sk »

История началась тогда, када купил я себе, почти мультимедийную клаву, тоесть 3 мультимедийных кнопки (Power, Sleep, Wake). Продолжилась тем, что я решил их заюзать. Значит настроить эти кнопочки в иксах труда особого не составило. А вот консоль... Консоль заставила почитать несколько манов :)
Итак.. приступим :)
Шаг первый.
С помощью команды 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. Это заложено в ядре. По-этому, нужно глянуть в файл вашей текущей раскладки клавиатуры(у меня он лежит в /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 :new_smile:
Оригинал на блоге, ссылка в подписи :new_smile:
Не ждали?! А я приперся!
Помойка Gentoo'шника
-------
Спасибо сказали:
Ответить