Mudando para outro TTY após executar o startx e retornar os intervalos Xorg

8

Eu sempre fiquei curioso sobre uma idiossincrasia do Xorg que parece acontecer em todas as máquinas em que eu tentei; sempre que inicio uma nova instância X em um TTY usando startx manualmente (ou seja, sem a ajuda de um gerenciador de exibição), alterno para outro TTY e, em seguida, tento retornar ao meu TTY original, o framebuffer de X é interrompido e eu caí para meu shell original com o X ainda em execução. Bater ^ C ou D ^ vai parar X, mas eu vou ter que executar startx / xinit novamente, perdendo a sessão original. Ou seja:

CTRL+ALT+F1
$ startx /usr/bin/xterm -- :1
CTRL+ALT+F7
CTRL+ALT+F1

Irá quebrar meu buffer X no TTY1. Parece que os aplicativos que dependem do Wayland / Mir para composição manipulam a comutação TTY como eu esperaria, mas para aplicativos que usam X que não são iniciados com um gerenciador de exibição como o LightDM, não podendo retornar à sessão do X que iniciei manualmente é uma dor real. Existe alguma maneira de corrigir esse problema para que eu possa voltar à minha sessão X ao trocar de TTYs?

joshumax
fonte
Eu não entendo Você não tem X em tty1. Também ctrl-alt-f7 é tty7, onde é executado o servidor X na maior parte do tempo. Você precisa editar sua postagem para torná-la mais clara. Se você estiver usando o 12.04, é certo que também não está usando o Wayland / Mir. Nem mesmo em 15.04.
SolsTiCe
@solsTiCe Não houve uma sessão X em tty1 até que eu corri startx para criar um em tty1 ...
joshumax
@solsTiCe Acho que não vejo a ambiguidade na minha pergunta, você pode elaborar o que pode não ser claro?
Joshumax
1
@solsTiCe Certamente não sou, estou apenas perguntando o que você acha incerto na minha pergunta para que eu possa corrigi-la.
Joshumax # 03/15
Para questões relacionadas, consulte askubuntu.com/questions/221762 e askubuntu.com/questions/443418 .
JdeBP

Respostas:

2

Ah, a solução era relativamente simples, em vez de executar

$ startx /usr/bin/xterm -- :1

Corrida

$ startx /usr/bin/xterm -- :1 vt$(tty | sed -e "s:/dev/tty::")

Impedirá que o X quebre quando troco de TTYs.

joshumax
fonte
... que indica que ele realmente não "break", mas simplesmente acabou em um terminal virtual diferente, o primeiro terminal virtual disponível , que poderia ter sido qualquer coisa, desde tty2que tty63dependendo de como o sistema passa a ser configurado quando se trata de virtual uso do terminal. Claro que tty1não estava disponível, pois você tinha um shell de login em execução no momento.
JdeBP
@JdeBP Conversei com o pessoal do Xorg sobre isso, e parece não ter nada a ver com a seleção automática de terminais disponíveis - mas, ao passar um parâmetro de terminal virtual para startx, o startx colocará o X em um "estado persistente" "(como o startx, por padrão, lança uma sessão X não persistente na vt atual, se estiver disponível, e falha imediatamente se não puder fazê-lo.)
joshumax
-1 Acho que há outra maneira de fazer isso sem problemas. Eu acho que não é assim que você faz.
Léo Léopold Hertz # 14/15
1
@ Masi Talvez você queira explicar por que você acha que esse método não é tão bom e explicar sua melhor maneira de alcançá-lo? Isso seria muito mais casual do que essa ambiguidade.
Seth