2016-12-23 18 views
0

Для целей тестирования я использовал Xvfb. Сегодня, я хочу сделать некоторый тест с commmand wmctrl. Я делаю некоторые испытания в питона так:Xvfb - запустить или прикрепить диспетчера окон к xvfb

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.

Как запустить диспетчер окон (Enlighenment should be good for my case), чтобы управлять только Xvfb?

ответ

0

После нескольких дней работ я могу ответить сам. Решение прост как можно проще: просто запустите менеджер окон с помощью переменной DISPLAY. Поэтому в моем сценарии 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()