Pantalla GNU - Restaura una sesión con pantalla dividida


9

Cuando restauro una sesión dividida de screen, solo tengo una sesión de impresión y tengo que volver a configurar el número de sesiones de visualización.

¿Hay otra forma de tener la screenconfiguración original ?

Respuestas:


9

Actualmente esto no es posible sin un hack (ver el siguiente párrafo); sin embargo, las características requeridas para hacer esto ya se han agregado al árbol git actual de la pantalla. En versiones futuras, los comandos "guardar diseño" y "cargar diseño" podrán cargar no solo su último diseño, sino también otros diseños con nombre. Creo que también hay soporte para el ciclismo a través de diseños.

Actualmente, el truco es usar una pantalla dentro de una pantalla. Todo el trabajo y los cambios de diseño se realizan en la pantalla interna, pero luego, cuando se desconecta, se desconecta de la pantalla más externa. Se conservará el diseño de la pantalla interior. Vea lo siguiente para todos los detalles arenosos:

Cuando divido la pantalla y luego la separo, la pantalla olvida la división.

Alternativamente, puede intentar compilar la última versión directamente desde el árbol fuente de la pantalla. Puede hacer esto instalando git y luego ejecutando:

git clone git://git.savannah.gnu.org/screen.git

Luego, siga las instrucciones en src / INSTALL. En general, las instrucciones son:

  1. ./autogen.sh
  2. ./configure
  3. make

Hay una discusión en el archivo INSTALL sobre varios problemas relacionados con la instalación de la pantalla en función de varias preocupaciones. Si sigue esta ruta, su mejor opción es leer todas las instrucciones de INSTALACIÓN y luego continuar.


0

Me encontré con este problema cuando presioné una combinación de teclas incorrecta por accidente, y todas mis pantallas divididas desaparecieron. : ((

Sin embargo, había una salida (humilde) para mí, al menos. Como uso principalmente screencon xtermy bashconchas, lo último que quería tener es lanzar más bashes. (Controlar cosas psreveló que los bashprocesos estaban allí, pero no eran accesibles).

Entonces, la forma de volver a mi configuración habitual era usar Ctrl+ "y agregar uno que ya se está ejecutando en cada ventana dividida, recorriendo los "paneles" con Ctrl+ aTAB. Entonces recuperé las cosas a la normalidad.
Estoy publicando esto especialmente porque me he encontrado con personas que, en su frustración, simplemente presionaron Ctrl+ acy "reinstalaron" sus bashes. ¡Pero esto es una tontería! Con ese método, terminarás con quizás 25 bashprocesos al final del día, con al menos 15 de ellos inaccesibles / invisibles, solo desperdiciando recursos y CPU sin ninguna razón. Así que vuelva a usarlos , en lugar de volver a crearlos .


lo que es ctrl "? Lo intenté, cuando lo volví a conectar, al mirar la única "sesión de visualización" restante, y no hace nada, luego presioné ^a tab, y eso no me llevó a la siguiente, de hecho, lo único que hace es^a n
Brian Thomas

0

Nota sobre la masilla : si está usando masilla, también vaya a la configuración del terminal y verifique para deshabilitar el tamaño del terminal, guarde la configuración y luego reinicie.

Tiene algunas opciones, según lo que parezca lógico para su configuración;

a) Use screen_layout si tiene más de la versión 4.2 y screen -X dump layout

b) Usa el hack si tienes ~ 4.0x http://aperiodic.net/screen/faq#when_i_split_the_display_and_then_detach_screen_forgets_the_split

Este truco es un poco confuso en el sentido de que tiene que notar cuidadosamente que dice no tan claramente que primero debe iniciar una pantalla estándar, antes de iniciar una pantalla con las ediciones .screenrc, porque las sesiones no contendrán datos como ese.

c) Compile y realice la instalación http://savannah.gnu.org/forum/forum.php?forum_id=8293 http://www.linuxfromscratch.org/blfs/view/svn/general/screen.html

d) Aplicar el parche en lugar de reinstalar (ver más abajo)

e) Obtenga el binario para su distribución, y colóquelo en su camino, para que anule el predeterminado del sistema.

hth, porque sé que una opción nunca es suficiente.

Con respecto a d) anterior, ya no pude encontrar el parche, así que lo incluiré aquí.

diff --git a/src/doc/screen.texinfo b/src/doc/screen.texinfo
index 6142de0..6fc8f9e 100644
--- a/src/doc/screen.texinfo
+++ b/src/doc/screen.texinfo
@@ -1040,6 +1040,8 @@ Show or set which layout to reattach to.  @xref{Layout}.
 Remember the organization of a layout.  @xref{Layout}.
 @item layout autosave [@var{on}|@var{off}]
 Show or set the status of layout saving.  @xref{Layout}.
+@item layout dump [filename]
+Save the layout arrangement to a file.  @xref{Layout}.
 @item license
 Display licensing information.  @xref{Startup}.
 @item lockscreen
@@ -2107,7 +2109,10 @@ the layout to reattach to will be shown in the message line.
 Remember the current arrangement of regions. When used, @code{screen}
 will remember the arrangement of vertically and horizontally split
 regions. This arrangement is restored when a @code{screen} session
-is reattached or switched back from a different layout. If a number
+is reattached or switched back from a different layout. If the 
+session ends or the @code{screen} process dies, the layout
+arrangements are lost. The @code{layout dump} command should help
+in this siutation. If a number
 or title is supplied, @code{screen} will remember the arrangement of
 that particular layout. Without any options, @code{screen} will
 remember the current layout.
@@ -2129,6 +2134,21 @@ a single window. Without either an @code{on} or an @code{off}, the
 current status is displayed on the message line.
 @end deffn

+@deffn Command layout @code{dump} [filename]
+(none)@*
+Write to a file the order of splits made in the current layout. This 
+is useful to recreate the order of your regions used in your current
+layout. Only the current layout is recorded. While the order of the
+regions are recorded, the sizes of those regions and which windows
+correspond to which regions are not. If no filename is specified,
+the default is @file{layout-dump}, saved in the directory that the
+@code{screen} process was started in. If the file already exists,
+@code{layout dump} will append to that file. As an example:
+@example
+layout dump /home/user/.screenrc
+@end example
+will save or append the layout to the user's @file{.screenrc} file.
+@end deffn

 @node Window Settings, Virtual Terminal, Regions, Top
 @chapter Window Settings
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.