Экран GNU - восстановление сеанса с разделенным экраном

9

Когда я восстанавливаю разделенный сеанс screen, у меня только один сеанс печати, и мне нужно перенастроить количество сеансов отображения.

Есть ли другой способ иметь оригинальную screenконфигурацию?

almorel
источник

Ответы:

9

В настоящее время это невозможно без взлома (см. Следующий параграф); однако функции, необходимые для этого, уже добавлены в текущее git-дерево экрана. В будущих версиях команды «сохранение макета» и «загрузка макета» смогут загружать не только ваш последний макет, но и другие именованные макеты. Я считаю, что есть также поддержка для циклического прохождения макетов.

В настоящее время хитрость заключается в использовании экрана внутри экрана. Вся ваша работа и изменения макета выполняются на внутреннем экране, но затем, когда вы отсоединяетесь, вы фактически отсоединяетесь от самого внешнего экрана. Компоновка внутреннего экрана будет сохранена. Смотрите следующие подробности:

Когда я разделяю дисплей и затем отсоединяюсь, экран забывает разделение.

Кроме того, вы можете попробовать скомпилировать последнюю версию прямо из дерева исходных текстов на экране. Вы можете сделать это, установив git и запустив:

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

Затем следуйте инструкциям в src / INSTALL. В общем, направления таковы:

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

В файле INSTALL обсуждаются различные проблемы, связанные с установкой экрана, на основе различных проблем. Если вы идете по этому пути, лучше всего прочитать все инструкции по установке, а затем продолжить.

Стивен Д
источник
0

Я столкнулся с этой проблемой, когда случайно нажал неправильную комбинацию клавиш, и все мои разделенные экраны исчезли. : ((

Однако, для меня был (скромный) выход, по крайней мере. Так как я в основном использую screenвместе с xtermи bashоболочками, последнее, что я хотел иметь, это запускать больше bash. (Управление вещами с psвыявленными bashпроцессами было , но не доступно.)

Таким образом, чтобы вернуться к моей обычной настройке, нужно было использовать Ctrl+ "и добавлять по одной уже запущенной оболочке в каждое разделенное окно, циклически перемещаясь по «панелям» с помощью Ctrl+ aTAB. Так что я вернул вещи в нормальное русло.
Я публикую это особенно потому, что встречал людей, которые в отчаянии просто нажимали Ctrl+ acи «переустанавливали» свои системы bash. Но это глупо! С этим методом вы получите в конечном итоге 25 bashпроцессов, по крайней мере, 15 из них недоступны / невидимы, просто тратя ресурсы и ЦП без всякой причины. Поэтому используйте их вместо того, чтобы создавать их заново .

ошибка синтаксиса
источник
что такое ctrl "? Я попробовал это, когда был снова прикреплен, когда смотрел на единственную оставшуюся «демонстрацию», и она ничего не делает, затем я нажал ^a tab, и это не привело меня к следующему, затрагивающему только то, что делает^a n
Брайан Томас,
0

Шпатлевка Примечание: Если вы используете замазку, а также перейти к настройкам терминала и проверьте , чтобы отключить размер повторного терминальные, сохраняет настройки, а затем перезапустить.

У вас есть несколько вариантов, в зависимости от того, что кажется логичным для вашей установки;

а) Используйте screen_layout, если у вас версия 4.2 и screen -X dump layout

б) Используйте хак, если у вас есть ~ 4.0x http://aperiodic.net/screen/faq#when_i_split_the_display_and_then_detach_screen_forgets_the_split

Этот хак немного сбивает с толку тем, что вы должны внимательно заметить, что не очень ясно говорится о том, что вам нужно сначала запустить стандартный экран, прежде чем запускать экран с правками .screenrc, потому что сеансы не будут содержать такие данные.

c) Скомпилируйте и выполните установку http://savannah.gnu.org/forum/forum.php?forum_id=8293 http://www.linuxfromscratch.org/blfs/view/svn/general/screen.html.

г) Примените патч вместо переустановки (см. ниже)

e) Возьмите бинарный файл для своего дистрибутива и поместите его на свой путь, чтобы он переопределил системный по умолчанию.

hth, потому что я знаю, что одного варианта недостаточно.

Что касается г) выше, я больше не могу найти патч, так что плохо включу его сюда.

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
Брайан Томас
источник