Wayland可以替代xorg的xdotool?


16

xdotool是一个很好的X应用程序,我倾向于使用它来创建宏命令(例如alt + f4或ctrl + w或ctrl + alt + backspace或类似的东西)

它确实易于使用和方便,但我不知道像这样的任何与Wayland兼容的程序。现在有什么方法可以将鼠标和键盘输入信号发送到Wayland,类似于X的xdotool?

现在它在很大程度上与xwayland一起使用,但是并不是所有命令都可以工作(例如alt + f4,xev甚至可以读取alt + f4输入,但它不会像按键盘上的键盘那样触发应用程序终止),还有一个问题可能不使用xwayland。


Answers:


3

不可以,出于安全原因,这些功能已被明确排除在Wayland设计之外。(读取其他程序的输入是最大的问题,但是允许将假输入发送到其他程序也会导致麻烦。)

也就是说,我确实希望Wayland WM最终能够实现某种宏功能。毕竟,他们需要支持屏幕键盘和语音控制(用于辅助功能)。

但是,如果存在这样的功能,则取决于您使用的Wayland合成器:Weston?KDE的KWin?GNOME Shell?启示?Wayland中没有拆分“显示服务器–窗口管理器”;窗口管理器 Wayland服务器,并确定要实现的功能(作为Wayland子协议或D-Bus API等)。


1
我认为应该有可能创建一个适用于所有Wayland合成器的程序。Libinput将用户输入转发到Wayland,通过libinput可以触发alt + f4和其他使用Wayland函数的命令。您所要做的就是欺骗libinput使其作为键盘或鼠标输入来读取宏。是我的想法,但我不知道该如何做。
Cestarian

@Cestarian:您必须使用内核的uinput功能创建一个伪造的输入设备。
user1686 '16

1
没那么困难,我记得曾经在一些驱动程序中完成过一次,也许如果我只是看一下那个代码,我就能找到某种方式。(尽管我当时不知道自己在做什么)
Cestarian

1
邮件列表上有一个RFC:RFC:用于输入事件注入的接口,添加用于截屏和录制截屏的API。听起来可以通过一些其他安全加固工作来解决这些挑战。
Ben Creasy

3

当前还没有完美的解决方案,但是有一个比较接近的解决方案:ydotool

它使用uinput接口作为后端,并且不依赖于显示服务器。


可悲的是,我无法使其在Ubuntu 19.04上运行。我安装libboost-program-options-devlibevdevpluslibuinputplus最后是ydotool自己,但我仍然得到ydotool: error while loading shared libraries: libboost_program_options.so.1.65.1: cannot open shared object file: No such file or directory
m93a
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.