使用Python与Libinput连接创建宏

时间:2016-02-16 19:50:21

标签: python linux uinput

我正在运行Fedora 22;我正在尝试使用uinput创建一个非常简单的键盘宏脚本,该脚本可以在显示服务器上运行(并在控制台中)。

关注this post我想出了如何成功地in console和evdev;

但是我也想通过libinput(对于wayland,mir和X11)来做到这一点;是谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

这个问题在当前的形式中没有多大意义,你会混淆堆栈的两个不同层。

libinput是一个处理来自内核evdev设备的事件的库。它可以完成诸如双指滚动,触摸板手势,鼠标滚轮仿真等操作。对于键盘,它几乎只是内核提供的内容(键盘布局由合成器和客户端处理)。

uninput是创建虚拟设备的内核接口,然后显示为内核evdev设备节点。 libinput不关心设备是物理设备还是虚拟输入设备(事实上,libinput的测试套件大量使用输入设备)。

因此,uinput创建的设备位于libinput之下,使用uinput创建的任何键盘设备都将在使用libinput的合成器中显示为键盘。因此,任何键事件都将从普通键盘转发。

现在,您可以尝试直接向libinput添加宏支持,但这样做起来要困难得多,而且几乎没有机会上游。对于本地用例,基于输入的解决方案应该足够了。