问题标签 [wmctrl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2246 浏览

linux - Qt 使应用程序在 Weston/Wayland 平台上始终处于顶部

我想在 Wayland-weston 桌面系统中安排两个应用程序的焦点。两个应用是:

  1. 用 Qt/QML 编写,全屏
  2. 使用 Wayland Client API + OpenGL 编写,全屏

我想让 App#1 始终位于顶部,而 App#2 始终位于底部,即使我杀死并重生了它们中的任何一个。当它们都是全屏应用程序时,我也想这样做。

我已经调查并发现了几种实现这一目标的方法:

  1. 用于在桌面wmctrl系统中排列窗口:我已经尝试过了。但是,我得到Cannot open display.. 后来我发现它wmctrl不适用于 Weston/XWayland,仅适用于 X11。所以,我认为这不再是一个选择。

  2. 默认情况下,使 App#1 (Qt/QML) 始终位于顶部:为了解决这个问题,我尝试在 main.qml 中添加以下内容:

    /li>
  3. 默认情况下,使 App#2(Wayland Client API/OpenGL)始终位于底部。老实说,我对 Wayland Client API 不是很熟悉,但我可以在一些指导下探索它,如果这样的事情是可能的的话。

现在,我的重点是让 Qt 应用程序始终处于领先地位。它适用于我的 PC,但不适用于目标平台。我的电脑是 Ubuntu 16.04,带有 Xorg。目标平台具有带有 xwayland 后端的 Weston 合成器。我不知道为什么它在目标中不起作用。它可能是桌面系统。任何指导和想法表示赞赏。谢谢

编辑: main.cpp

编辑main.qml

编辑: PC 上的 Qt 版本 Qt 5.10.1,目标平台上的 Qt 5.8.0

0 投票
1 回答
1001 浏览

python - Python打开子进程时如何修复wmctrl无法打开显示

这是我的程序,效果很好。

输出:

但是如果我想在 Linux Mint 中以 root 身份在启动时运行这个程序,我就会遇到问题。我想在启动时以 root 身份运行这个 py 文件,但我不知道该怎么做。主要问题是如何做到这一点。

这是我解决问题的尝试。这没用。

我在文件pr.service夹中添加了一个文件/etc/systemd/system/

我在文件夹中创建了一个文件 pr.sh /usr/local/bin/

我使用了这些命令:

如果我用命令运行我的程序

我可以用命令看到这个错误

我有一个错误命令 subprocess.CalledProcess 错误:命令 'wmctrl -l' 返回非零退出状态 1。

我可以更改我的 py 文件,例如我可以运行

我可以更改我的 py 文件以查看错误:

RuntimeError: command '/usr/bin/wmctrl -l -p' return with error (code 1): b'Cannot open display.

我已阅读有关寻找解决方案的尝试:https ://linuxconfig.org/how-to-automatically-execute-shell-script-at-startup-boot-on-systemd-linux

这是一篇如何以 root 身份在 Linux 中自动运行脚本的文章。我做了这些事情。

我的主要目标是以 root 身份自动启动我的程序:

您不需要在我的解决方案中发现错误。找到任何解决方案都会很有趣。

0 投票
1 回答
84 浏览

linux - 如何通过 'wmctl' 和 'ps' 获得 X 应用程序的完整命令?

我正在开发一个程序,它可以查询正在运行的 X 应用程序,保存正在运行的应用程序的所有命令,然后它们会重新打开它们。

我遇到一个问题。wmctctl 可以查询Onlyoffice的 pid ,例如 pid 是 123。然后运行ps -ef -q 123,我看到 CMD./DesktopEditors应该是一个无效命令,因为./one_command只能在特殊文件夹包含文件 one_command 中工作。

我可以通过运行获得完整的命令ps -ef -q $(pgrep -P 123)

wmctl有没有一种直接的方法可以通过and获得 Onlyoffice 的完整命令ps

如果有更好的方法来获取 X 应用程序的所有命令,请告诉我。谢谢。

0 投票
1 回答
56 浏览

bash - (Xubuntu) 如何在窗口标题中显示微调器动画?

使用 bash,我一直在尝试在 Nemo(3.8.6)文件管理器的窗口装饰 xfwm4(窗口标题旁边)中添加和显示一个简单的微调器动画。我正在使用带有基本 Greybird 主题的 Xubuntu 18.04.2 LTS。

这是我尝试过的。我安装了在这个地址找到的脚本:

https://askubuntu.com/questions/634034/display-the-current-date-time-in-the-windows-title/634158#634158

完美运行。这是我得到的:

https://forum.ubuntu-fr.org/viewtopic.php?pid=22115889#p22115889

https://www.zupimages.net/up/19/26/owfa.png

在此屏幕截图中,我想在时钟旁边显示微调器。然后我尝试在上面的脚本中加入一个简单的微调器。我用这个:

窗口装饰脚本:

此脚本在控制台中正确显示微调器,但:

  • 从不在窗口的标题中
  • 微调器显示在插入光标内(如何删除它,以便只保留微调器?)

感谢您的时间和帮助!

0 投票
1 回答
63 浏览

bash - bash:在活动窗口标题中显示简单的正弦动画

我正在使用带有基本 Greybird 主题的 Xubuntu 18.04.2 LTS。我的文件管理器是 Nemo (3.8.6),窗口装饰管理器是 xfwm4。

感谢这个 bash script1(下面的代码和源代码https://forum.ubuntu-fr.org/viewtopic.php?pid=22123363#p22123363),我可以在控制台窗口上显示一个简单的正弦曲线。此动画还会在调整窗口大小时自动适应:

[脚本1]

我现在想在控制台以外的窗口上显示这个简单的正弦曲线。甚至可以在活动窗口的装饰中做到这一点,例如在窗口标题旁边?

我的第一个想法是在下面的 script2 中使用 wmctrl,但我没能做到。你觉得你能帮上忙吗?谢谢!

[脚本2]

感谢您的时间和帮助!

0 投票
0 回答
50 浏览

python - 按名称从一个工作区移动到其他工作区窗口

我想将应用程序窗口从一个工作区移动到另一个工作区。

我想要的是

如果我有两个工作区workspace1并且workspace2

workspace1
旧测试1 旧测试2 新测试3

workspace2
新测试1 新测试2

到目前为止我做了什么

我使用过wmctrl并且工作正常,但我必须指定要移动的窗口的全名。我可以new_test3搬到workspace2.

但是我想做一些更聪明的事情,而不是必须把我想使用正则表达式的全名(类似wmctrl *new*),所以所有与正则表达式匹配的窗口被移动到工作区2。

你知道是否有办法做到这一点?

非常感谢

0 投票
0 回答
107 浏览

linux - 通过弹出窗口中的字符串识别弹出窗口ID?

在 Firefox 中,重新加载一些选项卡后,我会看到一个未命名的弹出窗口;因此我无法使用xdotoolwmctrl(据我所知)识别窗口ID。

在 Linux 命令行上,有没有办法获取这些窗口 ID,例如通过匹配该弹出窗口中的字符串的一部分?

0 投票
1 回答
157 浏览

python - Tkinter 不会将窗口与 pid 关联

我正在使用来尝试查找与GUI 窗口wmctrl -lp关联的进程 ID 。tkinter但是,看起来 tkinter 窗口与 pid 无关。

使用xprop,看起来该_NET_WM_PID属性未设置。

但是,我找不到任何方法来tkinter自动设置它,或者从我的 python 代码中显式设置它。

上下文是我有一个脚本来查找特定进程或其任何子进程“拥有”的任何窗口。但是该脚本找不到 tkinter 窗口,因为该脚本不认为它与创建窗口的 python 脚本的 pid 相关联。

非常感谢任何帮助。

编辑:进一步的怪异

似乎只有当我从 bash 脚本中运行 python 脚本时才会出现这个问题。

因此,如果我有一个 bash 脚本gui_from_bash_script.sh,上面写着:

...然后我运行./gui_from_bash_script.sh,然后我得到了问题。

如果我只是python my_gui.py从终端运行,我不会遇到问题。

0 投票
0 回答
187 浏览

xmonad - 如何通过 bash 命令/文件从 Xmonad 获取当前工作空间信息?

我需要来自 Xmonad 的有关当前工作区/屏幕的信息。我需要它在外部的 bash 脚本中,以便我可以根据我所在的当前工作区执行一些功能。

我在网上搜索,似乎 dynamicLog 是做到这一点的方法之一。但我无法弄清楚如何将信息从 Xmonad 发送到文件中。我想要做的是让 Xmonad 在某个文件更改时使用当前工作空间信息更新它。

这可以通过 DynamicLogger 完成吗?

我当前的 Xmonad dynamicLog 部分如下:

或者,在网上查看另一种方法,我尝试了类似的方法

...用于实用程序 wmctrl 但它不起作用。它的输出就像 -

感谢您对上述任何内容的任何帮助。

谢谢

0 投票
0 回答
47 浏览

python - 使用 `python-xlib` 模拟 `xprop` 和 `wmctrl` 用于窗口 `above` 的函数

我是新手python-xlib。一年来我一直在使用gtk, gdk,xdotool和. 现在我想通过.wmctrlxpropxlib

我有这个功能我想转换但不知道如何转换成xlib命令。