Альтернативы xmove, xpra

11

Немного справочной информации: я имею дело с программным обеспечением, которое является частью большой системы. У большинства частей системы есть фоновый процесс, который выполняется непрерывно, и графический интерфейс, который может быть открыт, когда эта часть функциональности необходима. Конкретная часть программного обеспечения, которая вызывает у меня проблемы, была написана как отдельная программа, содержащая как графический интерфейс, так и фоновую обработку. Это означает, что GUI должен всегда работать, иначе связанная обработка не может быть выполнена. Это нежелательно (по ряду причин).

В качестве обходного пути я рассмотрел различные псевдосерверы X, которые позволяют мне отображать / скрывать окно графического интерфейса в зависимости от ситуации. Три я смотрел на специально являются XMove , ximove и xpra

xmove действительно старый (не разрабатывался с ноября 1997 года) и не поддерживает 24-битную графику, что не является началом.

Я также нашел что-то под названием Ximove . Автор, Марк C. Ballew начал его с намерением улучшить xmove (XIMove≡Xmove Improved). Но, глядя на его сайт, похоже, что последнее обновление статуса было 16.08.04, и он ссылается на http://forum.ximove.com/, который, похоже, больше не существует.

xpra кажется наиболее перспективным вариантом, но он не совсем сработал, как хотелось бы. Я получаю много ошибок, жалуясь на «Cairo», который не описан ни в одном из файлов xpra, в которых обсуждаются зависимости ... тем не менее программа работает для небольших приложений, таких как веб-браузер. Когда я пытаюсь использовать его для своей проблемной программы, я получаю гораздо больше ошибок (ошибки Каира и другие). и xpra, и само приложение, похоже, аварийно завершают работу.

Я пытаюсь опробовать чистую установку новейшей версии xpra, но мне интересно, есть ли у кого-нибудь из вас какие-либо идеи о других приложениях псевдосерверов X, которые я должен попробовать.

demarcmj
источник
1
вам просто нужно скрыть окна, или вы должны иметь возможность запускать программу без X? Вы пробовали Xvfb?
Мне не нужно запускать его без X, хотя это сработало бы. Мне просто нужен какой-то способ запустить его, чтобы он не был виден, чтобы, когда пользователь нажимает кнопку в графическом интерфейсе оболочки, оно запускало это приложение, но на самом деле оно просто делало его видимым. Я не пробовал Xcfb, но я кратко изучил его, когда увидел ваш ответ, и я не уверен, что это то, что я ищу ... это не похоже на запуск программы без X, что я я могу подключить его к настоящему Xserver, когда захочу. Есть ли у вас опыт, чтобы сказать мне, что это не так?
2
Xvfb - это виртуальный фреймбуферный X-сервер. Вы можете запустить его с Xvfb :1и запустить вашу программу с DISPLAY=:1 yourprogram. Таким образом, вы не увидите никакого пользовательского интерфейса в своем сеансе X, и вы все равно сможете взаимодействовать с пользовательским интерфейсом вашей программы, например, запустив VNC-сервер, подключенный к сеансу Xvfb. Другим способом скрыть пользовательский интерфейс может быть параметр -geometryкомандной строки, который обычно анализируется программами на основе xlib.
Проблема в том, что если я запустил программу таким образом, то невозможно сделать ее видимой, не убив ее и не перезапустив. Псевдосерверы, с другой стороны, позволяют вам подделывать XServer, когда он вам не нужен, а затем переходить на реальный дисплей, когда вы этого хотите. Могу ли я сделать это с Xcfb? Не похоже, что я могу (но я не эксперт). Мне кажется, что это отличный инструмент, если я всегда хочу, чтобы он был скрыт, но нет, если мне иногда нужно его увидеть.
3
Примечание: есть различные версии xpraплавающих вокруг; те, которые есть в большинстве дистрибутивов, крайне устарели. Попробуйте более позднюю версию с xpra.org
Писквор покинул здание

Ответы:

1

На что Писквор сказал в комментариях. Попробуйте более свежую версию xpra. Поиграйте с его настройками, отключите то, что вам не нужно, например, переадресацию звука. Это может быть сделано, чтобы работать хорошо.

krupan
источник
0

Вы можете попробовать использовать VNC-сервер, такой как Xvnc , TightVNC или TigerVNC .

Вы также можете использовать VirtualBox (как минимум версия 5), установить операционную систему и вашу программу на виртуальной машине. Если вы запускаете виртуальную машину в «отсоединяемом» режиме, вы можете закрыть все окна VirtualBox и сохранить работу виртуальной машины. Затем вы можете перезапустить VirtualBox GUI и подключиться к виртуальной машине.

johnLate
источник