Cambiar a otro TTY después de ejecutar startx y devolver descansos Xorg

8

Siempre he tenido curiosidad por una idiosincrasia de Xorg que parece suceder en cada máquina en la que lo he probado; cada vez que inicio una nueva instancia de X en un TTY usando startx manualmente (es decir, sin la ayuda de un administrador de pantalla), cambio a otro TTY, y luego intento volver a mi TTY original, el framebuffer de X se rompe y se me cae a mi caparazón original con X todavía en ejecución. Al presionar ^ C o ^ D se detendrá X, pero tendré que ejecutar startx / xinit nuevamente, perdiendo mi sesión original. Es decir:

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

Romperá mi búfer X en TTY1. Parece que las aplicaciones que dependen de Wayland / Mir para la composición manejan la conmutación TTY como yo esperaría, pero para las aplicaciones que usan X que no se inician con un administrador de pantalla como LightDM, al no poder volver a la sesión X, comencé manualmente Es un verdadero dolor. ¿Hay alguna forma de corregir este problema para que pueda volver a mi sesión X cuando cambio los TTY?

joshumax
fuente
No entiendo. No tienes X en tty1. También ctrl-alt-f7 es tty7, donde la mayoría de las veces se ejecuta el servidor X. Debes editar tu publicación para que quede más clara. Si está utilizando 12.04, es seguro que tampoco está utilizando Wayland / Mir. Ni siquiera en 15.04.
solSTiCe
@solsTiCe No hubo una sesión X en TTY1 hasta que ejecuté startx para crear una en TTY1 ...
joshumax
@solsTiCe Me temo que no veo la ambigüedad en mi pregunta, ¿puede explicar qué puede ser que no esté claro?
joshumax
1
@solsTiCe Ciertamente no lo estoy, simplemente estoy preguntando lo que no está claro en mi pregunta para poder solucionarlo.
joshumax
Para preguntas relacionadas, consulte askubuntu.com/questions/221762 y askubuntu.com/questions/443418 .
JdeBP

Respuestas:

2

Ah, la solución fue relativamente simple, en lugar de ejecutar

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

Corriendo

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

Evitará que X se rompa cuando cambio los TTY.

joshumax
fuente
... lo que indica que en realidad no "romper", sino simplemente terminó en un terminal virtual diferente, la primera terminal virtual disponible , que podría haber sido cualquier cosa, desde tty2que tty63en función de la forma en que su sistema pasa a ser configurado cuando se trata de Virtual uso terminal. Por supuesto tty1, no estaba disponible, ya que tenía un shell de inicio de sesión ejecutándose en ese momento.
JdeBP
@JdeBP Tuve una conversación con la gente de Xorg sobre esto, y parece que no tiene nada que ver con seleccionar automáticamente los terminales disponibles, sino que al pasar un parámetro de terminal virtual a startx, startx pondrá a X en un "estado persistente". "(como startx por defecto inicia una sesión X no persistente en el vt actual si está disponible, e inmediatamente falla si no puede hacerlo.
joshumax
-1 Creo que hay otra forma de hacerlo sin problemas. Creo que esta no es la forma de hacer lo que haces.
Léo Léopold Hertz 준영
1
@Masi ¿Quizás quiera exponer por qué cree que este método no es tan bueno y explicar su mejor manera de lograrlo? Eso sería mucho más fortuito que esta ambigüedad.
Seth