как заставить работать ползунок масштабирования Microsoft Natural Ergonomic Keyboard 4000 (и другие кнопки)?

Я использую Microsoft Natural Ergonomic Keyboard 4000 в Ubuntu 10.10. Клавиши мультимедиа (громкость, воспроизведение / пауза) работают, а также кнопка «Почта» и «Калькулятор».

Теперь я хотел бы использовать ползунок масштабирования, если бы это было возможно, я хотел бы использовать прокрутку страницы с этим. Есть ли способ включить это?

21
задан 9 May 2014 в 19:49

5 ответов

Создайте файл /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.

После добавления вам просто нужно отсоединить и снова подключить клавиатуру, чтобы она начала работать.

0
ответ дан 9 May 2014 в 19:49

На 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

Перезагрузка.

9
ответ дан 9 May 2014 в 19:49

На моей машине дополнительные клавиши (HomePage, Search, Calc и т. Д.) И ввод с увеличением были отправлены через / dev / input / event5, тогда как обычные клавиши были отправлены через / dev / input / event4. Значение ключа масштабирования соответствует значению queueoverflow.

0
ответ дан 9 May 2014 в 19:49

Проблема заключается в том, что драйвер 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).
0
ответ дан 9 May 2014 в 19:49

Чтобы настроить эргономичную клавиатуру 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 . Изучите другие ключи, чтобы найти их соответствующие имена.

Итак, в двух словах:

  • Наш тип клавиатуры: 045e: 00db
  • Скан-код Ключ слеша: 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, которые обозначают поставщика и продукт. Они также важны.
  • Тип клавиатуры записывается в верхнем регистре в файле конфигурации. Наш тип клавиатуры был 045e: 00db , но в конфигурацию мы вставили v045Ep00DB *
  • Скан-код клавиши появляется сразу после KEYBOARD_KEY_
  • Имя ключа отображается в нижнем регистре в файле конфигурации
  • Вы можете настроить практически любую клавишу на клавиатуре, следуя этому руководству.
  • [+1178]
0
ответ дан 9 May 2014 в 19:49

Другие вопросы по тегам:

Похожие вопросы: