我有一个小数字键盘,除了我的常规键盘外,我想用它来启动宏和快捷方式。我可以将宏和快捷方式附加到这些键上(例如,数字键盘1最小化活动窗口),但是我的主键盘数字键盘也激活了快捷键。
我希望有一种方法可以让辅助键盘完全独立发挥作用,然后将快捷方式附加到该辅助键盘上。
这是我从中得到的输出xinput
。
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ LVT Recon gaming mouse id=10 [slave pointer (2)]
⎜ ↳ LVT Recon gaming mouse id=11 [slave pointer (2)]
⎜ ↳ Corsair Corsair K30A Gaming Keyboard id=13 [slave pointer (2)]
⎜ ↳ SIGMACHIP USB Keyboard id=18 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Corsair Corsair K30A Gaming Keyboard id=12 [slave keyboard (3)]
↳ Corsair Corsair K30A Gaming Keyboard id=14 [slave keyboard (3)]
↳ LVT Recon gaming mouse id=15 [slave keyboard (3)]
↳ Corsair Corsair K30A Gaming Keyboard id=16 [slave keyboard (3)]
↳ SIGMACHIP USB Keyboard id=17 [slave keyboard (3)]
↳ SIGMACHIP USB Keyboard id=19 [slave keyboard (3)]
尽管我的其他答案可能适用于大多数Linux,即使它们已经使用了很多年,但SystemD和udev实际上使事情变得更容易:
用于lsusb
查找附加键盘的供应商和产品代码。(在我的情况下,这是供应商145F,产品0177。请确保字母大写。)
创建一个文件/etc/udev/hwdb.d/90-extra-keyboard.hwdb
,其内容类似于以下内容:
evdev:input:b0003v145Fp0177*
KEYBOARD_KEY_7005b=stopcd
第一行标识设备:v后面的四个字母是供应商代码,p后面的四个字母是产品代码,来自上一步。每隔一行将扫描代码映射到符号名称。要获取扫描代码,请运行evtest
:
Event: time 1553711252.888538, -------------- SYN_REPORT ------------
Event: time 1553711257.656558, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70059
Event: time 1553711257.656558, type 1 (EV_KEY), code 79 (KEY_KP1), value 1
要找出用于符号名称的内容,请查看中的#define KEY_…
行列表/usr/include/linux/input-event-codes.h
:
#define KEY_PLAYPAUSE 164
#define KEY_PREVIOUSSONG 165
#define KEY_STOPCD 166
#define KEY_RECORD 167
通过运行重新构建和加载内部数据库 systemd-hwdb update; udevadm trigger
通过evtest
再次运行或在设置中分配快捷方式来验证新设置是否有效。
在应用程序中尝试此操作时,请记住,如果您的桌面环境已使用该快捷方式,则该应用程序甚至都不会看到按键。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句