Posso colocar várias janelas do X em uma única janela maior?

6

Diga que meu processo principal gera algumas janelas. Eu gostaria de agrupá-los em uma janela principal de líder de sessão (um minidesktop just-the-frame para o grupo de janela se você quiser). O que posso fazer para conseguir isso?

Mais detalhes:

Eu ando brincando com zenity , e estou curioso para saber se meu roteiro poderia crie várias janelas zenity (ou outras) e agrupe-as em uma janela principal, o que me permite mover ou fechar todas as subjanelas geradas de uma só vez.

    
por PSkocik 19.04.2015 / 08:29

1 resposta

5

Você pode configurar um servidor X dentro de um servidor X usando Xephyr . Você pode criar uma janela na tela que exibe o conteúdo de um novo display X:

Xephyr :1

Para começar, isso estará vazio. Você pode iniciar um aplicativo ou aplicativos apontados para essa nova exibição:

DISPLAY=:1 some-application

Todas as janelas que surgem daquele aplicativo serão exibidas dentro da janela do Xephyr.

Xnest é uma versão mais antiga da mesma ideia, que não suporta o mesmo intervalo de extensões X, mas é mais amplamente disponível. Você o lança da mesma maneira: Xnest :1 . Ambos os programas suportam várias opções de linha de comando para configurá-los mais especificamente.

Em ambos os casos, você provavelmente desejará iniciar um gerenciador de janelas dentro do servidor aninhado, porque, caso contrário, suas opções de interação serão bastante limitadas. Você pode iniciar outra instância do seu gerenciador de janelas atual ou usar uma instância diferente, da mesma forma que inicia o aplicativo: DISPLAY=:1 twm & .

Você pode fazer quantas subdelyss quiser, usando um número diferente a cada vez. É possível escrever tudo:

Xephyr :1 &
export DISPLAY=:1
some-application &
some-other-application &

Quando você fecha a janela do Xephyr, todos os aplicativos que tentam usá-la receberão um erro X e (geralmente) terminarão com algo como:

Fatal IO error 11 (Resource temporarily unavailable) on X server :1

Esta é uma saída de erro, como se você tivesse Ctrl-Alt-Backspace fora do seu servidor X principal, mas terminasse tudo de uma vez.

    
por 19.04.2015 / 09:05