linux - linux 的窗口管理器,支持无焦点窗口

标签 linux focus window-managers

在我的带有触摸屏的 ARM 嵌入式设备上,我有一个第 3 方程序(程序 A),它创建了一个处理键盘按下的窗口。因此,此窗口始终必须具有焦点。这是一个封闭源代码,我没有修改它的选项。

我需要在 Linux 中创建一个永远不会占据焦点的窗口。它只显示图像,有时全屏显示。但是,我可以选择不使其全屏显示(少 1 个像素,因此下面的窗口可见。)。

现在,我只使用 X 服务器,但我可以安装(几乎)任何窗口管理器。

  1. 有没有办法在 X 中创建一个永远不会获得焦点的窗口?如果我正确理解 X,鼠标下方的窗口将获得焦点。
  2. 是否有支持此类功能的窗口管理器?
  3. 这可能与 xcb 或 wayland 有关吗?

最佳答案

在 Wayland 上,由合成器告诉客户端它是否有焦点,以及要将关键事件发送到哪个表面。因此,如果可能的话,这将取决于您使用的合成器或合成器工具包。

KWin 有一个选项,听起来就像您想要的那样。右键单击窗口标题栏并选择 更多操作 -> 特殊窗口设置 -> 接受焦点

在合成器工具包中,我只知道 Qt Wayland Compositor API,而且它应该是可能的(假设您的应用程序可以作为 Wayland 客户端运行)。最简单的方法是使用 QML API 在合成器中显示图像,或者您可以在 WaylandQuickItemShellSurfaceItem 上设置 enabled: false > 你不想获取输入焦点。

关于linux - linux 的窗口管理器,支持无焦点窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401362/

相关文章:

css - 将 CSS 样式添加到除焦点文本区域之外的所有内容

qt - 单击窗口上的任何其他地方时如何从 QLineEdit 中移除焦点

wpf - 除了使用 IsFocused 之外,如何知道 UserControl 是否处于事件状态

Linux:列出所有可用的窗口管理器

linux - 在概念窗口管理器中拆分工作区

android - 如何在android中挂载循环设备

c - 在 linux 中保存 session 或进程状态

linux - shell中两个日期之间的天数差异

linux - 使用shell脚本将json文件转换为csv而不使用jq?

python wnck 在 pdb.set_trace() 之前不返回任何数据