Écran GNU - Restaurer une session avec un écran divisé

9

Lorsque je restaure une session fractionnée de screen, je n'ai qu'une seule session d'impression et je dois reconfigurer le nombre de sessions d'affichage.

Existe-t-il une autre façon d'avoir la screenconfiguration d' origine ?

almorel
la source

Réponses:

9

Ce n'est actuellement pas possible sans un hack (voir paragraphe suivant); cependant, les fonctionnalités requises pour ce faire ont déjà été ajoutées à l'arbre git actuel de l'écran. Dans les versions futures, les commandes "layout save" et "layout load" pourront charger non seulement votre dernière mise en page, mais d'autres mises en page nommées. Je crois qu'il y a aussi un soutien pour faire défiler les mises en page.

Actuellement, l'astuce consiste à utiliser un écran à l'intérieur d'un écran. Toutes vos modifications de travail et de mise en page sont effectuées dans l'écran intérieur, mais lorsque vous vous détachez, vous vous détachez réellement de l'écran le plus extérieur. La disposition de l'écran intérieur sera préservée. Voir ce qui suit pour tous les détails granuleux:

Lorsque je divise l'affichage puis me détache, l'écran oublie le fractionnement.

Alternativement, vous pouvez essayer de compiler la dernière version directement à partir de l'arborescence des sources d'écran. Vous pouvez le faire en installant git puis en exécutant:

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

Ensuite, suivez les instructions dans src / INSTALL. En général, les directions sont les suivantes:

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

Il y a une discussion dans le fichier INSTALL sur divers problèmes concernant l'emplacement d'installation de l'écran en fonction de diverses préoccupations. Si vous suivez cette route, votre meilleur pari est de lire toutes les instructions d'installation puis de continuer.

Steven D
la source
0

J'ai rencontré ce problème lorsque j'ai appuyé sur une mauvaise combinaison de touches par accident, et tous mes écrans partagés ont disparu. : ((

Cependant, il y avait au moins un moyen (humble) de sortir. Étant donné que j'utilise principalement screenavec xtermet bashshells, la dernière chose que je voulais, c'est lancer plus d' bashes. (Contrôler les choses avec psrévélé que les bashprocessus étaient là, mais pas accessibles.)

Donc, la façon de revenir à ma configuration habituelle était d'utiliser Ctrl+ "et d'ajouter un shell déjà en cours d'exécution à chaque fenêtre fractionnée, en parcourant les "volets" avec Ctrl+ aTAB. J'ai donc ramené les choses à la normale.
Je poste ceci en particulier parce que j'ai rencontré des gens qui, dans leur frustration, ont juste appuyé sur Ctrl+ acet "réinstallé" leurs bashes. Mais c'est idiot! Car avec cette méthode, vous vous retrouverez avec peut-être 25 bashprocessus à la fin de la journée, avec au moins 15 d'entre eux inaccessibles / invisibles, gaspillant simplement des ressources et du CPU sans raison. Donc re utiliser eux, au lieu de re créer eux.

erreur de syntaxe
la source
c'est quoi ctrl "? je l'ai essayé, une fois remis en place, en regardant le seul "affichage sesssion" restant, et cela ne fait rien, puis j'ai appuyé ^a tab, et cela ne m'a pas amené à la suite, en fait, ce n'est que^a n
Brian Thomas
0

Putty Remarque: si vous utilisez du mastic, allez également vérifier les paramètres du terminal et désactiver la taille re du terminal, les paramètres, les puis relancer.

Vous avez quelques options, selon ce qui semble logique pour votre configuration;

a) Utilisez screen_layout si vous disposez de la version 4.2 et screen -X dump layout

b) Utilisez le hack si vous avez ~ 4.0x http://aperiodic.net/screen/faq#when_i_split_the_display_and_then_detach_screen_forgets_the_split

Ce hack est un peu déroutant en ce sens que vous devez soigneusement noter qu'il indique pas si clairement que vous devez d'abord lancer un écran standard, avant de lancer un écran avec les modifications .screenrc, car les sessions ne contiennent pas de données comme celles-ci.

c) Compiler et faire l'installation http://savannah.gnu.org/forum/forum.php?forum_id=8293 http://www.linuxfromscratch.org/blfs/view/svn/general/screen.html

d) Appliquer le patch au lieu de réinstaller (voir ci-dessous)

e) Récupérez le binaire de votre distribution et placez-le sur votre chemin, afin qu'il écrase celui par défaut du système.

hth, parce que je sais qu'une option n'est jamais suffisante.

En ce qui concerne d) ci-dessus, je n'ai plus pu trouver le patch, alors je vais l'inclure ici.

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
Brian Thomas
la source