Définition des titres de l'onglet Terminal

11

J'essaie d'ouvrir quelques onglets de terminal dans gnome-terminal, et jusqu'à présent, j'ai réussi à faire quelque chose , mais je suis bloqué maintenant.

J'ai donc l'exigence suivante:

  • Ouvrez les onglets intitulés "X" et "Y"
  • Exécuter quelques commandes
  • Gardez les onglets ouverts et prêts pour une utilisation ultérieure; garder le titre.

Jusqu'à présent, j'ai réussi à répondre à certaines des exigences, mais pas à toutes:

gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"

Cela ouvre deux onglets:

  1. "X" (puis remplace le titre par le titre par défaut)
  2. "Y", mais l'onglet se ferme dès que je quitte top.

Existe-t-il un moyen d'ouvrir un onglet, de lancer bash, mais pas de modifier le titre? J'ai essayé Google, mais j'ai abandonné.

EDIT: Ce ne doit pas être une commande.

Omninonsense
la source
Doit-il s'agir d'une commande? Parce que l'interface graphique de gnome-terminal fonctionne bien pour cela.
neph
@kikjezrous Eh bien, je sais comment le faire avec des raccourcis clavier, ou juste un clic droit, mais je dois le faire chaque fois que je me mets au travail (et c'est 6 onglets), donc c'est plus un problème de commodité qu'une réelle nécessité.
omninonsense
Ah, je vais modifier ma réponse.
neph

Réponses:

4

Comme vous pouvez le voir dans d' autres réponses , le titre de l'onglet est modifié par le shell à chaque fois qu'il affiche une invite. Et après avoir exécuté topvotre onglet se ferme parce que la commande que vous lui avez demandé d'exécuter se termine ...

Je ferai ce qui suit:

Étape 1: appelez le terminal avec des shells, en ajoutant des variables d'environnement comme ça:

gnome-terminal --tab -t X -e "env MYTAB=X bash" --tab -t Y -e "env MYTAB=Y bash" 

Étape 2: ajoutez à la fin de votre .bashrccode suivant:

#if MYTAB is not set, return
[ -z "$MYTAB" ] && return
# reset the cursor and title 
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;$MYTAB \w\a\]$PS1"   #title: $MYTAB and current dir
# execute the commands for every tab
case "$MYTAB" in
        X)
                echo this is X
        ;;

        Y)
                echo this is Y 
                top
        ;;
esac

... que je pense est facile à comprendre et que vous pouvez modifier avec la commande / réglages dont vous avez besoin. Testé et fonctionne bien; après avoir quitté topl'onglet, vous aurez toujours l'invite et l'onglet à parcourir.

Capture d'écran (après avoir appuyé sur "q" top):

capture d'écran

Rmano
la source
6

Pour conserver les titres des onglets, vous devez commenter les lignes suivantes dans votre .bashrc:

# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
#    ;;
#*)
#    ;;
#esac

Ensuite gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top", fonctionnera comme prévu:

entrez la description de l'image ici

Sylvain Pineau
la source
Marquer cela comme la bonne réponse, car c'est la plus simple. :-)
omninonsense
J'ai changé la réponse acceptée (et l'ai légèrement modifiée), car elle correspondait mieux à mes besoins; c'est quand même une excellente réponse!
omninonsense
1
Pas de problème, c'est comme ça que ça marche :)
Sylvain Pineau
1

Je suppose que cela ne doit pas nécessairement être une commande et je donne une manière totalement graphique de le faire.

Après le lancement de gnome-terminal, le menu «fichier» vous permet d'ouvrir de nouveaux onglets auxquels un titre donné sera attribué. Cela peut être modifié soit par le menu 'terminal' soit par un clic droit sur l'onglet et en le faisant depuis le menu contextuel.

Ensuite, vous pouvez ouvrir le dessus et toutes les autres commandes que vous voulez, tout est dans le terminal, fonctionnant comme un processus normal et indépendant qui est exécuté à partir de n'importe quel autre terminal - juste l'environnement de bureau - qui ne mourra pas après avoir senti qu'il a fait ce qu'il est censé faire.

néph
la source
En utilisant gnome-terminal intégré, il n'y a pas d'option pour définir le titre dans le menu contextuel des onglets ou n'importe quelle option dans le menu 'terminal'. Quelle version de terminal utilisez-vous?
Williams
1

En jouant, j'ai trouvé que ce n'était pas du tout la commande - c'est le profil.

Aller à:

Edit | Profiles | (Default) | Edit | Title and Command 

et changez l'option "Quand les terminaux définissent leur propre titre" en "Conserver le titre initial", au bas de la liste. Maintenant, lorsque vous lancez une commande avec un titre, elle restera, donc votre commande fonctionnera correctement.

entrez la description de l'image ici

néph
la source
Notez que vous devrez le faire pour tous les profils définis
Sylvain Pineau