Настройка мультимедийнык клавиш на ноутбуках Acer с установленной ОС Линукс.

Введение

Итак, Вы установили Линукс на свой Acer или же купили его с уже предустановленной *nix операционной системой. Как показывает практика, в большинстве современных дистрибутивов почти всё оборудование у Вас заработает сразу

Одна из вещей которую точно придётся доработать это асеровские мультимедийные клавиши: колесе громкости, почта, браузер, кнопки ArcadeDeluxe, Emprovering и другие(сенсорной панели у меня нет, поэтому о её работоспособности “из коробки” ничего сказать не могу). В этой статье я опишу возможность настройки этих клавиш в KDE 4.2 с помощью xbindkeys.

Для начала небольшое отступление. В Линуксе существует несколько способов повесить на клавиши функции или запуск программ, и первой программой к которой я обратился была xmodmap(т.к. она по-умолчанию включена в мой дистрибутив). Потратив целый вечер на настройку, я смог добиться работы только колеса громкости, остальные переставали работать после первого перезапуска иксов, затрудняюсь сказать с чем это связано, возможно с проблемной работой khotkeys в KDE 4.2 (xmodmap работает в связке с khotkeys).

1. Определение кодов клавиш.

Для начала нам надо узнать сканкоды необходимых нам клавиш для этого запускаем xbindkeys с ключом -k и жмём кнопку, код которой нужно определить, вот мой вывод команды для кнопки “браузер”:

#xbindkeys -k

Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"NoCommand"


m:0x0 + c:178

NoSymbol

[2]+ Done xbindkeys


Код который нам необходим я выделил красным цветом. Эту процедуру следует повторить с каждой клавишей, которую Вы хотите настроить, сканкоды советую записывать. Может случиться так, что xbindkeys никак не отреагирует на клавишу, это значит кнопке не присвоен keycode, у меня таковой оказалась Acer Arkade Deluxe, в таком случае нужно смотреть вывод команды dmesg

Нас интересуют примерно такие строки:

atkbd.c: Unknown key pressed (translated set 2, code 0x92 on isa0060/serio0).
atkbd.c: Use 'setkeycodes
e012 ' to make it known.
atkbd.c: Unknown key released (translated set 2, code 0x92 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e012 ' to make it known.


Нужное нам значение я выделил красным. Теперь нужно присвоить keycode нашей клавише. Для начала придётся найти свободный keycode. Для этого выходим из графического режима, нажав ctrl+alt+F2 (чтобы вернуться назад в граф. режим надо будет нажать alt+F7), логинимся и выполняем команду:

getkeycodes

Вот её примерный вывод:

Plain scancodes xx (hex) versus keycodes (dec)
for 1-83 (0x01-0x53) scancode equals keycode

0x50: 80 81 82 83 99 0 86 87
0x58: 88 117 0 0 95 183 184 185
0x60: 0 0 0 0 0 0 0 0
0x68: 0 0 0 0 0 0 0 0
0x70: 93 0 0 89 0 0 85 91
0x78: 90 92 0 94 0 124 121 0

Escaped scancodes e0 xx (hex)

e0 00: 0 0 0 0 0 0 0 0
e0 08: 0 0 0 0 0 0 0 0
e0 10: 165 0 0 0 0 0 0 0
e0 18: 0 163 0 0 96 97 0 0
e0 20: 113 140 164 0 166 138 141 236
e0 28: 0 227 255 0 0 0 114 0
e0 30: 115 0 172 435 434 98 255 99
e0 38: 100 0 0 0 0 0 0 0
e0 40: 0 0 0 0 0 119 119 102
e0 48: 103 104 0 105 112 106 118 107
e0 50: 108 109 110 111 237 238 238 237
e0 58: 237 225 0 125 126 127 116 142
e0 60: 0 0 0 143 0 217 156 173
e0 68: 128 159 158 157 155 226 225 224
e0 70: 0 192 192 149 148 425 0 0
e0 78: 464 193 0 0 0 0 0 0


Ищем код, которого ещё не используется(другими словами его просто нет в списке) и запоминаем. Или же поиск можно немного автоматизировать, в том же консольном режиме вводим
getkeycodes | grep [keycode который хотим присвоить]

Если поиск ничего не вывел, значит этот keycode свободен и его можно использовать под нашу клавишу. Для того чтобы присвоить кнопке значение keycode нужно добавить строку

setkeycodes e012 161

в скрипт /etc/init.d/boot.local (для дистрибутива OpenSuse, в других дистрах это может быть скрипт /etc/rc.d/rc.local или /etc/conf.d/local.start), где
e012 – код добытый нами из вывода dmesg
161 – собсбвенно keycode который мы присваем нашей клавише.

После этого лучше перезагрузиться. После перезагрузки наша клавиша должна нормально определяться через xbindkeys -k

2. Настраиваем кнопки под наши нужды.

Вся настройка xbindkeys осуществляется через файл .xbindkeysrc, находящийся в вашей домашней директории. Привожу кусок своего конфига с настройкой мультимедийных клавиш:

"firefox" #запустить Firefox
m:0x0 + c:178 #сканкод кнопки “Браузер”
"kmail" #запустить kmail
m:0x2000 + c:236 #сканкод клавиши “Почта”
"konqueror" #запустить файловый менеджер konqueror
m:0x0 + c:159 #сканкод клавиши Emprovering
"gmplayer" #запустить Mplayer
m:0x0 + c:204 #сканкод клавиши Acer Arcade
"amixer sset Master 5+" #увеличить звук на 5 делений
m:0x0 + c:174 #сканкод колеса громкости вверх
"amixer sset Master 5-" #уменьшить звук на 5 делений
m:0x0 + c:176 #сканкод колеса громкости вниз



Как Вы, я думаю, заметили в кавычках можно указать любую команду Линукс доступную вашему пользователю, а ниже сканкод кнопки на которую Вы хотите “повесить” исполнение этой команды.

3. Добавляем xbindkeys в автозагрузку.

Для того чтобы всё работало после каждого входа в иксы нужно добавить xbindkeys в автозагрузку. Опять таки способов множество, лично я просто добавил строку

xbindkeys & в файл .xinitrc, он должен находиться в Вашей домашней директории, если его там нет, то советую скопировать:

cp /etc/X11/xinit/xinitrc ~/.xinitrc (актуально для OpenSuse, в других дистрибутивах придётся воспользоваться поиском).

Вот и всё. Естественно этим способом можно настроить любую кнопку на клавиатуре, а не только описаные в статье.

Примечание: При настройке колеса громкости через xmodmap во время его использования появляется симпатичный индикатор, в xbindkeys индикатора нет, просто меняется громкость, так что тем кто хочет красивости советую колесо настраивать отдельно через xmodmap. Если возникнут вопросы как это сделать спрашивайте в ветке форума или в личку

Домашняя страница xbindkeys - xbindkeys

Обсуждение материала - Установка и настройка Linux на ноутбуках Acer


FAQ → Похожие статьи:
#1 от 11 мая 2009 22:54 в
sdwig Группа: Редактор
Комментариев: 11
Спасибо Fuzzyl за идею для статьи smile
#2 от 11 мая 2009 23:01 в
FuzzyL Группа: Администратор
Комментариев: 438
Статья отличная. Я чуть подправил форматирование fellow Очень хотелось бы увидеть похожий материал и для Windows winked
#3 от 11 мая 2009 23:23 в
sdwig Группа: Редактор
Комментариев: 11
Ну это уже не ко мне smile
#4 от 13 мая 2009 21:21 в
WilD Группа: Посетитель
Комментариев: 1
Огромное спасибо
помогло
#5 от 17 мая 2009 23:03 в
Nikolai Группа: Посетитель
Комментариев: 11
Респек автору
#6 от 14 октября 2009 23:45 в
LLlyPuK.ua Группа: Посетитель
Комментариев: 2
Я мышку так настраивал, а клавиатура сразу подхватилась на debian squeeze. Оставалось только назначить кнопки в соответсвующих программах или в Параметрах системы / Действия.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Новые статьи Установка Windows 7
FAQ по ноутбукам
Решение проблемы с подтормаживаниями ноутбука
Установка Windows XP
Ускорение загрузки Windows
Решение проблемы с внезапными перезагрузками Acer Aspire 7750G
Разблокирование режима 802.11n на адаптерах Atheros
Чистка системы охлаждения ноутбука и замена термопасты на примере Acer Aspire 7738G
Воспроизведение HD-видео на слабых нетбуках и ноутбуках
Создание охлаждающей подставки для ноутбука
Установка второго жесткого диска в ноутбук
Руководство по разборке Acer Aspire One 721
Замена памяти и жесткого диска в нетбуке
Как сделать из старого ноутбука планшет
Восстановление работоспособности ноутбука с помощью прогрева чипов
Обзор ноутбука Acer Aspire Timeline 4410
Первый обзор ноутбука Acer Aspire 7750G
Обзор коммуникатора Acer Liquid MT Metal
Обзор нетбука Packard Bell dot SE
Разгон видеокарты ноутбука
Разгон процессора ноутбука или нетбука
Интеграция SATA драйверов в дистрибутив Windows XP c помощью MSST Integrator
Модификация системы охлаждения в Acer Aspire 5920g
BIOS. Вопросы по прошивке и восстановлению BIOS
Компьютерные сети. Балансировка интернет-трафика между приложениями