Alternativas ao xmove, xpra

11

Um pouco de informações básicas: estou lidando com um software que faz parte de um sistema maior. A maioria das partes do sistema possui um processo em segundo plano que é executado continuamente e uma GUI que pode ser aberta quando essa parte da funcionalidade é necessária. A parte específica do software que está me causando problemas foi escrita como um único programa que contém a GUI e o processamento em segundo plano. Isso significa que a GUI deve estar sempre em execução, caso contrário, o processamento associado não poderá ocorrer. Isso não é desejado (por vários motivos).

Como solução alternativa, examinei vários pseudoservers X que me permitirão mostrar / ocultar a janela da GUI conforme apropriado. Os três que eu olhei especificamente são xmove , ximove e xpra

O xmove é realmente antigo (não foi desenvolvido desde novembro de 1997) e não suporta gráficos de 24 bits, o que não é inicial.

Eu também encontrei algo chamado ximove . O autor, Mark C. Ballew iniciou com a intenção de aprimorar o xmove (XIMove® Xmove Improved). Mas, olhando para o site dele, parece que a última atualização de status foi em 16/8/04 e está vinculada a http://forum.ximove.com/, que parece não existir mais.

O xpra parece ser a opção mais promissora, mas não funcionou como esperado. Eu recebo muitos erros reclamando sobre o "Cairo", algo que não é coberto em nenhum dos arquivos xpra que discutem dependências ... mesmo assim, o programa funciona para aplicativos pequenos, como um navegador da web. Porém, quando tento usá-lo no meu programa com problemas, recebo muito mais erros (erros de cairo e outros). e o xpra e o próprio aplicativo parecem falhar.

Estou tentando experimentar uma instalação limpa da versão mais recente do xpra, mas estou imaginando se algum de vocês tem alguma ideia de outros aplicativos X pseudoserver que eu deveria tentar.

demarcmj
fonte
1
você só precisa ocultar janelas ou precisa executar seu programa sem o X? Você tentou o Xvfb?
Não preciso executá-lo sem o X, embora isso funcione. Eu só preciso de uma maneira de executá-lo sem estar visível, para que quando o usuário clicar em um botão em uma GUI de wrapper, ele pareça estar iniciando esse aplicativo, mas na verdade ele estará apenas visível. Eu não tentei o Xcfb, mas examinei-o brevemente quando vi sua resposta e não tenho certeza de que é o que estou procurando ... não parece que, depois de iniciar o programa sem o X, eu pode anexá-lo a um Xserver real quando eu quiser. Você tem alguma experiência com isso para me dizer que não é esse o caso?
2
Xvfb é um servidor virtual de buffer de quadros X. Você pode iniciá-lo Xvfb :1e iniciar seu programa com DISPLAY=:1 yourprogram. Dessa forma, você não verá nenhuma interface de usuário na sua sessão X e ainda poderá interagir com a interface do programa, por exemplo, iniciando o servidor VNC conectado à sessão Xvfb. Outra maneira de ocultar a interface do usuário pode ser a -geometryopção de linha de comando, que geralmente é analisada por programas baseados em xlib.
O problema é que, se eu iniciar o programa dessa maneira, nunca haverá como torná-lo visível sem matá-lo e reiniciá-lo. Por outro lado, pseudoservidores permitem que você falsifique um XServer quando não precisar dele, mas depois avance para uma exibição real quando desejar. Posso fazer isso com o Xcfb? Não parece que posso (mas não sou especialista). Parece uma ótima ferramenta se eu sempre a quiser oculta, mas não se precisar vê-la algumas vezes.
3
Nota: existem várias versões de xpraflutuação; os fornecidos na maioria dos repositórios de distribuição estão desatualizados. Experimente a versão mais recente do xpra.org
Piskvor saiu do prédio

Respostas:

1

O que Piskvor disse nos comentários. Experimente uma versão mais recente do xpra. Brinque com suas configurações, desative coisas que você não precisa, como encaminhamento de áudio. Pode ser feito para funcionar bem.

krupan
fonte
0

Você pode tentar usar um servidor VNC como Xvnc , TightVNC ou TigerVNC .

Você também pode usar o VirtualBox (pelo menos a versão 5), instalar um sistema operacional e seu programa em uma máquina virtual. Se você iniciar sua VM no modo "destacável", poderá fechar todas as janelas do VirtualBox e manter a VM em execução. Em seguida, você pode reiniciar a GUI do VirtualBox e reconectar à VM.

johnLate
fonte