在14.04(Trusty)中使Microsoft Natural Ergonomic Keyboard 4000和7000的缩放滑块上下滚动
我尝试使用本教程在我的Microsoft Natural Ergonomic Keyboard 4000上进行滚动切换。但是我面临以下错误:
sudo: /lib/udev/keymap: command not found
我有udev版本204-5ubuntu20.2
(在Trusty中找到的版本)
我注意到这个版本不包括keymap
工具。 但我注意到更大的udev
版本( 例如Debian可用 )包含这个工具。
有人可以为我解释这个差异吗? =)在这种情况下我应该怎么做 – 从Debian repo安装包?
如果你看看/lib/udev/rules.d/60-keyboard.rules
你会发现一切都搞乱了。 这只是udev合并到systemd中的一部分。
所有硬件规则都编译为二进制硬件数据库。 它们遵循一种非常奇怪的格式。 udev /lib/udev/hwdb.d/60-keyboard.hwdb
键盘的现有规则位于/lib/udev/hwdb.d/60-keyboard.hwdb
。 看看,但不要编辑它 (更新可能会覆盖它)。
要添加自定义规则,我们将通过运行sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb
在/etc/udev/hwdb.d/
创建一个新文件。 您需要做的就是粘贴以下内容 –
如果您使用的是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####
)是正确的。 如果它们不匹配则不起作用。
完成编辑后,重新编译udev使用的hwdb
:
sudo udevadm hwdb --update
然后你可能需要重新插入。 如果它是PS / 2键盘,您可能需要重新启动。 在某些情况下,您还需要重新启动。
Ubuntu 15.10 :我以前的答案都没有成功。
我已成功使用类似于以前的方法 – 在/lib/udev/hwdb.d/60-keyboard.hwdb
中提到了/lib/udev/hwdb.d/60-keyboard.hwdb
。
我使用sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb
创建了新的hwdb文件,其中包含:
#Microsoft自然人体工程学键盘4000 - 重新放大/缩小页面向上/向下 了evdev:输入:b0003v045Ep00DB * KEYBOARD_KEY_c022d =上一页 KEYBOARD_KEY_c022e =下页
之后我跑了
sudo udevadm hwdb --update sudo udevadm control --reload
并重新插入键盘,它工作。
对于7000型,请使用evdev:input:b003v045Ep071D*
Oli发布的原始解决方案对我不起作用,但是在将密钥号"0c022d"
和"0c022e"
更改为"0c022d"
和"0c022e"
之后,它才起作用。 我使用的是4000型号,因此我无法validation7000型号是否需要进行相同的更改。
重复Oli的回答,这就是我所做的:通过运行sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb
创建一个新文件。 将以下行粘贴到文件中(对于4000型号):
keyboard:usb:v045Ep00DB* KEYBOARD_KEY_c022d=pageup KEYBOARD_KEY_c022e=pagedown
编辑文件后,重新编译udev使用的hwdb:
sudo udevadm hwdb --update
然后重新插上键盘。
添加到Oli的答案,如果您想要像在鼠标上一样滚动线条,您可以在自定义规则中将页面调整/向下翻页修改为向上/向下。 喜欢:
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
找到密钥的正确名称(例如,在rc.xml
用于OpenBox WM):
$ 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 /rc.xml ... volume_up.sh volume_down.sh ...