Зробіть повзунок масштабування Microsoft Natural Ergonomic Keyboard 4000 та 7000 прокручування вгору та вниз, 14.04 (Довірно)


29

Я намагався використовувати цей підручник, щоб змусити перемикач прокрутки працювати на моїй Microsoft Natural Ergonomic Keyboard 4000. Але я зіткнувся з такою помилкою:

sudo: /lib/udev/keymap: command not found

У мене є версія udev 204-5ubuntu20.2(версія знайдена в Trusty)

Я помітив, що ця версія не містить keymapінструменту. Але я помічаю, що більші udevверсії ( які, наприклад, доступні для Debian ), містять цей інструмент.

Може хтось пояснить це розходження для мене? =) І що мені робити в цьому випадку - встановити пакет від Debian repo?


Ви хочете вирішити цю проблему за допомогою udev або ви добре знайдете альтернативи? Я б трохи не бажав встановлювати непакетовані пакети udev debian на ubuntu.
Jobin

будь-які альтернативи вітаються =)
Дмитро Белавенцев

Чи допомагає це ?
Jobin

Що все-таки більше не поставляється keymapутиліта?
матовий

Я оновив свій підручник (з яким ви пов’язані), щоб включити відповідь нижче. Дякую :-)
Теренс Едем

Відповіді:


27

Якщо ви подивитеся на то, /lib/udev/rules.d/60-keyboard.rulesви побачите, що все було зіпсовано навколо. Це лише частина злиття udev в systemd, яка тривала.

Всі апаратні правила компілюються у двійкову базу даних апаратних засобів. Вони дотримуються дійсно дивного формату. Існуючі правила для клавіатур, які постачаються з udev, живуть /lib/udev/hwdb.d/60-keyboard.hwdb. Подивіться на це, але не редагуйте його (оновлення, ймовірно, замінять його).

Щоб додати свої власні правила, ми створимо новий файл /etc/udev/hwdb.d/, запустивши sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb. Все, що вам потрібно зробити - це вставити наступне -

Якщо ви використовуєте модель 4000:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_0c022d=pageup
 KEYBOARD_KEY_0c022e=pagedown

Якщо ви використовуєте модель 7000:

keyboard:usb:v045Ep071D*
 KEYBOARD_KEY_0c022d=pageup
 KEYBOARD_KEY_0c022e=pagedown

Це адаптується з підручника, який ви опублікували, так що вам може знадобитися налаштування на основі клавіатури. Подивіться lsusbі переконайтесь, що vendor:productкод вище (як v####p####) правильний. Він не працюватиме, якщо вони не збігаються.

Після завершення редагування перекопіюйте те, hwdbщо використовує udev:

sudo udevadm hwdb --update

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


Thx для відповіді! hwdb.dреж порожньо, rules.dмістить тільки 3 файли ( 70-persistent-cd.rules, 70-persistent-net.rules, README). Отже, ти мав на увазі, що я повинен створити новий файл? Або я повинен мати деякі для редагування?
Дмитро Белавенцев

Так, вам слід створити новий файл. Існуючі правила на клавіатурі сидітимуть, /lib/udev/hwdb.d/60-keyboard.hwdbале зміни до них втрачаються після оновлень udev.
Олі

2
на жаль, не працює цільова кнопка для роботи
Дмитро Белавенцев

1
@matt, ви можете поставити кілька псевдонімів як тут
user.dz

1
Замість підключення | вимкнення підключення можна скористатися udevadm trigger /dev/input/by-id/usb-Microsoft-*для запуску оновлення
Олександр Приймак

37

Ubuntu 15.10 : Я не мав успіху з попередніми відповідями.

Я успішно використовував підхід, аналогічний попередньому - інструкції були згадані в /lib/udev/hwdb.d/60-keyboard.hwdb.

Я створив новий файл hwdb, використовуючи sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb :

# Microsoft Natural Ergonomic Keyboard 4000 - повторне збільшення масштабу / зменшення сторінки вгору / вниз
evdev: вхід: b0003v045Ep00DB *
 KEYBOARD_KEY_c022d = сторінка
 KEYBOARD_KEY_c022e = pagedown

після цього я побіг

sudo udevadm hwdb - оновлення
sudo udevadm control - перезавантажити

і підключив клавіатуру, і вона спрацювала.

Для моделі 7000 використання evdev:input:b003v045Ep071D*


9
Це правильна відповідь для Ubuntu 16.04
Грег Дан

2
Спасибі. Це дійсно схоже на те, що keyboard:визначення більше не працюють на Ubuntu 1604, і це повинно бути evdev:. Існує навіть відображення за замовчуванням /lib/udev/hwdb.d/60-keyboard.hwdbдля моделі 4000, яка відображає їх на zoomin/ zoomout- проте X повністю ігнорує події (xev нічого не показує), тому вам все одно потрібна така зміна конфігурації.
wump

2
На b0003зовнішньому вигляді , як це шинно-специфічний (так що він може працювати тільки в деяких портах USB). Якщо щось подібне b*v045Ep071D*працює, це може бути краще.
Олі

3
Дякую, він працює в Ubuntu 16.04 ( evdev:input:XXXзамість keyboard:usb:YYY). Ви також можете використовувати різні карти замість pageup/ pagedown. Наприклад, я використовую scrollupі scrolldownвиконую справжню прокрутку.
Мартін Грьобер

1
Працює і в Kubuntu 17.10
OOPMan

7

Оригінальне рішення опубліковано Олі не працював для мене, але він працює після того, як я змінив ключові цифри "0c022d"і "0c022e"до "c022d"і "c022e". Я використовую модель 4000, тому не можу перевірити, чи потрібні ті ж зміни для моделі 7000.

Щоб повторити відповідь Олі, ось що я зробив: створити новий файл запуском sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb. Вставте у файл наступні рядки (для моделі 4000):

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=pageup
 KEYBOARD_KEY_c022e=pagedown

Після редагування файлу перекопіюйте hwdb, який використовує udev:

sudo udevadm hwdb --update

Потім відключіть клавіатуру.


Спасибі. Як не дивно, мені потрібно було також виконати цю зміну зараз, а також потрібно було перезапустити її після всього (а не лише підключення).
мат

працював для мене на Ubuntu 15.04. Спасибі!
П’єр

Це працювало для мене на Debian Jessie 8.5.
Nicolás

Я хочу придбати економічну клавіатуру, і мені цікаво, чи працює вона з 16,04 LTS? Або немає такої проблеми, як ця.
Арпад Хорват

4

Додаючи до відповіді Олі: Якщо ви хочете, щоб прокручування рядків, як це було на миші, ви можете змінити сторінку / pagedown, щоб вгору / вниз у вашому користувацькому правилі. Подібно до:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=up
 KEYBOARD_KEY_c022e=down

До речі: вгору / вниз за замовчуванням 18.04.
LinuxLuigi

1

Nice рішення тут , і я можу тільки додати , що ви можете відобразити ключі до невикористаних X клавішах , як , що:

$ cat /lib/udev/rules.d/95-keymap.rules
...
ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d katakana 0xc022e katakanahiragana
...

Власні імена , щоб використовувати замість katakanaможна знайти тут .

Після перезавантаження ;-) ви можете перевірити це zoominіzoomout клавіші успішно відображаються, а також знайти належні назви клавіш (наприклад, rc.xmlдля OpenBox WM), використовуючи xev:

$ xev
...
KeyRelease event, serial 46, synthetic NO, window 0x3c00001,
    root 0x291, subw 0x0, time 1492891, (-261,-61), root:(573,380),
    state 0x0, keycode 101 (keysym 0xff27, Hiragana_Katakana), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
...

Тепер ви можете підключити нові клавіші до абсолютно довільних дій. У моєму випадку менеджера вікон OpenBox я використав щось подібне:

$ cat <whatever>/rc.xml
...
<keybind key="Katakana">
  <action name="Execute">
    <command>volume_up.sh</command>
  </action>
</keybind>
<keybind key="Hiragana_Katakana">
  <action name="Execute">
    <command>volume_down.sh</command>
  </action>
</keybind>
...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.