Alternative a xmove, xpra


11

Un po 'di informazioni di base: ho a che fare con un software che fa parte di un sistema più grande. La maggior parte dei pezzi del sistema ha un processo in background che viene eseguito continuamente e una GUI che può essere aperta quando è necessario quel pezzo di funzionalità. Il particolare software che mi sta causando problemi è stato invece scritto come un singolo programma contenente sia la GUI che l'elaborazione in background. Ciò significa che la GUI deve essere sempre in esecuzione, altrimenti l'elaborazione associata non può avvenire. Questo non è desiderato (per una serie di motivi).

Per ovviare al problema, ho esaminato vari pseudoserver X che mi consentiranno di mostrare / nascondere la finestra della GUI in modo appropriato. I tre che ho visto in particolare sono xmove , ximove e xpra

xmove è davvero vecchio (non è stato sviluppato dal novembre 1997) e non supporta la grafica a 24 bit, il che non è un antipasto.

Ho anche trovato qualcosa chiamato ximove . L'autore, Mark C. Ballew, ha iniziato con l'intento di migliorare su xmove (XIMove≡Xmove Improved). Ma, guardando il suo sito web sembra che l'ultimo aggiornamento dello stato sia stato il 16/8/04, e si collega a http://forum.ximove.com/ che non sembra più esistere.

xpra sembra l'opzione più promettente, ma non ha ancora funzionato come sperato. Ricevo molti errori che si lamentano di "Cairo", che non è coperto da nessuno dei file xpra che discutono di dipendenze ... tuttavia il programma funziona per piccole applicazioni, come un browser web. Quando provo ad usarlo per il mio programma problematico, ottengo molti più errori (errori cairo e altri). e sia xpra che l'applicazione stessa sembrano andare in crash.

Sto cercando di provare un'installazione pulita della versione più recente di xpra, ma mi chiedo se qualcuno di voi ragazzi abbia qualche idea su alcune altre applicazioni pseudoserver X che dovrei provare.


1
devi solo nascondere Windows o devi essere in grado di eseguire il tuo programma senza X? Hai provato Xvfb?

Non ho bisogno di eseguirlo senza X, anche se funzionerebbe. Ho solo bisogno di un modo per eseguirlo senza essere visibile in modo che quando l'utente fa clic su un pulsante in una GUI del wrapper, sembrerà che stia avviando questa app, ma in realtà la renderà visibile. Non ho provato Xcfb, ma ho esaminato brevemente quando ho visto la tua risposta e non sono sicuro che sia quello che sto cercando ... non sembra dopo aver avviato il programma senza X, che ho posso mai collegarlo a un vero Xserver quando voglio. Hai qualche esperienza con questo per dirmi che non è il caso?

2
Xvfb è un server X framebuffer virtuale. Puoi avviarlo con Xvfb :1e avviare il tuo programma con DISPLAY=:1 yourprogram. In questo modo non vedrai alcuna UI nella tua sessione X e puoi comunque interagire con l'interfaccia utente del tuo programma, ad esempio avviando il server VNC collegato alla sessione Xvfb. Un altro modo per nascondere l'interfaccia utente potrebbe essere l' -geometryopzione della riga di comando che di solito viene analizzata dai programmi basati su xlib.

Il problema è che se avvio il programma in quel modo, non c'è modo di renderlo visibile senza ucciderlo e riavviarlo. Gli pseudoservers, d'altra parte, ti consentono di falsificare un XServer quando non ne hai bisogno, ma poi di inoltrarlo su un display reale quando lo desideri. Posso farlo con Xcfb? Non mi sembra di poterlo fare (ma non sono un esperto). Sembra un ottimo strumento se lo voglio sempre nascosto, ma non se ho bisogno di vederlo a volte.

3
Nota: ci sono varie versioni di xprafloating in giro; quelli forniti nella maggior parte dei repository di distro sono tristemente obsoleti. Prova la versione successiva da xpra.org
Piskvor ha lasciato l'edificio il

Risposte:


1

Ciò che Piskvor ha detto nei commenti. Prova una versione più recente di xpra. Gioca con le sue impostazioni, disabilita le cose che non ti servono come l'inoltro audio. Può essere fatto per funzionare bene.


0

Puoi provare a utilizzare un server VNC come Xvnc , TightVNC o TigerVNC .

Puoi anche usare VirtualBox (almeno la versione 5), installare un sistema operativo e il tuo programma in una macchina virtuale. Se avvii la VM in modalità "staccabile", puoi chiudere tutte le finestre di VirtualBox e mantenere la VM in esecuzione. È quindi possibile riavviare la GUI di VirtualBox e ricollegarla alla VM.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.