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

35

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 recolocar) e obter as quatro janelas, mas apenas uma região e eu tenho que fazer C-a Studo de novo?

Como posso manter minha tela dividida quando reconectar?

Cesar
fonte

Respostas:

15

Na tela Perguntas frequentes :

(A pergunta implícita é: "Como mantenho minhas janelas divididas sobre uma separação?")

A resposta curta é que você não pode. A resposta mais longa é que você pode fingir.

As divisões são propriedade da sua exibição. O processo de gerenciamento de sua sessão de tela realmente não os conhece; somente o único processo que está exibindo a sessão. Portanto, a sessão da tela não consegue se lembrar das divisões porque não as conhece e, depois de desanexar, o processo que sabia sobre elas terminou.

O truque é usar sessões de tela aninhadas. Inicie uma sessão e forneça uma sequência de escape que você não utilizará muito (ou apenas desative completamente o caractere de escape). Ligue a sequência de teclas de desanexação habitual a esta sessão da tela. Agora, inicie ou anexe à sua sessão da tela principal. Todo o seu trabalho será realizado na sessão interna e você poderá dividir sua exibição. Quando você desanexar, no entanto, será a sessão externa que se desanexará, para que suas divisões na sessão interna sejam preservadas.

Supondo que você use o caractere de escape padrão, Ca, seu screenrc alternativo deve conter:

escape ""
bindkey ^ad detach
Darren Hall
fonte
1
Depois de passar o último ano ou dois configurando e usando intensamente sessões de tela aninhadas, recomendo. Com o tempo, a complexidade da adição diminui, enquanto a utilidade da configuração mais flexível aumenta.
funroll
13
O novo recurso, ou seja layout, invalida esta resposta!
Kadir
Consulte superuser.com/a/516822/113250 para o "novo" recurso de layout interno
Thiago Figueiro
67

Descobri que, se você já possui algumas janelas configuradas e deseja salvá-las, pode fazer o seguinte:

Ctrl-a
:
layout save default

Então, quando você desconectar e reconectar à sessão, o layout deverá ser restaurado.

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

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

$> screen -dmSU mysession

e, em seguida, disponibilize-o sempre chamando

$> screen -r mysession
Troy
fonte
5
Solução muito melhor. Essa deve ser a resposta aceita. (Eu sei porque eu sempre rolar para baixo XD)
BrainStone
1
Infelizmente, parece que a versão atual no redhat screen 4.00.03 (FAU) 23-Oct-06não possui esse recurso. Mas deveria!
David Dombrowsky
Essa é uma resposta melhor, mas há uma resposta ainda melhor abaixo, que salva automaticamente o layout sempre que for usado .screenrc. Upvote that answer
Mark Lakata
14

Na versão git, um novo recurso layoutfoi introduzido.

da tela (1):

layout novo [título]

Crie um novo layout. A tela mudará para uma região inteira e será alternada para a janela em branco. A partir daqui, você constrói as regiões e as janelas que mostram como você deseja. O novo layout será numerado com o menor número inteiro disponível, começando com zero. Opcionalmente, você pode atribuir um título ao seu novo layout. Caso contrário, ele terá um título padrão de "layout". Você sempre pode alterar o título posteriormente, usando o título do layout do comando.

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

por exemplo, a tela começa com a configuração a seguir.

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 (último selecionado) layout que possui 3 regiões divididas.

yoshikaw
fonte
ninguém sabe o que submissões são obrigados a obter este (o suficiente nerd i'n para aplicar patches, mas eu nunca irá executar código tronco (tem mau karma: P))
borrel
7

Basta adicionar esta linha ao seu ~/.screenrc:

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

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

(Desculpe se meu inglês é desconfortável de ler: - °)

Pantoufle
fonte
-1

Eu li o homem da tela inteira recentemente, e não há maneira comum de fazer isso se a tela em si não conseguir se lembrar dela automaticamente.

Kolypto
fonte