将两个 USB 端口/两个键盘合二为一

将两个 USB 端口/两个键盘合二为一

我使用两个键盘(Koolertron AE-SMKD72 A型),我将其用作一个分割键盘。但它们被识别为两个独立的键盘,这会导致一些问题:

  • 我使用替代键盘布局,但有一个程序当我按下时,运行将按键映射回 QWERTZ,Ctrl因为我不想重新学习快捷键Ctrl-c。当我Ctrl按左侧和u右侧键盘时,该程序不起作用。
  • 有一个漏洞在 Gnome 中,在两个不同的键盘上快速打字时会导致屏幕冻结。
  • 中只列出了一种键盘/dev/input/by-id(可能是因为它们的名称相同)。

这就是为什么我更希望 Linux 将两个键盘视为一个键盘。

是否可以将两个键盘合并为一个输入设备?或者,是否可以将 USB 端口合并为一个,使两个设备看起来只是一个?

答案1

这并不容易,但如果您会编程,您就可以抓取(防止它们将事件传递给除您的程序之外的任何设备)两个/dev/input/eventX设备,从其中读取按键,并将它们输出到单个用户定义的输入设备( )中/dev/uinput

存在有关如何使用这些内核 API 的 C 示例程序。其他语言也是可能的。

答案2

尝试获取键盘/dev/input/eventX文件事件并将其传递给/dev/uinputusing fatkelp

fatkelp使用此命令安装:

curl https://raw.githubusercontent.com/algames2019/fatkelp/main/installer.sh > installer.sh; chmod +x installer.sh; sudo ./installer.sh

找到两个键盘的id

sudo fatkelp -l

然后将其传递到 /dev/uinput (在两个键盘上都执行此操作)

sudo fatkelp -x id

然后拆下两个键盘

xinput list               # list all devices (you can find id here)
xinput float id           # detach devices

相关内容