mantendo os terminais abertos (com o caminho anterior) e aplicativos na unidade do Ubuntu

2

Eu acho particularmente útil em laptops para manter aberto (gnome-) terminais (e eventualmente outras aplicações) quando sair / desligar; Eu acho que este foi o padrão em algumas versões antigas do Xubuntu que eu tinha. Em particular, gostaria de manter abertas todas as guias do terminal no mesmo diretório da sessão anterior: existe uma maneira de fazer isso?

Eu verifiquei isto:

link

mas parece que não se aplica a caminhos em terminais.

Eu tenho o Gnome / Unity no Ubuntu 14.04, mas o KDE tem o mesmo limite.

    
por gluuke 20.01.2015 / 15:53

1 resposta

0

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:

  1. 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.
  2. .lastdir tem ponto inicial, por isso é um arquivo oculto, que você não pode ver, a menos que você execute ls -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.

    
por Sergiy Kolodyazhnyy 06.05.2015 / 16:32