Ah, a solução foi relativamente simples, em vez de executar
$ startx /usr/bin/xterm -- :1
Rodando
$ startx /usr/bin/xterm -- :1 vt$(tty | sed -e "s:/dev/tty::")
Irá impedir a quebra do X quando mudar de TTYs.
Eu sempre fui curioso sobre uma idiossincrasia do Xorg que parece acontecer em todas as máquinas que eu experimentei; sempre que eu inicio uma nova instância X em um TTY usando startx manualmente (isto é, sem o auxílio de um gerenciador de exibição), mudo para outro TTY, e então tento retornar ao meu TTY original, quebra de framebuffer do X e meu shell original com X ainda em execução. Bater ^ C ou ^ D irá parar X, mas terei que executar startx / xinit novamente, perdendo minha sessão original. Ou seja:
CTRL+ALT+F1
$ startx /usr/bin/xterm -- :1
CTRL+ALT+F7
CTRL+ALT+F1
Quebrará meu buffer X no TTY1. Parece que os aplicativos que dependem do Wayland / Mir para composição lidam com TTY como eu esperava, mas para aplicativos que usam X que não são iniciados com um gerenciador de exibição como LightDM, não sendo possível retornar à sessão X eu iniciei manualmente é uma dor real. Existe alguma maneira de corrigir este problema para que eu possa voltar para a minha sessão X quando eu mudar TTYs?
Ah, a solução foi relativamente simples, em vez de executar
$ startx /usr/bin/xterm -- :1
Rodando
$ startx /usr/bin/xterm -- :1 vt$(tty | sed -e "s:/dev/tty::")
Irá impedir a quebra do X quando mudar de TTYs.
Tags xorg 12.04 tty framebuffer