web-dev-qa-db-fra.com

Définition des titres d'onglet Terminal

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.

Donc, j'ai l'exigence suivante:

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

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

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

Cela ouvre deux onglets:

  1. "X" (puis change le titre en titre par défaut)
  2. "Y", mais l'onglet se ferme dès que j'ai quitté top.

Existe-t-il un moyen d'ouvrir un onglet en lançant bash, mais not changer le titre? J'ai essayé Google, mais j'ai abandonné.

EDIT: Cela ne doit pas nécessairement être une commande.

11
omninonsense

Comme vous pouvez le voir dans autres réponses , le titre de l'onglet est modifié par le shell à chaque fois qu'il génère une invite. Et après avoir exécuté topvotre onglet se ferme parce que la commande que vous lui avez demandée 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 celles-ci:

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 .bashrc le code 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/les réglages dont vous avez besoin. Testé et fonctionne bien; Après avoir quitté topde l'onglet, vous aurez toujours l'invite et l'onglet à parcourir.

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

screenshot

4
Rmano

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

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

enter image description here

6
Sylvain Pineau

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

Après avoir lancé gnome-terminal, le menu 'Fichier' vous permet d’ouvrir de nouveaux onglets auxquels un titre donné sera attribué. Cela peut être changé en utilisant le menu "terminal" ou en faisant un clic droit sur l'onglet et en le faisant depuis le menu contextuel.

Ensuite, vous pouvez ouvrir top et toutes les autres commandes que vous voulez, tout est dans le terminal, exécuté comme un processus normal, indépendant et non lié exécuté depuis n’importe quel autre terminal - uniquement l’environnement de bureau - qui ne mourra pas après avoir eu l’impression d’avoir fait ce qu’il a fait. censé faire.

1
neph

En jouant, j'ai découvert que ce n'était pas du tout la commande, mais le profil.

Aller à:

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

et remplacez l'option "Lorsque les terminaux définissent leur propre titre" par "Conserver le titre initial", située au bas de la liste. Désormais, lorsque vous lancez une commande avec un titre, celle-ci reste visible et votre commande fonctionnera correctement.

enter image description here

1
neph