如何获得终端代码"wmctrl -m“的输出?
$ wmctrl -m
Name: GNOME Shell
Class: N/A
PID: N/A
Window manager's "showing the desktop" mode: ON在python代码中?我不知道如何在短时间内调用这个命令。目的是,我想得到模式的值:ON或mode:OFF。
现在我只进口wmctrl
import wmctrl后来怎么样了?
发布于 2013-07-30 09:02:29
您可以使用子进程样式的分叉方式(实质上运行命令并解析输出),也可以正确地使用wmctrl封装:
In [1]: from wmctrl import Window
In [2]: Window.get_active()
Out[2]: Window(id='0x07000062', desktop=0, pid=1878, x=657, y=299, w=1042, h=769, wm_class='terminator.Terminator', host='bert', wm_name='oli@bert: ~', wm_window_role='')文档没有太多,所以如果您想了解更多的话,我建议您运行help(Window) .或者只是看看这个类的来源。
发布于 2013-07-30 09:24:30
同时,我想出了如何得到输出:
import wmctrl
import subprocess as s
p=s.Popen(["wmctrl","-m"], stdout=s.PIPE)
out, err = p.communicate()
print(out)
if "mode: ON" in str(out):
print("Desktop is shown")
if "mode: OFF" in str(out):
print("Desktop is not shown")现在发生了另一件奇怪的事情,尝试它(这段代码运行):
运行它,观察打印输出。
然后显示桌面。
再跑一次。
输出更改为“显示桌面”,正如预期的那样。
在启动程序中再次单击“显示桌面”图标,然后再次运行代码。
您可以看到窗口,因此没有显示桌面,但输出仍然是“桌面显示”。所以这有点没用..。
https://askubuntu.com/questions/326411
复制相似问题