terminal bash qui se souvient de son état après restauration d'un crash

3

Dans Ubuntu, j'utilise la valeur par défaut gnome-terminal exécuter mes commandes. J'ai généralement quelques fenêtres ouvertes, chacune avec plusieurs onglets. Lorsque mon système d'exploitation se bloque, pour une raison quelconque, et que je redémarre, je perds tous ces terminaux.

Sublime Text, Firefox et Chrome m'ont gâté, car ils me donnent tous la possibilité de restaurer toutes les fenêtres et tous les onglets exactement comme ils le faisaient avant le crash, et j'aimerais pouvoir faire la même chose avec mon terminal. fenêtres et onglets.

Comment cela peut-il être accompli?

En expliquant les détails de ce que je voudrais:

  • Doit avoir:
    • Au redémarrage, lorsque j'ouvre un terminal pour la première fois, les fenêtres et les onglets qui étaient là avant d'être rouverts
      • Avec ou sans invite, c'est bien
    • Chaque onglet est cd -ed dans le dossier qu'il était avant
  • Bon d'avoir:
    • le bash_history pour cet onglet est toujours là
    • donc quand j'appuie sur les touches "haut" et "bas", j'obtiens ce que j'attends dans cet onglet

∗ Ubuntu fonctionnant sur un ordinateur portable dont les pilotes ne sont pas les plus conviviaux se produit plus souvent que je ne le souhaiterais (au cas où vous vous le demanderiez)

bguiz
la source
Êtes-vous peut-être à la recherche de quelque chose comme ça ?
terdon

Réponses:

1

Le plus proche qu'ils pouvaient obtenir était.

Vous pouvez utiliser les options suivantes:

--save-config=FILE              Save the terminal configuration to a file
--load-config=FILE              Load a terminal configuration file

Exemple:

Sauver:

gnome-terminal --save-config=/tmp/cfgtab

Pour le recharger:

gnome-terminal --load-config=/tmp/cfgtab

enter image description here

stderr
la source
@tiagoc Hmm - cela fonctionne-t-il globalement - c.-à-d. si j'exécute cette commande à partir de n'importe quel shell / terminal, cela sauvegardera le contexte de tous ceux actuellement ouverts? ... 'Parce que si, ce que je pense est que je pourrais mettre en place un cron travail, ou même juste un simple watch -n5 gnome-terminal --save-config=/tmp/cfgtab et sur un crash, je peux simplement recharger les sessions en exécutant gnome-terminal --load-config=/tmp/cfgtab manuellement.
bguiz
@bguiz Oui, au moins le répertoire de travail actuel de chaque onglet est enregistré. Comme les commandes tapées, tout est sauvegardé dans bash_history. Bien que je me souvienne des commandes d’un onglet en particulier, j’estime que cela n’est pas possible.
stderr
Malheureusement, le nouveau gnome-terminal dans Gnome 3 a cessé de supporter le chargement et la sauvegarde des configurations :-(
Neil Mayhew
1

Voici la solution que j'ai proposée:

https://gist.github.com/bguiz/9262902

C'est un script shell qui automatise ce qui précède.

Pour une utilisation normale:

~/watcher.sh

Après un crash et un redémarrage:

~/watcher.sh restore
bguiz
la source
@tiagoc J'ai trouvé ma solution inspirée de la vôtre. Je vais vous donner un +1 et vérifier, puisque vous m'avez conduit à la solution - merci!
bguiz
@tiagoc partageriez-vous la solution que vous avez proposée?
gene_wood