在我的带有触摸屏的 ARM 嵌入式设备上,我有一个第 3 方程序(程序 A),它创建了一个处理键盘按下的窗口。因此,此窗口始终必须具有焦点。这是一个封闭源代码,我没有修改它的选项。
我需要在 Linux 中创建一个永远不会占据焦点的窗口。它只显示图像,有时全屏显示。但是,我可以选择不使其全屏显示(少 1 个像素,因此下面的窗口可见。)。
现在,我只使用 X 服务器,但我可以安装(几乎)任何窗口管理器。
- 有没有办法在 X 中创建一个永远不会获得焦点的窗口?如果我正确理解 X,鼠标下方的窗口将获得焦点。
- 是否有支持此类功能的窗口管理器?
- 这可能与 xcb 或 wayland 有关吗?
最佳答案
在 Wayland 上,由合成器告诉客户端它是否有焦点,以及要将关键事件发送到哪个表面。因此,如果可能的话,这将取决于您使用的合成器或合成器工具包。
KWin 有一个选项,听起来就像您想要的那样。右键单击窗口标题栏并选择 更多操作 -> 特殊窗口设置 -> 接受焦点
在合成器工具包中,我只知道 Qt Wayland Compositor API,而且它应该是可能的(假设您的应用程序可以作为 Wayland 客户端运行)。最简单的方法是使用 QML API 在合成器中显示图像,或者您可以在 WaylandQuickItem
或 ShellSurfaceItem
上设置 enabled: false
> 你不想获取输入焦点。
关于linux - linux 的窗口管理器,支持无焦点窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401362/