Como manter as janelas divididas após desanexar / reconectar a tela GNU

34

Eu uso a tela em um servidor Ubuntu.

Eu tenho minha tela dividida em quatro regiões, cada uma mostrando uma janela diferente.

O problema é quando eu desanexar (ou talvez reconectar) as quatro janelas, mas apenas uma região, e eu tenho que fazer C-a S de novo?

Como posso manter minha tela dividida quando a reconectar?

    
por Cesar 13.11.2009 / 00:37

6 respostas

14

De tela de perguntas frequentes :

(The implied question being, “How do I keep my split windows over a detach?”)

The short is answer is that you can't. The longer answer is that you can fake it.

Splits are a property of your display. The process managing your screen session doesn't really know about them; only the single process that's displaying the session does. Thus, the screen session can't remember the splits because it doesn't know about them, and once you detach, the process that did know about them has exited.

The hack is to use nested screen sessions. Start one session and give it some escape sequence that you won't use much (or just disable its escape character completely). Bind your usual detach key sequence to this screen session. Now, start or attach to your main screen session. All of your work will be done in the inner session, and you can split your display. When you detach, however, it will be the outer session that detaches, so your splits in the inner session will be preserved.

Assuming you use the default escape character, C-a, your alternate screenrc should contain:

escape ""
bindkey ^ad detach
    
por 24.11.2009 / 19:08
62

Descobri que, se você já tem algumas janelas configuradas e deseja salvá-las, pode fazer isso:

Ctrl-a
:
layout save default

Então, quando você desanexar e anexar novamente à sessão, o layout deverá ser restaurado.

Funciona com a versão de tela 4.00.03jw4 (FAU) 2 de maio de 2006 (Ubuntu 12.04 e 12.10)

Além disso, você pode querer criar uma sessão do deamon como tal:

$> screen -dmSU mysession

e depois tê-lo sempre disponível chamando:

$> screen -r mysession
    
por 09.12.2012 / 02:29
14

Na versão git, o novo recurso layout foi introduzido.

da tela (1):

layout new [title]

Create a new layout. The screen will change to one whole region and be switched to the blank window. From here, you build the regions and the windows they show as you desire. The new layout will be numbered with the smallest available integer, starting with zero. You can optionally give a title to your new layout. Otherwise, it will have a default title of "layout". You can always change the title later by using the command layout title.

mesmo se você desconectou a sessão de tela, o layout lembra como a região foi dividida.

por exemplo, tela inicial com a seguinte configuração.

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

E reconecte esta sessão, você poderá voltar ao layout (selecionado por último) que possui 3 regiões divididas.

    
por 06.01.2012 / 22:38
7

Parece que o tmux funciona. Este é um novo projeto multiplexador, inspirado na tela, mas codificado do zero e sob uma licença BSD.

(Desculpe se o meu inglês está desconfortável para ler: - °)

    
por 25.11.2009 / 16:16
3

Basta adicionar esta linha ao seu ~/.screenrc :

# This line makes Detach and Re-attach without losing the regions/windows layout
layout save default
    
por 30.05.2015 / 16:30
0

Eu li o homem da tela inteira recentemente, e não há maneira comum de fazê-lo se a própria tela não conseguir se lembrar automaticamente.

    
por 13.11.2009 / 02:24

Tags