11 votes

Comment puis-je sauvegarder ma session à onglets multiples dans un terminal xfce4 ?

Ainsi, j'ai généralement des tonnes d'onglets ouverts dans les sessions de terminal et chaque fois que j'ouvre un nouveau terminal, je dois ouvrir manuellement tous les onglets. C'est assez ennuyeux.

J'ai vérifié man xfce4-terminal mais ça ne dit rien sur la sauvegarde d'une session. Est-ce possible ?

4voto

Keith Points 7743

Vous pouvez créer un raccourci avec des onglets prédéfinis comme ceci :

Terminal --geometry=100x40 --hide-menubar --hide-toolbars -T "Host1" -e "ssh -t root@host1" --tab -T "Host2" -e "ssh -t root@host2"

Mais quelque chose comme ça dans la ligne de commande de la boîte de dialogue de l'éditeur de raccourcis.

Pour que chaque onglet ait un répertoire de travail différent, vous pouvez procéder de la manière suivante :

Terminal --working-directory=$HOME/tmp --tab --working-directory=$HOME/src --tab --working-directory=$HOME/opt

Ce n'est pas que le premier n'ait pas un --tab avant elle, l'associant ainsi à la nouvelle fenêtre de premier niveau. Puis deux onglets supplémentaires avec des répertoires de travail différents.

Essayez d'éviter d'utiliser ~ car il s'agit d'une fonctionnalité de Shell qui peut ne pas fonctionner dans un autre contexte (comme les lanceurs personnalisés).

4voto

Victoria Stuart Points 435

Cette solution déploie une fenêtre avec plusieurs onglets et processus.

J'ai créé un script de démarrage ( xfce4-terminal-startup.sh ),

#!/bin/bash
xfce4-terminal --maximize --title='Neovim' -x bash -c "nvr -s; exec bash"
xfce4-terminal --tab --title='psql' -x bash -c "psql -d zzz; exec bash"
xfce4-terminal --tab --title='Cypher-shell' -x bash -c "cd /mnt/Vancouver/Programming/data/hmdb; exec bash"
xfce4-terminal --tab --title='Cycli' -x bash -c "source activate py35 && cycli -P *** -u *** -p ***; exec bash"
xfce4-terminal --tab --title='Py3' -x bash -c "source activate py35 && python; exec bash"
xfce4-terminal --tab --title='bc' -x bash -c "bc; exec bash"
xfce4-terminal --tab --title='ud' -x bash -c "pacaur -Syu; exec bash"

qui, lorsqu'il est exécuté, démarre xfce4-terminal, le maximise et lance les différents programmes comme indiqué.

En ce qui concerne "exec bash", voir ci-dessus :

Par exemple, si vous lancez une fenêtre à l'écran qui exécute une commande, cette fenêtre reste ouverte ...


Voici un GIF animé, montrant ces onglets en action !

xfce4-terminal from script with tabs, programs preloaded

[ lien vers une image plus grande ]



Mise à jour

C'est mon actuel xfce4-terminal-startup.sh script (vous pouvez le télécharger ici : https://persagen.com/files/misc/xfce4-terminal-startup.sh ) :

#!/bin/bash
# vim: set filetype=sh :
# vim: syntax=sh

# /mnt/Vancouver/programming/scripts/xfce4-terminal-startup.sh

# https://web.archive.org/web/20110314180918/http://www.davidpashley.com/articles/writing-robust-shell-scripts.html
# https://stackoverflow.com/questions/2870992/automatic-exit-from-bash-shell-script-on-error/2871034#2871034
set -e

# ----------------------------------------------------------------------------
# This one first:

# Python as basic calculator: 1/3; import math; 2*math.pi; ...
xfce4-terminal --maximize --title='calculations' -x bash -c "python; exec bash"

# ... then (these will open as child tabs in the parent terminal window, above):

# Open my (current) project directory:
xfce4-terminal --tab --title='bash'  -x bash -c "cd /mnt/Vancouver/projects/ie/claws/; pwd; ls -l; echo ''; exec bash"

# Start Neovim:
xfce4-terminal --tab --title='neovim' -x bash -c "nvr -s; exec bash"

# Open ripgrep tab (echo sample command), for fast searches in that director:
xfce4-terminal --tab --title='ripgrep' -x bash -c "cd /mnt/Vancouver/domains/PERSAGEN.com/2.0/; echo rg . -i -e \'1903.03243\'; exec bash"

# Open an Arch Linux update tab:
xfce4-terminal --tab --title='ud' -x bash -c "yay -Syu; exec bash"

0voto

Poikilos Points 101

Un terminal xfce4 patché par #OldCoder pour #Laclin permet de sauvegarder/charger un nombre quelconque d'onglets nommés en utilisant le menu. Il enregistre un "TabSet" (jusqu'à 4) : le répertoire de travail et le nom de l'onglet plutôt que les données de la session elle-même, mais c'est suffisant pour moi et votre message indique que la fonctionnalité peut être suffisante pour vous. J'ai eu ce problème et je lui en ai parlé car la solution proposée ici n'était pas satisfaisante. Il s'est basé sur un ancien patch mais a réussi à faire fonctionner le code sur une version récente.

La page web pour le patch est la suivante : https://laclin.com/xfce4-tabset.html

Avec son aide j'ai fait un install script qui fait le script et l'installation des dépendances au lien de téléchargement brut suivant : https://raw.githubusercontent.com/poikilos/linux-preinstall/master/everyone/xfce/xfce4-terminal-laclin_savetabs.sh )

  • Mon script installe la plupart/toutes les dépendances, mais vous devez d'abord installer les outils de construction pour linux vous-même (comme via sudo apt-get install build-essential si vous utilisez Ubuntu/Debian/Devuan et construisez).

  • Sauvegarder le script tel que wget -O xfce4-terminal-laclin_savetabs.sh suivi de l'URL brute ci-dessus puis exécuté dans le terminal : bash xfce4-terminal-laclin_savetabs.sh (il utilise sudo pour les dépendances et pour sudo make install ce qui donne /usr/local/bin/xfce4-terminal en cas de succès).

  • S'il indique qu'il manque quelque chose, veuillez signaler le problème ici : https://github.com/poikilos/linux-preinstall/issues .

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