Я использую Microsoft Natural Ergonomic Keyboard 4000 в Ubuntu 10.10. Клавиши мультимедиа (громкость, воспроизведение / пауза) работают, а также кнопка «Почта» и «Калькулятор».
Теперь я хотел бы использовать ползунок масштабирования, если бы это было возможно, я хотел бы использовать прокрутку страницы с этим. Есть ли способ включить это?
Создайте файл /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
.
После добавления вам просто нужно отсоединить и снова подключить клавиатуру, чтобы она начала работать.
На 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
Перезагрузка.
На моей машине дополнительные клавиши (HomePage, Search, Calc и т. Д.) И ввод с увеличением были отправлены через / dev / input / event5, тогда как обычные клавиши были отправлены через / dev / input / event4. Значение ключа масштабирования соответствует значению queueoverflow.
Проблема заключается в том, что драйвер evdev игнорирует коды клавиш> 255 .
Решение, благодаря Марко Кьяпперо :
1) you have to define all the remappings that you need (in the form of "scancode keycode" list) and place them in a file under "/lib/udev/keymaps/" (for example I created logitech-lx710-cordless there). You can find the scancodes using evtest ("sudo evtest /dev/input/eventX", where X is your keyboard device. Be careful, sometimes these extra keys are exposed through a different device or your mouse interface: eg. event3 --> kbd, event4 --> mouse & extra keys). Here some sample output: Event: time 1294153475.909379, type 4 (Misc), code 4 (ScanCode), value c1028 "c1028" is the scancode value you're going to place in your keymap file, then pick up a number from input.h as described earlier and convert it to hexadecimal. Then write the remap pair in your file, maybe with a descriptive comment, like this: 0xC1028 0x9a # rotate button Iterate for every key > 255. 2) you have to tell udev to apply this remapping file everytime it encounters your keyboard, so edit the "/lib/udev/rules.d/95-keymap.rules" file adding the udev rule that matches your HW. Please don't ask me to define a rule for you. NOTE: you can immediately apply your keymap file by yourself typing "sudo /lib/udev/keymap /dev/input/eventX /lib/udev/keymaps/$YOUR_FILE" and verify it with evtest once again. Now, you can use the Gnome shortcuts editor to see that the keys are now usable inside X and create new shortcuts. However it might happen that no keysym is assigned to that keycode (so you'll see 0xXY instead of XF86Foo). You can see current mappings through xmodmap -pke, save the output into a file and edit it if you need (a full keysym code list is available in "/usr/lib/X11/XKeysymDB"). Once you added the keysyms to those keys you remapped, you can save this file as ~/.Xmodmap (or as /etc/X11/Xmodmap if you wish to apply to every user).
Чтобы настроить эргономичную клавиатуру 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 ------------
Теперь с каждой клавишей -Нажмите на клавиатуре, она выводит информацию о клавишах. Например, клавиша слеша рядом с правым сдвигом показывает:
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
Во второй строке содержится информация о назначенной функциональности , например, имя ключа. В данном случае это SLASH . Изучите другие ключи, чтобы найти их соответствующие имена.
Итак, в двух словах:
После сбора необходимой информации мы создаем конфигурацию file:
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
, которые обозначают поставщика и продукт. Они также важны. KEYBOARD_KEY_