як змусити повзунком масштабування (та іншими кнопками) повзунком Microsoft Natural Ergonomic Keyboard 4000 працювати?


21

Я використовую Microsoft Natural Ergonomic Keyboard 4000 на Ubuntu 10.10. Працюють мультимедійні клавіші (Гучність, Відтворення / Пауза), кнопка Пошта та Калькулятор.

Тепер я хотів би скористатися повзунком масштабування, якби це можливо, я хотів би скористатися прокруткою сторінки за допомогою цього. Чи є якийсь спосіб це зробити?


2
Див askubuntu.com/questions/471802 / ... . Колишні відповіді тут можуть бути застарілими.
— мат

Відповіді:


18

Створіть файл /etc/udev/rules.d/98-ms-ergo.rulesіз таким вмістом:

ACTION=="remove", GOTO="keyboard_end"
KERNEL!="event*", GOTO="keyboard_end"
ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end"
SUBSYSTEMS!="usb", GOTO="keyboard_end"

SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"

ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d pageup 0xc022e pagedown"

GOTO="keyboard_end"

Це дозволить зіставити клавішу збільшення на сторінку / вниз, не змінюючи встановлені файли в /lib/udev.

Після додавання вам просто потрібно відключити та підключити клавіатуру, щоб вона почала працювати.


Це працювало для мене бездоганно, використовуючи Fedora 19.
— Рубенс Маріуццо

Для Microsoft Ergonomic 7000 модель виглядає як 071d (як отримано lsusb), а не 00db - тому, якщо хтось спробує це на 7000, він, ймовірно, повинен замінити 00db на 071d у наведеному вище файлі. У моєму випадку (Ubuntu 14.04) це не працює, можливо, це пов'язано з тим, що evtestпоказує, що повзунок масштабування не викликає жодної події, на відміну від більшості інших клавіш клавіатури Ergonomic 7000, які це роблять. Не впевнений у цьому, оскільки кнопка Web / Home не відображає жодного результату в evtestобох випадках, хоча Ubuntu і так підбирає.
— матовий

1
Я також не можу змусити 4000 працювати 14.04. Не бачачи подій у xev.
— Майкл

Спробував це 14.10, і не вийшло.
— Рубенс Маріуццо

@Cocoabean xevтакож не працює для мене. Що таке evtest /dev/input/event3. Якщо event3на цю клавішу немає жодної реакції, перевірте інші події ( event[0..9]).
— Nicolás

9

Для Xubuntu 13.10 (можливо, і для Ubuntu 13.10) те ж саме можна зробити так:

Редагування ключових відображень у /lib/udev/hwdb.d/60-keyboard.hwdb:

###########################################################
# Microsoft
###########################################################

# Microsoft Natural Ergonomic Keyboard 4000
keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=pageup
 KEYBOARD_KEY_c022e=pagedown

Біжи sudo udevadm hwdb --update

Перезавантажте.


1
Працював 14.04 для мене
— Амір Уваль

Мій 60-keyboard.hwdb мав існуючий запис для MNEK4K, з клавіатурою: usb: b0003v045Ep00DB *. Змінити дії не вдалося. Додавання нового запису з цими діями спрацювало.
— Alrekr

Працював як шарм 16.04. Я використовував "вгору" та "вниз" (замість відповідної "сторінки" та "загальнодоступного міста"), щоб отримати більш плавне прокручування під час перегляду веб-сторінок. Дуже дякую!
— П’єр

Ви можете зіставити katakanaта katakanahiragana(або будь-який інший невикористаний код коду з hal.freedesktop.org/quirk/quirk-keymap-list.txt ), а не псевдонімом для існуючих ключів. Таким чином ви можете розпізнавати та використовувати клавіші в поєднанні з модифікаторами для перемикання гучності, мови, розміру тощо (налаштувати менеджер вікон на два нових супер-клавіші).
— dmitry_romanov

4

Для налаштування ергономічної клавіатури Microsoft 4000 ми повинні створити файл конфігурації, який містить декларацію клавіатури та записи для відображення клавіш.

Для цього потрібно визначити три типи інформації:

  • Тип клавіатури
  • Клавіша, scancodeяка є фактичною клавішею на клавіатурі
  • Клавіша nameдля призначення бажаної функціональності вибраній клавіші

Спочатку знайдіть тип клавіатури:

У терміналі запустіть таку команду:

lsusb 

вихід визначає тип клавіатури:

...
Bus 004 Device 022: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
...    

Він з’являється після ID. У цьому випадку це так045e:00db

По-друге, знайдіть код сканування та назву ключа.

Для їх визначення ми використовуємо evtestпрограму, яка записує інформацію про події конкретного пристрою на терміналі:

evtest

Якщо у вас немає програми, встановіть її, виконавши таку команду:

sudo apt-get install evtest

Запустивши evtestпрограму, ми отримуємо такий вихід:

No device specified, trying to scan all of /dev/input/event* Available devices: 
/dev/input/event0:    Power Button     
/dev/input/event1:    Power Button     
/dev/input/event2:    PixArt USB Optical Mouse   
/dev/input/event3:    Microsoft Natural® Ergonomic Keyboard 4000   
/dev/input/event4:    Microsoft Natural® Ergonomic Keyboard 4000   
/dev/input/event5:    HDA Intel Front Headphone     
/dev/input/event6:    HDA Intel Line Out     
/dev/input/event7:    HDA Intel Line   
/dev/input/event8:    HDA Intel Rear Mic     
/dev/input/event9:    HDA Intel Front Mic     
/dev/input/event10:   HDA ATI HDMI HDMI/DP,pcm=3
Select the device event number [0-10]:

Вихід є досить зрозумілим, вставте відповідне число клавіатури, яке тут - номер, 3а потім натисніть клавішу Enter:

У такий спосіб буде виводитися багато інформації на термінал і закінчується наступними рядками:

... 

Testing ... (interrupt to exit)
Event: time 1472203902.240594, type 17 (EV_LED), code 0 (LED_NUML), value 0
Event: time 1472203902.240594, -------------- SYN_REPORT ------------
Event: time 1472203902.281456, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70058
Event: time 1472203902.281456, type 1 (EV_KEY), code 96 (KEY_KPENTER), value 0
Event: time 1472203902.281456, -------------- SYN_REPORT ------------

Тепер при кожному натисканні клавіші на клавіатурі вивантажується ключова інформація. Наприклад, клавіша Slash поруч із правою кнопкою Shift показує:

Event: time 1472205062.294078, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70038
Event: time 1472205062.294078, type 1 (EV_KEY), code 12 (KEY_SLASH), value 0
Event: time 1472205062.294078, -------------- SYN_REPORT ------------

Перший рядок журналу містить інформацію про фактичну клавішу на клавіатурі, таку, scancodeяка надходить після значення. У цьому випадку це 70038

Другий рядок містить призначену інформацію про функціональність, наприклад ім'я ключа. У цьому випадку це СЛАШ . Вивчіть інші клавіші, щоб знайти відповідні назви.

Отже, коротко:

  • Наш тип клавіатури: 045e: 00db
  • Код сканування клавіші Slash становить: 70038
  • Назва ключа для призначення - SLASH

Після збору необхідної інформації ми створюємо файл конфігурації:

sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb

Натисніть, iщоб активувати режим Вставка та введіть наступне:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_70038=minus      

Збережіть та вийдіть, натиснувши escapeпотім набравши :wqта натисніть клавішу Enter.

Потім запустіть наступні дві команди, щоб конфігурація набула чинності:

sudo udevadm hwdb --update
sudo udevadm control --reload

Нарешті відключіть клавіатуру та підключіть її знову.

Деякі примітки про файл конфігурації:

  • Формат файлу повинен бути точно таким, як показано, простір перед картографуванням записів є критичним.
  • Замість того, щоб sudoeditви могли використовувати будь-який інший текстовий редактор, просто не забудьте дотримуватися точного формату файлу, як пояснено вище.
  • До типу клавіатури додано два символи: vі pякі означають постачальника та товару. Вони також важливі.
  • Тип клавіатури записується великими літерами у файл конфігурації. Наш тип клавіатури був 045e: 00db, але в конфігурацію ми вставляємо v045Ep00DB *
  • Код сканування ключа надходить відразу після KEYBOARD_KEY_
  • Ім'я ключа відображається в малому регістрі файла конфігурації
  • Ви можете налаштувати майже кожну клавішу на клавіатурі, виконуючи цей підручник.

3

Проблема в тому , що evdev водій ігнорує коди клавіш> 255 .
Рішення, завдяки Марко Чіапперо :

1) Ви повинні визначити всі необхідні доповнення (у формі 
список "сканувати код коду") та помістити їх у файл під "/ lib / udev / keymaps /" 
(наприклад, я створив там Logitech-lx710-бездротовий). Ви можете знайти
scancodes за допомогою evtest ("sudo evtest / dev / input / eventX", де X - ваш 
клавіатурний пристрій. Будьте уважні, іноді ці додаткові клавіші виставляються наскрізь
інший пристрій або інтерфейс миші: наприклад. event3 -> kbd, event4 ->
миша та додаткові клавіші). Ось кілька вибіркових результатів:

Подія: час 1294153475.909379, тип 4 (Різне), код 4 (ScanCode), значення c1028
"c1028" - це значення коду сканування, яке ви збираєтеся розмістити у вашому файлі картки 
забрати число з input.h, як описано раніше, і перетворити його в 
шістнадцятковий. Потім запишіть у файл файл перезастосування, можливо, з описом
коментар, як це:

0xC1028 Кнопка обертання 0x9a #

Ітерація для кожного ключа> 255.

2) ви повинні сказати udev застосовувати цей файл перезастосування кожного разу, коли він стикається 
вашої клавіатури, тому відредагуйте файл "/lib/udev/rules.d/95-keymap.rules", додавши 
правило udev, яке відповідає вашому HW. Не вимагайте, щоб я визначив правило для
ти. 
ПРИМІТКА. Ви можете негайно застосувати файл вашої клавіатури, самостійно ввівши текст 
"sudo / lib / udev / keymap / dev / input / eventX / lib / udev / keymaps / $ YOUR_FILE" та 
ще раз перевірте це за допомогою evtest.

Тепер ви можете скористатися редактором ярликів Gnome, щоб побачити, що зараз клавіші 
можна використовувати всередині X та створювати нові ярлики. Однак може статися, що ні
цьому клавішному коду призначається keyym (тому ви побачите 0xXY замість XF86Foo). 
Ви можете бачити поточні відображення через xmodmap -pke, зберегти вихід у a 
файл та відредагуйте його, якщо вам потрібно (повний список кодів із клавішами доступний у
"/ usr / lib / X11 / XKeysymDB").
Як тільки ви додали ключові слова до тих ключів, які ви перезавантажили, ви можете зберегти цей файл
як ~ / .Xmodmap (або як / etc / X11 / Xmodmap, якщо ви хочете застосувати до кожного користувача).

Я розумію, що потрібні мені кнопки - це c022d та c022e, але я не можу знайти введення.h.
— Мартін Удінг

Як я розумію (але я не можу випробування , тому що немає такого обладнання) ви на самому справі не потрібно input.h, вам просто потрібно редагувати цей файл: /lib/udev/rules.d/95-keymap.rules. (Можливо, тут, на панелі запуску, ви можете знайти людей з однаковим обладнанням, тому більш здатні допомогти bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/313514 ). Ви редагували файл, про який я згадував вище?
— десгуа

1
Це занадто технічна та неорганізована відповідь для більшості людей. Кілька серйозних прогалин: відсутність допомоги у визначенні відповідного / dev / input / eventX, незрозумілі кроки, змішані з контекстною інформацією, та прохання не запитувати інструкцій щодо створення ключових карт.
— Ален О'Дея,

1
evtest навіть не встановлений за замовчуванням, що робить це ще гірше.
— Ален О'Дея,

Через спроби та помилки я виявив, що моя клавіатура є / dev / input / event3, і evtest не збирає жодних подій зі повзунка масштабування.
— Ален О'Дея,

0

На моїй машині надсилаються додаткові клавіші (HomePage, Search, Calc тощо) та введення масштабу через / dev / input / event5, тоді як звичайні ключі надсилаються через / dev / input / event4. Значення ключа масштабування узгоджується з потоком черги.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.