2012-01-17 1 views
1

У меня есть скрипт python, который каждую минуту запускает новый экземпляр в новом окне терминала с помощью xterm (см. Ниже). Я запускаю solaris с рабочим столом Java, который имеет несколько рабочих столов (?), Если работает на другом рабочем столе, появляется новый терминал, когда я хочу, чтобы он отображался на рабочем столе, где сценарий запущен. Я уверен, что ответ будет командой xterm, но не сможет найти его нигде!Нисходящий терминал появляется на другом рабочем столе

import sys, os, subprocess, time 

i = 1 

args = ['xterm', '-e', 'python2.6', 'script.py'] 

x = int(sys.argv[1]) 

while i <= x: 
     subprocess.Popen(args) 
     i += 1 
     time.sleep(60) 

ответ

0

У меня возникли проблемы отслеживания вниз ссылки на лучшие объяснения, но это мое понимание того, что протокол X не делает его легким для оконного менеджера, чтобы определить, какой рабочий стол должен получить новое окно, когда команда» «для запуска нового окна происходит извне диспетчера окон.

Например, ваш оконный менеджер может предоставить панель инструментов, которая запускает программы и знает, на каком рабочем столе она находится, и затем может сообщить диспетчеру окна, какой рабочий стол будет использоваться при визуализации нового клиентского окна. Но если какое-то другое приложение в системе запустит окно, не зная рабочего стола и не зная механизма связи с диспетчером окон, какое окно ожидать и какой рабочий стол его использовать, он просто перейдет на «активный» рабочий стол.

Некоторые оконные менеджеры позволяют указать некоторые подсказки для класса или имени окна. (Run xprop(1), нажмите на клиенте, чтобы увидеть некоторые из оконного менеджера подсказки доступны.)

Например:

Если ваш оконный менеджер упрощает сопоставление новых клиентских окон с разными свойствами и перемещает их по вашему желанию, тогда вы можете использовать xterm(1)-class параметр командной строки для переопределения класса ресурсов, если имя окна -e недостаточно для ваших нужд.