як змусити повзунком масштабування (та іншими кнопками) повзунком 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.