Alternatywy dla xmove, xpra

11

Trochę podstawowych informacji: mam do czynienia z oprogramowaniem, które jest częścią większego systemu. Większość elementów systemu ma ciągły proces działający w tle oraz graficzny interfejs użytkownika, który można otworzyć, gdy potrzebny jest ten element funkcjonalności. Konkretne oprogramowanie, które sprawia mi problemy, zostało napisane jako pojedynczy program zawierający zarówno GUI, jak i przetwarzanie w tle. Oznacza to, że GUI musi zawsze działać, w przeciwnym razie powiązane przetwarzanie nie będzie miało miejsca. Nie jest to pożądane (z wielu powodów).

Aby obejść ten problem, zajrzałem do różnych pseudoserwerów X, które pozwolą mi odpowiednio pokazać / ukryć okno GUI. Trzy, na które patrzyłem, to w szczególności xmove , ximove i xpra

xmove jest naprawdę stary (nie został opracowany od listopada 1997 r.) i nie obsługuje grafiki 24-bitowej, co nie jest starterem.

Znalazłem też coś o nazwie ximove . Autor Mark C. Ballew rozpoczął go z zamiarem ulepszenia xmove (XIMove≡Xmove Improved). Ale patrząc na jego stronę internetową wygląda na to, że ostatnia aktualizacja statusu to 8/16/04 i zawiera link do http://forum.ximove.com/, który już nie istnieje.

xpra wydaje się najbardziej obiecującą opcją, ale nie działała tak, jak się spodziewano. Dostaję wiele błędów narzekających na „Kair”, który nie jest objęty żadnym z plików xpra omawiających zależności ... niemniej jednak program działa w przypadku małych aplikacji, takich jak przeglądarka internetowa. Kiedy próbuję użyć go w moim programie problemowym, otrzymuję o wiele więcej błędów (błędy Cairo i inne). a zarówno xpra, jak i sama aplikacja wydają się zawieszać.

Próbuję wypróbować czystą instalację najnowszej wersji Xpry, ale zastanawiam się, czy któryś z was ma wgląd w inne aplikacje pseudoservera X, które powinienem wypróbować.

demarcmj
źródło
1
czy po prostu musisz ukryć okna lub uruchomić program bez X? Próbowałeś Xvfb?
Nie muszę go uruchamiać bez X, chociaż to by działało. Potrzebuję tylko sposobu, aby go uruchomić, nie będąc widocznym, aby użytkownik kliknął przycisk w interfejsie GUI opakowania, pojawi się, jakby uruchamiał tę aplikację, ale tak naprawdę będzie to po prostu widoczne. Nie próbowałem Xcfb, ale krótko spojrzałem na to, kiedy zobaczyłem twoją odpowiedź i nie jestem pewien, czy to jest to, czego szukam ... to nie wygląda po uruchomieniu programu bez X, że ja mogę kiedykolwiek dołączyć go do prawdziwego Xservera, kiedy chcę. Czy masz jakieś doświadczenie, aby powiedzieć mi, że tak nie jest?
2
Xvfb jest wirtualnym serwerem X bufora ramki. Możesz go Xvfb :1uruchomić i uruchomić swój program za pomocą DISPLAY=:1 yourprogram. W ten sposób nie zobaczysz żadnego interfejsu użytkownika w sesji X i nadal będziesz mógł wchodzić w interakcje z interfejsem programu, na przykład uruchamiając serwer VNC podłączony do sesji Xvfb. Innym sposobem na ukrycie interfejsu użytkownika może być -geometryopcja wiersza poleceń, która jest zwykle analizowana przez programy oparte na xlib.
Problem polega na tym, że jeśli uruchomię program w ten sposób, nie będzie sposobu, aby uczynić go widocznym bez zabicia go przy ponownym uruchomieniu. Pseudoserwery pozwalają natomiast sfałszować serwer XServer, gdy go nie potrzebujesz, a następnie przejść do prawdziwego ekranu, kiedy chcesz. Czy mogę to zrobić za pomocą Xcfb? Nie wydaje mi się, żebym mógł (ale nie jestem ekspertem). Wydaje się to doskonałym narzędziem, jeśli zawsze chcę to ukryć, ale nie, jeśli muszę to czasem widzieć.
3
Uwaga: istnieją różne wersje xpralatania; te dostarczone w większości repozytoriów dystrybucji są bardzo nieaktualne. Wypróbuj późniejszą wersję z xpra.org
Piskvor opuścił budynek

Odpowiedzi:

1

Co Piskvor powiedział w komentarzach. Wypróbuj nowszą wersję Xpra. Graj z jego ustawieniami, wyłącz rzeczy, których nie potrzebujesz, np. Przekazywanie dźwięku. Można sprawić, aby działał dobrze.

krupan
źródło
0

Możesz spróbować użyć serwera VNC, takiego jak Xvnc , TightVNC lub TigerVNC .

Możesz także użyć VirtualBox (co najmniej wersja 5), ​​zainstalować system operacyjny i swój program na maszynie wirtualnej. Jeśli uruchomisz maszynę wirtualną w trybie „odłączalnym”, możesz zamknąć wszystkie okna VirtualBox i utrzymać maszynę wirtualną w działaniu. Następnie możesz ponownie uruchomić GUI VirtualBox i ponownie podłączyć się do maszyny wirtualnej.

johnLate
źródło