Якщо не допомогло

Якщо у вашому розпорядженні все-таки виявилася клавіатура, додаткові клавіші якої відмовляються працювати, це ще не привід засмучуватися Потрібну клавішу можна налаштувати самостійно Причому особливих труднощів це не представляє

ПРИМІТКА

Якщо матеріал здасться вам складним, можете пропустити цю частину і повернутися при необхідності

Ядро і Х-сервер оперують скан-кодами, які зчитуються при натисканні клавіш, тобто, по суті, їм все одно, що на них написано Причому Х-сервер спочатку зчитує таблицю кодів клавіш ядра, а потім код клавіші привязується до власної таблиці кодів Тому в Linux необхідно окремо налаштовувати реакцію на натиснення кнопок в консолі (на емуляторі) і в X Window Щоб дізнатися код клавіші, слід використовувати утиліту xev, що входить до складу Х-сервера Запускаємо її у вікні терміналу, зявиться вікно Event Tester, потім послідовно натискаємо клавіші, запамятовуючи видається код (рис 324):

$ xev

KeyRelease event, serial 31, synthetic NO, window 0x3e00001, root 0x67, subw 0x0, time 27 9734 67 6,  (311 , 61 1 ),

root:(1104,687),

state 0x2000, keycode 236 (keysym 0xl008ffl9,  XF86Mail), same_screen YES,

XLookupString gives 0 bytes: XFilterEvent returns: False

І так далі

Інформації буде видано багато, так як буде відслідковуватися кожен рух миші при проході над вікном Event Tester Клавішу описує блок KeyRelease, зокрема значення keycode якраз і є скан-кодом, який ми хочемо дізнатися У наведеному прикладі натиснута клавіша з кодом 236, якій відповідає код клавіші для Х-сервера, зазначений у keysym, і символьне позначення клавіші дії XF86Mail (за замовчуванням запускає поштовий клієнт)

Рис 324 Отримуємо скан-код клавіші

Можлива ситуація, коли клавіша натискається, але її скан-код не видається Це означає те, що ядро ​​не може знайти скан-код, привязаний самій клавіші, така ситуація сьогодні дуже рідкісна, але всяке в житті буває Якщо таке все-таки відбулося, шукаємо у виведенні команди dmesg наступний рядок:

Use `setkeycodes 0xec &ltkeycode&gt´ to make it known

Система пропонує примусово встановити скан-код клавіші за допомогою команди setkeycodes Значення keycod e вибрати дуже просто, достатньо лише перевести отриману цифру в десяткове число (більшість калькуляторів це вміють) і додати число 128 У нашому прикладі 0хес = 236, тобто отримуємо сканкод 364 Список задіяних і незадіяних скан-кодів можна переглянути, запустивши в консолі утиліту getkeycodes або dumpkeys Якщо висновок команди

$ Getkeycodes | grep <код клавіші>

нічого не дав, значить, цей код можна сміливо використовувати

У консолі програма xev не працює, щоб дізнатися скан-код, що видається ядром, слід використовувати утиліти showkey або getkeycodes:

$ showkey

натисніть будь-яку клавішу (програма завершиться через 10 сек після останнього натискання) ..

0хе0 0x6с 0хе0 0хес

Перші дві цифри відповідають самій клавіші, другі – стану, коли вона відпущена

Джерело: Яремчук С А Linux Mint на 100% – СПб: Питер, 2011 – 240 е: ил – (Серія «На 100%»)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*