Mar*_*ing 21 microsoft-keyboard
我在 Ubuntu 10.10 上使用 Microsoft Natural Ergonomic Keyboard 4000。多媒体键(音量、播放/暂停)、邮件和计算器按钮也有效。
现在我很想使用缩放滑块,如果可能的话,我想使用页面滚动。有什么方法可以启用它吗?
Kee*_*ook 18
创建/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"
Run Code Online (Sandbox Code Playgroud)
这会将缩放键映射到向上翻页/向下翻页,而无需更改/lib/udev.
添加后,您只需拔下并重新插入键盘即可开始工作。
小智 10
在 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
Run Code Online (Sandbox Code Playgroud)
跑
sudo udevadm hwdb --update
重启。
为了配置Microsoft 人体工学键盘 4000,我们必须创建一个配置文件,其中包含键盘声明和映射键的记录。
为此,我们需要确定三类信息:
scancode是键盘上的实际键name分配所期望的功能到所选择的键首先找到键盘类型:
在终端中运行以下命令:
lsusb
Run Code Online (Sandbox Code Playgroud)
输出决定键盘类型:
...
Bus 004 Device 022: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
...
Run Code Online (Sandbox Code Playgroud)
它出现在 之后ID。在这种情况下是045e:00db
其次找到扫描码和密钥的名称。
为了确定它们,我们使用evtest在终端上注销特定设备的事件信息的程序:
evtest
Run Code Online (Sandbox Code Playgroud)
如果您没有该程序,请通过运行以下命令进行安装:
sudo apt-get install evtest
Run Code Online (Sandbox Code Playgroud)
通过运行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]:
Run Code Online (Sandbox Code Playgroud)
输出几乎是不言自明的,为键盘插入适当的数字,这里是数字,3然后按回车键:
这样做,将在终端上输出大量信息,并以以下几行结尾:
...
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 ------------
Run Code Online (Sandbox Code Playgroud)
现在,随着键盘上的每一次按键,它都会转储出关键信息。例如,Right Shift 旁边的Slash 键显示:
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 ------------
Run Code Online (Sandbox Code Playgroud)
日志的第一行包含有关键盘上实际键的信息,例如scancode值后面的键。在这种情况下,它是70038
第二行包含分配的功能信息,如键名。在这种情况下,它是SLASH。检查其他键以找到它们的适当名称。
所以简而言之:
收集必要的信息后,我们创建配置文件:
sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb
Run Code Online (Sandbox Code Playgroud)
点击i以激活插入模式并键入以下内容:
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_70038=minus
Run Code Online (Sandbox Code Playgroud)
按escape然后输入:wq并按回车键保存并退出。
然后运行以下两条命令使配置生效:
sudo udevadm hwdb --update
sudo udevadm control --reload
Run Code Online (Sandbox Code Playgroud)
最后拔下键盘并重新插入。
关于配置文件的一些注意事项:
sudoedit您可以使用任何其他文本编辑器之外,请记住遵循上述文件的确切格式。vandp分别代表供应商和产品。它们也很重要。KEYBOARD_KEY_问题是evdev 驱动程序忽略 > 255 的键码。
解决方案,感谢Marco Chiappero:
1)你必须定义你需要的所有重新映射(以 “scancode keycode”列表)并将它们放在“/lib/udev/keymaps/”下的文件中 (例如我在那里创建了 logitech-lx710-cordless)。您可以找到 使用 evtest 扫描代码(“sudo evtest /dev/input/eventX”,其中 X 是您的 键盘设备。小心,有时这些额外的键会通过 不同的设备或鼠标界面:例如。事件3 --> kbd,事件4 --> 鼠标和额外的按键)。这里是一些示例输出: 事件:时间 1294153475.909379,类型 4 (Misc),代码 4 (ScanCode),值 c1028 “c1028”是您要放置在键盘映射文件中的扫描码值,然后 如前所述从 input.h 中选取一个数字并将其转换为 十六进制。然后将重映射对写入您的文件中,可能带有描述性内容 评论,像这样: 0xC1028 0x9a #旋转按钮 对每个 > 255 的键进行迭代。 2)你必须告诉udev每次遇到这个重映射文件时应用它 你的键盘,所以编辑“/lib/udev/rules.d/95-keymap.rules”文件添加 与您的硬件匹配的 udev 规则。请不要让我定义规则 你。 注意:您可以通过自己键入立即应用键盘映射文件 “sudo /lib/udev/keymap /dev/input/eventX /lib/udev/keymaps/$YOUR_FILE” 和 再次用evtest验证一下。 现在,您可以使用 Gnome 快捷键编辑器来查看按键现在 可在 X 内部使用并创建新的快捷方式。然而,可能会发生这样的情况:不 keysym 被分配给该键码(因此您将看到 0xXY 而不是 XF86Foo)。 您可以通过 xmodmap -pke 查看当前映射,将输出保存到 文件并根据需要进行编辑(完整的键盘符号代码列表可在 “/usr/lib/X11/XKeysymDB”)。 将键符号添加到重新映射的键后,您可以保存此文件 作为 ~/.Xmodmap (或者作为 /etc/X11/Xmodmap 如果您希望应用于每个用户)。
小智 0
在我的机器上,额外的键(主页、搜索、计算等)和缩放输入通过 /dev/input/event5 发送,而普通键通过 /dev/input/event4 发送。Zoom键值与queueoverflow一致。