Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python与Libinput接口创建宏_Python_Linux_Uinput - Fatal编程技术网

使用Python与Libinput接口创建宏

使用Python与Libinput接口创建宏,python,linux,uinput,Python,Linux,Uinput,我在跑Fedora 22;我正试图用uinput创建一个非常简单的键盘宏脚本,它可以跨显示服务器(和控制台)工作 接下来,我了解了如何成功地使用evdev实现这一点 然而,我也希望能够通过libinput实现这一点(对于wayland、mir和X11);有人知道如何做到这一点吗?这个问题在目前的形式下没有什么意义,你混淆了堆栈的两个不同层 libinput是一个库,用于处理来自内核evdev设备的事件。它可以做两个手指滚动、触摸板手势、鼠标滚轮模拟等操作。对于键盘,它几乎可以转发内核提供的任何内

我在跑Fedora 22;我正试图用uinput创建一个非常简单的键盘宏脚本,它可以跨显示服务器(和控制台)工作

接下来,我了解了如何成功地使用evdev实现这一点


然而,我也希望能够通过libinput实现这一点(对于wayland、mir和X11);有人知道如何做到这一点吗?

这个问题在目前的形式下没有什么意义,你混淆了堆栈的两个不同层

libinput是一个库,用于处理来自内核evdev设备的事件。它可以做两个手指滚动、触摸板手势、鼠标滚轮模拟等操作。对于键盘,它几乎可以转发内核提供的任何内容(键盘布局由合成器和客户端处理)

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

因此,由uinput创建的设备位于libinput下面,使用uinput创建的任何键盘设备都将在使用libinput的合成器中显示为键盘。因此,任何按键事件都会像普通键盘一样被转发


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

这个问题在其当前形式下没有太大意义,您混淆了堆栈的两个不同层

libinput是一个库,用于处理来自内核evdev设备的事件。它可以做两个手指滚动、触摸板手势、鼠标滚轮模拟等操作。对于键盘,它几乎可以转发内核提供的任何内容(键盘布局由合成器和客户端处理)

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

因此,由uinput创建的设备位于libinput下面,使用uinput创建的任何键盘设备都将在使用libinput的合成器中显示为键盘。因此,任何按键事件都会像普通键盘一样被转发


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

将您的文件重命名为
uinput.py
以外的文件,然后重试。同时删除任何非常基本的
uinput.pyc
@VincentSavard Doh!这就是我不习惯于导入的原因(我也有一段时间没有接触bash脚本之外的任何代码了)。在我得到这个问题后,我重新措辞以适应我目前的困境。谢谢您的帮助,很抱歉弄乱了。请将您的文件重命名为除
uinput.py
以外的其他文件,然后重试。同时删除任何
uinput.pyc
@VincentSavard-Doh这一非常基本的文件!这就是我不习惯于导入的原因(我也有一段时间没有接触bash脚本之外的任何代码了)。在我得到这个问题后,我重新措辞以适应我目前的困境。谢谢你的帮助,很抱歉弄得一团糟。我希望创建一个第三方宏程序,让libinput误以为有输入是通过uinput来自键盘的。但你是说我可以用uinput创建一个虚拟键盘设备,libinput可以读取它?是的,用uinput创建的键盘看起来和LibInputHanks的真实键盘一样,我会试试的。我希望创建一个第三方宏程序,它可以愚弄libinput,使其认为有来自键盘的输入是通过uinput实现的。但你是说我可以用uinput创建一个虚拟键盘设备,libinput可以读取它?是的,用uinput创建的键盘对LibInputHanks来说看起来和真实键盘一样,我试试看。