Сделайте ползунок масштабирования Microsoft Natural Ergonomic Keyboard 4000 и 7000 для прокрутки вверх и вниз в 14.04 (Trusty)
Я попытался использовать это руководство для работы переключателя прокрутки на Microsoft Natural Ergonomic Keyboard 4000. Но я столкнулся со следующей ошибкой:
sudo: /lib/udev/keymap: command not found
У меня есть версия Udev 204-5ubuntu20.2 (версия найдена в Trusty)
Я заметил, что эта версия не включает keymap инструмент. Но я замечаю, что больше udev версии ( которые доступны для Debian, например) включают этот инструмент.
Может ли кто-нибудь объяснить мне эту разницу? =) А что мне делать в этом случае - установить пакет из репозитория Debian?
5 ответов
Если вы посмотрите на /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, вам может потребоваться перезагрузка. В некоторых случаях вам также необходимо перезагрузить компьютер.
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= PageUp KEYBOARD_KEY_c022e= PageDown
после этого я бегу
sudo udevadm hwdb --update sudo udevadm control --reload
и переподключил клавиатуру и все заработало.
Для модели 7000 используйте evdev:input:b003v045Ep071D*
Исходное решение, опубликованное Оли, не работает для меня, но оно работает после того, как я изменил номера клавиш "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
Затем подключите клавиатуру.
В добавление к ответу Оли, если вы хотите прокрутить строку, как на мыши, вы можете изменить pageup/pagedown на up/down в вашем пользовательском правиле. Подобно:
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_c022d=up
KEYBOARD_KEY_c022e=down
Хорошее решение здесь, и я могу только добавить, что вы можете сопоставить ключи с неиспользованными ключами 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>
...