出于测试目的,我使用了Xvfb。 今天,我想用wmctrl命令做一些测试。我在python中做了一些测试:
display = ":99"
pXvfb = subprocess.Popen(["Xvfb", display, "-screen", "0", "1024x768x24"])
# wait that xvfb is up
time.sleep(1)
os.environ["DISPLAY"] = display
p = subprocess.Popen( ["wmctrl", "-l" ] )
p.wait()
pXvfb.terminate()
在这个测试中,wmctrl说:
Cannot get client list properties.
(_NET_CLIENT_LIST or _WIN_CLIENT_LIST)
我认为,这是正常的,因为我没有任何窗口管理器附加到我的Xvfb。
如何启动Windows管理器(Enlighenment should be good for my case
)以仅管理Xvfb?
答案 0 :(得分:0)
经过几天的工作,我可以自己回答。解决方案尽可能简单:只需使用变量DISPLAY设置启动Windows管理器即可。所以在我的python脚本中,我只是这样做:
display = ":99"
pXvfb = subprocess.Popen(["Xvfb", display, "-screen", "0", "1024x768x24"])
# wait that xvfb is up
time.sleep(1)
os.environ["DISPLAY"] = display
# start windows manager
pWM = subprocess.Popen( ["/usr/bin/enlightenment_start", ] )
p = subprocess.Popen( ["wmctrl", "-l" ] )
p.wait()
pXvfb.terminate()