Налаштування мультимедийнык клавіш на ноутбуках 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 Аркада 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

acerfans.ru

Поділитися з друзями:
Відповіді на питання