我可以在 Linux 上从第二个键盘启动宏和快捷方式吗?

umb*_*uit 9 keyboard-shortcuts keyboard macro

我有一个小数字键盘,我想用它来启动宏和快捷方式,旁边是我的常规键盘。我可以将宏和快捷方式附加到这些键上(即,小键盘 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)]
Run Code Online (Sandbox Code Playgroud)

Ulr*_*arz 9

虽然我的另一个答案可能适用于大多数 Linux,但即使它们已有多年历史,SystemD 和 udev 实际上使事情变得更容易:

  • 用于lsusb查找附加键盘的供应商和产品代码。(就我而言,它是供应商 145F,产品 0177。确保字母大写。)

  • 创建一个文件/etc/udev/hwdb.d/90-extra-keyboard.hwdb,内容类似于:

evdev:input:b0003v145Fp0177*
 KEYBOARD_KEY_7005b=stopcd
Run Code Online (Sandbox Code Playgroud)

第一行标识设备: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
Run Code Online (Sandbox Code Playgroud)

要了解符号名称的用途,请查看 中的#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
Run Code Online (Sandbox Code Playgroud)
  • 通过运行重新构建和加载内部数据库 systemd-hwdb update; udevadm trigger

  • 通过evtest再次运行或在您的设置中分配快捷方式来验证新设置是否有效。

在应用程序中尝试此操作时,请记住,如果您的桌面环境已经使用该快捷方式,应用程序甚至不会看到按键。