Un moyen rapide de sauvegarder et de restaurer les onglets de Terminal?

70

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

J'aimerais enregistrer la configuration actuelle et la restaurer avec des noms et des répertoires.

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

    
posée false 20.06.2013 - 18:31
la source

12 réponses

44

Pour enregistrer la configuration dans /tmp/cfg :

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

Pour le recharger:

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

MISE À JOUR

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

#!/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 des noms correctement, vous devez l'exécuter depuis le premier onglet de votre terminal. Chargement comme avant:

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

EXPLICATION:

Je peux utiliser les commandes suivantes pour obtenir le nom de l’onglet:

xprop -id $WINDOWID WM_NAME

Je peux suivre pour passer à l’onglet suivant:

xdotool key ctrl+Page_Down;

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

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

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

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

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

sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test 
    
réponse donnée Nykakin 20.06.2013 - 21:04
la source
12

Une alternative consiste à utiliser Byobu . Appuyez sur F2 pour ouvrir de nouveaux terminaux à l'intérieur. Utilisez F3 et F4 pour passer de gauche à droite entre les bornes.

Fermez la fenêtre de l’interface graphique à tout moment. Lorsque vous rouvrez Byobu, tous vos terminaux sont restaurés:)

    
réponse donnée Ashwin Nanjappa 05.07.2013 - 06:40
la source
3

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

  1. Go Settings- & gt; Profils et sélectionnez sur le profil actuel que vous utilisez
  2. Cliquez sur Modifier et allez dans l'onglet "Titre et commande"
  3. Créer un titre initial vide
  4. Sélectionnez l'option "Conserver le titre initial" dans la liste déroulante ci-dessous.

Cette option évite que votre jeu de titres initial ne soit écrasé.

J'espère que cela aide et un bon script en effet. Économisez beaucoup de temps lorsque vous redémarrez et je peux redémarrer avec bonheur ma boîte virtuelle fréquemment.

Merci !!

    
réponse donnée Yoga 07.12.2013 - 05:57
la source
3

J'ai essayé une autre option,

J'ai changé mon titre par défaut pour Terminal afin d'utiliser la valeur Intital dans ~/.bashrc , plutôt que de modifier les paramètres ~/.profile .

# If this is an xterm set the title to [email protected]:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="$PS1"
    ;;
*)
    ;;
esac

Si vous faites cela, il n’est pas nécessaire de modifier votre profil de terminal.
Lorsque vous exécutez gnome-terminal --load-config , tous les noms d'onglet sont restaurés correctement. Et vous pouvez également changer à votre guise et sauvegarder les onglets à nouveau !!

    
réponse donnée Yoga 11.12.2013 - 02:56
la source
3

J'ai trouvé le moyen de le faire plus rapidement, à mon avis.

  1. Crée un profil avec le titre et le nom que vous voulez comme 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 fonctionné très bien pour moi. Je viens de taper workflow et un terminal apparaît avec 3 onglets et les titres que j'ai choisis dans la définition de profil qui sont placés dans les onglets.

Sur mon fichier .bashrc , j'ai placé:

alias workflow='gnome-terminal --tab-with-profile=Git --tab-with-profile=Run | sublime-text &'
    
réponse donnée giacobo1 27.12.2013 - 04:01
la source
1

Screen ou Byobu sont mes méthodes préférées pour gérer un workflow complexe dans le terminal, et les deux permettent d’enregistrer vos configurations.

    
réponse donnée orbatos 24.09.2014 - 11:08
la source
1

Une petite amélioration du script existant qui vérifie également l’installation de xdotool sur le système et ajoute des variables pour modifier le chemin

#!/bin/bash

SAVEPATH=/tmp/termprofile

if [ ! -f /usr/bin/xdotool ]; then
        echo "please install 'xdotool'"
        exit 1
fi

gnome-terminal --save-config=$SAVEPATH

LINES=($(grep -n '\[Terminal' $SAVEPATH | cut -d: -f1))
for ((i=0; i<$(grep '\[Terminal' $SAVEPATH | 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/" $SAVEPATH
done
    
réponse donnée pulse 25.09.2014 - 00:53
la source
1
En développant la réponse de Nyakin ci-dessus, ce script fonctionnera pour plusieurs configurations de fenêtres et d’onglet et sauvegardera correctement les titres des onglets pour tous les onglets qui les possèdent.

Ceci est actuellement testé sur gnome-terminal 3.2 mais pourrait être configuré pour n'importe quel programme de terminal avec une fonctionnalité de sauvegarde-configuration similaire.

Cela nécessite les outils 'xprop', 'xdotool' et 'wmctrl'.

Code:

#!/usr/bin/env bash

FILE=""
gnome-terminal --save-config=$FILE

WINDOWLINES=$(wmctrl -lx | grep gnome-terminal.Gnome-terminal)
WINDOWNUM=$(echo "$WINDOWLINES" | wc -l)
TABLISTS=$(grep "^Terminals" $FILE)

for ((i=1; i<=$WINDOWNUM; i++))
do
    WINDOWLINE=$(echo "$WINDOWLINES" | sed -n "$i{p;q}")
    WINDOW_ID=$(echo "$WINDOWLINE" | cut -d' ' -f1)
    #Switch to window
    wmctrl -i -a $WINDOW_ID

    LINE=$(echo "$TABLISTS" | sed -n "$i{p;q}"); LINE=${LINE#Terminals=}
    TERMINALNUM=$(echo "$LINE" | grep -o ';' | wc -l)
    #go to first tab of the window if more than 1
    [ $TERMINALNUM -gt 1 ] && xdotool key alt+1 && sleep .1

    for tab in ${LINE//;/ }
    do
        #Get the current tab title
        TITLE=$(xprop -id $WINDOW_ID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//')
        #Insert it into the config file
        [ "$TITLE" == "${TITLE//WM_NAME/}" ] && sed -ri "/\[${tab}\]/aTitle=${TITLE}" $FILE
        #Move to the next tab in the window
        xdotool key ctrl+Page_Down
    done
done
    
réponse donnée Bobby Jones 04.08.2016 - 21:49
la source
1

J'ai aussi recherché cette fonctionnalité dans le terminal Gnome mais je n'ai pas pu la trouver. La meilleure option que j'ai trouvée jusqu'à présent est d'utiliser la konsole. Il vous permet de marquer vos onglets afin de pouvoir y revenir en les sélectionnant dans un menu de favoris. J'espère que cela aide.

    
réponse donnée fitsum 01.08.2017 - 09:39
la source
1

Voici un terminal avec xfce, avec possibilité de sauvegarder / restaurer la session depuis le menu: lien

    
réponse donnée pulse 06.04.2018 - 03:50
la source
0

Similaire à la méthode du yoga, Modifier & gt; & gt; Préférences de profil & gt; & gt; Titre et commande & gt; & gt; Title & gt; & gt; Lorsque les commandes du terminal définissent leurs propres titres: & gt; & gt; " Ajouter le titre initial "

Puis exécutez: gnome-terminaux --save-config = terminaux-cfg

fermer les fenêtres des terminaux

ouvrir un nouveau terminal et y exécuter: gnome-terminaux --load-config = terminaux-cfg

Fonctionne bien pour moi, tous les titres sont conservés.

    
réponse donnée ImLeo 03.02.2016 - 02:40
la source
0

Hyper ( lien ) est une bonne alternative multi-plateforme écrite en JavaScript et fournie avec Electron.

Un PR va ajouter un support pour la sauvegarde / restauration de session prête à l'emploi: lien

    
réponse donnée Eugene Kulabuhov 14.05.2017 - 10:55
la source

Lire d'autres questions sur les étiquettes