Страница 1 из 1
Обработка клавиатуры в консоли
Добавлено: 29 авг 2004, 00:26
Captain Flint
Уважаемые господа!
У меня клава с тремя дополнительными кнопками ("засыпание", "пробуждение", "выключение"). Как их заставить работать по назначению? Или, что удобнее, как в ответ на нажатие нужной клавиши выполнить свои действия? У меня Debian, иксами не пользуюсь.
Добавлено: 29 авг 2004, 04:59
tungus
Можно сделать так
Определить сканкоды с помощью с помощью showkey из console-tools.
У меня например:
#showkey -s
0xe0 0x63
0xe0 0xe3
0xe0 0x5f
0xe0 0xdf
0xe0 0x5e
0xe0 0xde
Сответственно на три кнопки управления питанием приходится 6 сканкодов -
один на нажатие, один на отпускание.
Далее открывается keymap ( у меня /lib/kbd/keymaps/ru.kmap.gz и смотрятся свободные
кейкоды. Например:
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 =
keycode 126 =AltGr
keycode 127 =AltGr_Lock
Т. е. свободные кейкоды у меня например 122, 123, 124. Далее надо установить
к сканкодам соответственные кейкоды, например я в /etc/init.d/keytable добавил:
/usr/bin/setkeycodes e05e 124
/usr/bin/setkeycodes e05f 123
/usr/bin/setkeycodes e063 122
Далее внимательно читается man inittab - секции ctrlaltdel и kbrequest. Потом
keymap можно изменить на:
keycode 122 = Boot
keycode 123 = Boot
keycode 124 = KeyboardSignal
А в /etc/inittab добавить строку ( у меня ядро с apm):
pf::kbrequest:/usr/bin/apm -S
Далее
/sbin/telinit -q
/etc/init.d/keytable restart
В этой конфигурации фактически две кнопки, а третья повторяет одну из первых двух.
По-моему, назначить все три кнопки на разные действия нельзя, если не патчить ядро и
init.
Добавлено: 29 авг 2004, 10:18
Llama
Captain Flint, для начала научить комп засыпать и просыпаться. Затем см. acpid - он как раз должен обрабатывать эти кнопки.
Добавлено: 29 авг 2004, 15:38
tungus
> Затем см. acpid - он как раз должен обрабатывать эти кнопки.
acpid для обработки кнопок на блоке питания, а не клавиатуре
Добавлено: 29 авг 2004, 22:03
Llama
tungus, он обрабатывает по-моему ACPI-события, а не коды клавиш - за соответсвие одного другому отвечает ядро или бивис - что точно - не скажу.
Добавлено: 29 авг 2004, 23:22
tungus
> tungus, он обрабатывает по-моему ACPI-события, а не коды клавиш.
Ты прав, но на десктопе из полезного через acpid можно прикрутить только кнопку на блоке питания. На лаптопе по-моему ещё можно прикрутить что-нибудь типа делать suspend при закрытии крышки.
Но нажатие кнопок на клавиатуре не относится к acpi событиям.
Добавлено: 29 авг 2004, 23:44
Captain Flint
Огромное спасибо за детальную информацию. Буду разбираться.