99 votes

Un moyen rapide d'enregistrer et de restaurer les onglets du Terminal ?

J'ai une fenêtre Terminal avec une douzaine d'onglets nommés ouverts.

Je voudrais sauvegarder la configuration actuelle et la faire restaurer avec les noms et les répertoires.

Y a-t-il un moyen de le faire ?

46voto

Nykakin Points 3562

Pour sauvegarder la configuration dans /tmp/cfg :

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

Pour le recharger :

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

UPDATE

Après avoir joué avec bash, j'ai créé le script suivant qui stocke les noms d'onglets dans le fichier. /tmp/test également :

#!/usr/bin/env bash

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

LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
for ((i=0; i<$(grep '\[Terminal' /tmp/test | wc -l); i++))
do
    TITLE=$(xprop -id $WINDOWID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//';xdotool key ctrl+Page_Down;)
    sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test 
done

Pour attribuer les noms correctement, vous devez l'exécuter à partir du premier onglet de votre terminal. Le chargement est le même qu'avant :

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

EXPLICATION :

Je peux utiliser ce qui suit pour obtenir le nom de l'onglet :

xprop -id $WINDOWID WM_NAME

Je peux utiliser la fonction suivante pour passer à l'onglet suivant :

xdotool key ctrl+Page_Down;

J'obtiens un nombre d'onglets après avoir parcouru le fichier de configuration que j'ai enregistré auparavant :

$(grep '\[Terminal' /tmp/test | wc -l)

Donc je peux itérer sur les onglets dans une boucle. Je dois ajouter l'entrée "Title=titlename" pour chaque section de configuration d'onglet dans le fichier sauvegardé auparavant. Pour ce faire, je crée d'abord un tableau de numéros de lignes où je vais ajouter des lignes.

LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))

J'ajoute la ligne "Title=titlename" à l'intérieur d'une boucle itérant sur les onglets :

sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test

13voto

Shog9 Points 82052

Une alternative est d'utiliser simplement Byobu . Appuyez sur F2 pour ouvrir de nouvelles bornes à l'intérieur. Utilisez F3 et F4 pour passer de gauche à droite entre les bornes.

Fermez la fenêtre de l'interface graphique quand vous le souhaitez. Lorsque vous rouvrez Byobu, tous vos terminaux sont restaurés :)

5voto

fitsum Points 51

J'ai également cherché cette fonctionnalité dans le terminal Gnome mais je ne l'ai pas trouvée. La meilleure option que j'ai trouvée jusqu'à présent est d'utiliser konsole. Elle vous permet de mettre vos onglets en signet, de sorte que vous pouvez y revenir en les sélectionnant dans un menu de signets. J'espère que cela vous aidera.

4voto

user1717828 Points 140

J'ai trouvé un moyen de le faire qui, je pense, est plus rapide.

  1. Crée un profil avec le titre et le nom que tu veux comme l'a dit Yoga.
  2. Type :

    gnome-terminal --tab-with-profile=PROFILENAME1 --tab-with-profile=PROFILENAME2 ... --tab-with-profile=PROFILENAME999

J'ai créé un alias avec cette commande et cela a bien fonctionné pour moi. Je tape simplement workflow et un terminal apparaît avec 3 onglets et les titres que j'ai choisis dans la définition du profil qui sont placés dans les onglets.

Sur mon .bashrc le fichier que j'ai placé :

alias workflow='gnome-terminal --tab-with-profile=Git --tab-with-profile=Run | sublime-text &'

3voto

ncremins Points 5044

J'ai essayé les options ci-dessous après avoir restauré les paramètres sauvegardés et le Titre est également restauré correctement.

  1. Allez dans Paramètres->Profils et sélectionnez le profil actuel que vous utilisez.
  2. Cliquez sur Editer et allez à l'onglet "Titre et commande".
  3. Faire le titre initial en blanc
  4. Sélectionnez l'option "Conserver le titre initial" dans le menu déroulant ci-dessous.

Cette option permet d'éviter que votre jeu de titres initial ne soit écrasé.

J'espère que cela aidera et un grand script en effet. Gagner beaucoup de temps chaque fois que u reboot et je peux heureusement redémarrer ma boîte virtuelle fréquemment.

Merci !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X