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.