Ця сторінка потребує супровідник
На багатьох клавіатурах є спеціальні клавіші (їх іноді називають гарячими клавішами або мультимедіа клавішами), які зроблені для того, щоб запускати додатки або друкувати спеціальні символи (які не призначено на стандартній національної розкладці). udev (Русский) містить в Сьобу велику базу даних призначень клавіш, що відповідають конкретним клавіатур, тому найчастіше клавіатури працюють з коробки. Якщо у вас дуже нова або дуже рідкісна клавіатура, вам може знадобитися налаштувати розкладку самостійно.
Також ви можете змінити розкладку клавіатури для того, щоб система сприймала клавіші якось інакше, ніж зараз. Існує три рівні ідентифікації клавіші:
- Скан код (scancode) - це нижчий рівень ідентифікації клавіші. Являє собою число, яке клавіатура посилає комп'ютера.
- Код клавіші (keycode) - це наступний рівень ідентифікації клавіші. Кейкод відповідає якоїсь функції.
- Символ клавіші (keysym) - це третій рівень ідентифікації клавіші. Він відповідає за символ. Він може залежати від того, чи натиснута клавіша Shift або була одночасно натиснута якась інша клавіша оцінювання.
Скан кодами призначені коди клавіш. яким в свою чергу призначені символи клавіш. в залежності від розкладки клавіатури. Більшості ваших кнопок вже повинні бути призначені коди клавіш. або, принаймні, скан коди. Клавіші без скан кодів не розпізнано ядром; зазвичай це бувають додаткові на 'ігрових' клавіатурах.
У Xorg деяким символам клавіш (наприклад XF86AudioPlay. XF86AudioRaiseVolume) можна призначити дії (такі як запуск зовнішніх програм). Дивіться Extra keyboard keys in Xorg (Русский) # Присвоєння кодів клавіш символам для додаткової інформації.
У командному режимі деяким символам клавіш (наприклад від F1 до F246) можуть бути призначені певні дії (такі як перемикання на іншу консоль або друк послідовності символів). Дивіться Extra keyboard keys in console для додаткової інформації.
Ідентифікація кодів клавіш
За допомогою showkey
Традиційний спосіб дізнатися скан код - скористатися утилітою showkey. showkey очікує натискання клавіші, або виходить, якщо не було натискань протягом 10 секунд. Щоб працювати з showkey. ви повинні бути в віртуальної консолі. а не в графічному оточенні або працювати, залягання по мережі. Виконайте наступну команду:
За допомогою evtest
Для USB клавіатур, мабуть, потрібно використовувати evtest з пакета evtest замість showkey: [1]
Використовуйте поле "value" з MSC_SCAN. Цей приклад демонструє, що NumLock має сканкод 70053 і keycode 69.
За допомогою dmesg
Примітка: Цей метод не показує скан коди всіх клавіш, він показує їх тільки для невідомих клавіш.
Ви можете дізнатися скан код клавіші, натиснувши її та подивившись висновок команди dmesg. Наприклад, якщо у вас відображається такий рядок:
значить, скан код потрібної вам клавіші - 0xa0.
коди клавіш
Важливо: Зверніть увагу, що коди клавіш розрізняються в консольному та графічному режимах. Використовуйте відповідну утиліту, щоб дізнатися потрібне значення.
режим консолі
У віртуальній консолі коди клавіш можна дізнатися утилітою showkey. showkey чекає натискання клавіш, і якщо натискань немає протягом 10 секунд, виходить (це єдиний спосіб вийти з програми) Щоб працювати з showkey. ви повинні бути в віртуальної консолі, а не в графічному оточенні. Виконайте наступну команду:
режим графіки
У графічному режимі коди клавищи. використовувані Xorg (Русский). можна дізнатися за допомогою утиліти xev. яка поставляється в пакеті xorg-xev. Зрозуміло, щоб працювати з xev. ви повинні знаходитися в графічному оточенні, а не в консолі.
Виконавши таку команду, ви запустите xev з висновком тільки релевантної інформації:
Ось приклад виведення:
У цьому прикладі були натиснуті клавіші a. r. c. h і дві мультимедіа клавіші. Першим чотирьом клавішах з кодами клавіш 38. 27. 54 і 43 правильно призначені символи, а мультимедіа клавішах з кодами клавіш 153 і 144 - немає. Напис NoSymbol означає, що цим клавішах не призначено символ клавіші.
Якщо ви натискаєте кнопку і нічого не з'являється на терміналі, це може означати, що або у клавіші немає скан коду. або сканкоду не призначено код клавіші. або якийсь інший процес відловлює натискання клавіш. Якщо ви підозрюєте, що процес, який слухає X сервер відловлює натискання клавіш, ви можете спробувати запустити xev з чистою X сесії: