Сделайте ползунок масштабирования 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>
...