TL; DR : crie uma função que salve a saída do comando pwd
em um arquivo e, em seguida, use esse arquivo para iniciar gnome-terminal
com o que estava nesse arquivo como argumento para gnome-terminal --working-directory=
.
Etapa 1: recebendo seu último diretório :
Abaixo está uma função savewd
(para salvar o diretório de trabalho), que você deve colocar no final do seu arquivo /home/username/.bashrc
ou qualquer arquivo rc para o shell que estiver usando.
function savewd ()
{
echo $(pwd) > ~/.lastdir
}
Em seguida, faça uma chamada para essa função dentro do prompt do PS1, novamente - em seu arquivo .bashrc. Por exemplo, aqui está o meu:
PS1=' $(savewd) serg@ubuntu [$(pwd)]
================================
$ '
Colocar uma função no seu prompt executa a função toda vez que você executar algo no shell, mesmo pressionando simplesmente enter. Assim, toda vez que você executar um comando, seu diretório de trabalho atual será salvo em um arquivo chamado .lastdir
em sua pasta pessoal.
NOTAS:
- isso salvará o último diretório de trabalho do seu último shell aberto. Quando você restaurar o terminal nesse diretório, você pode restaurar apenas o um terminal, onde você executou o último comando.
-
.lastdir
tem ponto inicial, por isso é um arquivo oculto, que você não pode ver, a menos que você executels -a
ou ative a visualização de arquivos ocultos no gerenciador de arquivos
Etapa 2: criar um script de restauração
Abra seu editor de texto favorito e crie o seguinte script abaixo:
#!/bin/sh
# set -x
LASTDIR="$(cat /home/username/.lastdir)"
gnome-terminal --working-directory=$LASTDIR &
Agora você tem um script que lê o que foi salvo no arquivo .lastdir
e abre um terminal com o conteúdo de .lastdir
como diretório de trabalho.
NOTA: não se esqueça de tornar este script executável com chmod +x /path/to/script
. De preferência, esse script deve estar em um diretório que faça parte de sua variável $PATH
environment. Saiba mais sobre isso .
Etapa 3: criar um item de inicialização
Agora você pode usar esse script para iniciar toda vez que fizer login. Você pode adicionar o caminho completo ao script em Aplicativos de inicialização ou criar uma entrada .desktop
na sua pasta /home/username/.config/autostart
. Por exemplo, eu pessoalmente criaria um arquivo /home/username/.config/autostart/gnome-term-restored.desktop
com o seguinte conteúdo:
[Desktop Entry]
Type=Application
Exec=/path/to/my/script.sh
Hidden=false
NoDisplay=false
Name=gnome-terminal-restored
Agora, toda vez que você fizer o login novamente, você terá este .desktop
run, que chamará o script, que abrirá o terminal com o último diretório de trabalho, do último janela do terminal que executou o comando último .
Você também pode adicionar o caminho completo ao script na etapa 2 como um atalho, em Settings -> Keyboard -> Shortcuts -> Custom -> + button
.
Etapa 4
Aproveite:)
NOTAS: Isso funcionará com o login e o logoff. Se você usar o método mostrado no link que você forneceu na sua pergunta, isso pode quebrar, pois dependendo de quais programas são executados primeiro, ele pode abrir o gnome-terminal na sua pasta /home/username
. Se você seguir o método aqui, sugiro sempre fechar as janelas do terminal antes de sair. Quanto a salvar os comandos, eles já estão sendo salvos pelo bash, e você pode revisá-los com history
.
Outra ideia é editar /usr/share/applications/gnome-terminal.desktop
para executar gnome-terminal --working-directory=$(cat /home/yourusername/.lastdir)
ou o script que eu escrevi, mas não o recomendo.
IMHO, a maneira que Fabby sugere (isto é, hibernando) é melhor.