Como persistir o layout do 'gnu screen' após o reinício

8

Estou usando a divisão screen em 3 com vim à esquerda e duas outras telas divididas horizontalmente à direita. Eu sei que quando desanexar de uma tela, posso salvar o layout com :layout save my_layout_name .

Já tenho layout autosave on no meu ficheiro .screenrc , mas isso não ajuda no meu problema.

Como posso persistir o layout de uma tela entre diferentes sessões de terminal e após a reinicialização do PC? Ou talvez como uma solução alternativa, existe uma maneira de executar a tela (parâmetros) que a divide, configura o bash em todas as janelas e salva o layout?

    
por randunel 12.12.2013 / 10:45

4 respostas

7

Layout padrão para telas novas

Gerencie suas regiões e execute o código dentro da tela :

  • Para salvar seu layout atual no arquivo .screen_layout :

    rm -f $HOME/.screen_layout
    screen -X layout dump .screen_layout
    
  • Para tornar o carregamento automático com a economia de layout:

    echo source .screen_layout  >> $HOME/.screenrc
    echo layout save def >> $HOME/.screenrc
    

Como funciona

  1. Você digita screen .
  2. A tela lê $HOME/.screenrc :
  3. source .screen_layout - ler e executar comandos de $HOME/.screen_layout
    Regiões criadas agora.
  4. layout save def - salve as regiões atuais como layout para mantê-lo quando você se desconectar.

layout dump .screen_layout

  • Dump ( append ) layout atual para arquivo no diretório $HOME

screen -X command

  • Executar a sessão de tela command in atual (se executada dentro).
    Semelhante a ctrl a então : command

Você também pode

  • Desativar aviso de direitos autorais na inicialização:

    echo startup_message off >> $HOME/.screenrc
  • Aumenta o buffer de rolagem (def. 100)

    echo defscrollback 1000 >> $HOME/.screenrc
  • Escreva a própria .screen_layout (50% / 50% vertical, com 2 camadas):

    split -v
    screen -t s1
    
    focus
    screen -t s2
    
    focus
    
por 26.08.2015 / 18:14
4

Ctrl - a , em seguida, : , em seguida, layout save default Tela fornecida é a versão mais recente (com recurso de layout) Boa sorte.

ATUALIZAÇÃO: Aqui é o arquivo .screenrc que fará a alteração permanente , além de adicionar outros recursos interessantes.

    
por 29.12.2014 / 21:02
2

" autosave de layout em " funciona apenas para layouts explicitamente nomeados em .screenrc.

Ou seja, se você especificou algum layout como ABC, alternou para ele dentro da sessão de tela e desanexou, esse último layout será restaurado depois que a sessão for reiniciada.

Se você não especificou nenhum layout no arquivo de configuração, será necessário executar o comando interno " layout salvar seu_layout_name " antes de desanexar.

Este é um .screenrc com layouts predefinidos para escolher:

 0 — one (the only region)
 1 — two-v (the screen is splitted vertically into two regions, default layout)
 2 — two-h (the screen is splitted horizontally into two regions)
 3 — three (three regions — two in the upper part of the screen and one underneath)
 4 — four (four regions)

UmavezselecionadosdentrodaTela,esseslayoutssãopreservadosapósodescontinuamentoatéapróximacontinuaçãodasessão(devidoaocomando"layout autosave on").

Se você criou seu próprio layout, ele deve ser salvo com o comando " layout dump filename ". Então você pode usar um código do arquivo "filename" para adicionar seu layout na seção #layouts deste .screenrc para selecionar.

Por padrão, o layout " two-v " é carregado com a única janela com o bash.

    
por 20.03.2016 / 18:20
0

De acordo com esta fonte , isso não é possível devido à maneira como screen funciona. Há um hack fornecido lá, no entanto. Basicamente, resume-se a tela de aninhamento dentro de outra tela, o que pode não ser muito conveniente. (Resposta encontrada aqui )

Se você usar a tela para divisão de terminal em sua máquina local (que eu deduz do reinício do pc mencionado), você pode querer verificar o emulador de terminal chamado terminator . Ele suporta splits terminais horizontais e verticais (aninhados também) e você pode salvar seu layout favorito para uso posterior. Então você simplesmente executa o terminador com uma opção apropriada: terminator -l <name of saved layout> .

    
por 12.12.2013 / 13:24