Cómo mantener las ventanas divididas después de separar / volver a conectar la pantalla GNU

35

Yo uso la pantalla en un servidor Ubuntu.

Tengo mi pantalla dividida en cuatro regiones, cada una de las cuales muestra una ventana diferente.

El problema es cuando desconecto (o quizás vuelvo a conectar) y obtengo las cuatro ventanas pero solo una región y tengo que volver a hacer C-a Stodo.

¿Cómo puedo mantener mi pantalla dividida cuando vuelvo a conectarla?

Cesar
fuente

Respuestas:

15

Desde la pantalla Preguntas frecuentes :

(La pregunta implícita es: "¿Cómo mantengo mis ventanas divididas sobre una separación?")

La respuesta corta es que no puedes. La respuesta más larga es que puedes fingirlo.

Las divisiones son una propiedad de su pantalla. El proceso que administra su sesión de pantalla realmente no los conoce; solo el proceso único que muestra la sesión lo hace. Por lo tanto, la sesión de pantalla no puede recordar las divisiones porque no las conoce, y una vez que se separa, el proceso que sí las conocía ha finalizado.

El truco es usar sesiones de pantalla anidadas. Inicie una sesión y dele una secuencia de escape que no usará mucho (o simplemente deshabilite su carácter de escape por completo). Vincula tu secuencia de teclas de desconexión habitual a esta sesión de pantalla. Ahora, inicie o adjunte a su sesión de pantalla principal. Todo su trabajo se realizará en la sesión interna, y puede dividir su pantalla. Sin embargo, cuando se separe, será la sesión externa la que se separe, por lo que se conservarán sus divisiones en la sesión interna.

Suponiendo que use el carácter de escape predeterminado, Ca, su screenrc alternativo debe contener:

escape ""
bindkey ^ad detach
Darren Hall
fuente
1
Después de haber pasado el último año o dos configurando y utilizando en gran medida sesiones de pantalla anidadas, lo recomiendo. Con el tiempo, el dolor de la complejidad adicional disminuye, mientras que la utilidad de la configuración más flexible aumenta.
funroll
13
¡La nueva característica, es decir layout, invalida esta respuesta!
Kadir
Visite superuser.com/a/516822/113250 para conocer la "nueva" función de diseño integrada
Thiago Figueiro,
67

Descubrí que si ya tiene algunas ventanas configuradas y desea guardarlas, puede hacer esto:

Ctrl-a
:
layout save default

Luego, cuando se separa y vuelve a adjuntar a la sesión, se debe restaurar el diseño.

Funciona con Screen versión 4.00.03jw4 (FAU) 2-mayo-06 (Ubuntu 12.04 y 12.10)

También es posible que desee crear una sesión de demonio como tal:

$> screen -dmSU mysession

y luego tenerlo siempre disponible llamando a:

$> screen -r mysession
Troya
fuente
55
Mucho mejor solución. Esta debería ser la respuesta aceptada. (Sé por qué siempre me desplazo hacia abajo XD)
BrainStone
1
Desafortunadamente, parece que la versión actual en redhat screen 4.00.03 (FAU) 23-Oct-06no tiene esta característica. ¡Pero debería!
David Dombrowsky
Esta es una mejor respuesta, pero hay una respuesta aún mejor a continuación que guarda automáticamente el diseño cada vez que se usa .screenrc. Vota esa respuesta
Mark Lakata
14

En la versión git, layoutse introdujo una nueva característica .

desde la pantalla (1):

diseño nuevo [título]

Crea un nuevo diseño. La pantalla cambiará a una región completa y cambiará a la ventana en blanco. A partir de aquí, construye las regiones y las ventanas que muestran como desee. El nuevo diseño se numerará con el número entero más pequeño disponible, comenzando por cero. Opcionalmente, puede asignar un título a su nuevo diseño. De lo contrario, tendrá un título predeterminado de "diseño". Siempre puede cambiar el título más adelante utilizando el título de diseño del comando.

incluso si separó la sesión de pantalla, el diseño recuerda cómo se dividió la región.

por ejemplo, la pantalla comienza con la siguiente configuración.

layout new
split
split -v
screen 0
focus next
screen 1
focus bottom
screen 2
detach

Y vuelva a adjuntar esta sesión, podrá volver al diseño (último seleccionado) que tiene 3 regiones divididas.

yoshikaw
fuente
Alguien sabe qué presentaciones se requieren para obtener esto (estoy lo suficientemente nervioso como para aplicar parches, pero nunca ejecutaré el código de troncal (tengo mal karma: P))
borrel
7

Simplemente agregue esta línea a su ~/.screenrc:

# This line makes Detach and Re-attach without losing the regions/windows layout
layout save default
Rafael Quirino Castro
fuente
6

Parece que tmux sí. Este es un nuevo proyecto multiplexor, inspirado en la pantalla, pero codificado desde cero y bajo una licencia BSD.

(Lo siento si mi inglés es incómodo de leer: - °)

Pantoufle
fuente
-1

Recientemente leí a todo el hombre de la pantalla, y no hay una forma común de hacerlo si la pantalla en sí no puede recordarlo automáticamente.

Kolypto
fuente