Não é realmente possível salvar uma sessão de tela completa.
O que você pode fazer é criar um .screenrc
adequado que irá configurar algumas coisas depois que você reiniciou o sistema.
Aqui estão alguns comentários para as coisas que você listou:
- O número de shells abertos
- O nome de cada shell
- O diretório atual de cada shell
Eu uso algo assim no meu .screenrc
para abrir alguns shells específicos na inicialização:
## set the default shell
shell zsh
# screens
screen -t 'zsh'
screen -t 'mutt' mutt
screen -t 'zsh' /home/user/bin/scriptToRun
[..]
Você obterá a string entre '' como o nome da sua janela e o comando após o nome será executado no seu shell padrão. Inclua qualquer script que você queira, por exemplo, alterar em um diretório específico e abrir alguns logs.
- O histórico de cada shell
Você já pensou em compartilhar a história dos projéteis nas suas sessões? IMHO isso torna as coisas muito mais fáceis. No ZSH, é feito com setopt SHARE_HISTORY
no seu .zshrc
- Se possível, suas variáveis de ambiente
Se você realmente precisa disso e não quer nenhum compromisso, você pode pensar em um shell script, que lê o estado atual da tela, salva o número de shells, variáveis de ambiente, etc. e coloca essas informações em um script de inicialização chamado pelo seu .screenrc
.
Para mim isso não valeria a pena porque eu aprecio um ambiente limpo após uma reinicialização, se eu puder personalizar as janelas padrão para a tela.