Impostazione dei titoli della scheda Terminale


11

Sto cercando di aprire alcune schede dei terminali in gnome-terminal, e finora sono riuscito a fare qualcosa , ma ora sono bloccato.

Quindi, ho il seguente requisito:

  • Schede aperte intitolate "X" e "Y"
  • Esegui alcuni comandi
  • Tenere le schede aperte e pronte per un ulteriore utilizzo; mantenere il titolo.

Finora sono riuscito a soddisfare alcuni dei requisiti, ma non tutti:

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

Questo apre due schede:

  1. "X" (e quindi cambia il titolo nel titolo predefinito)
  2. "Y", ma la scheda si chiude non appena ho chiuso top.

C'è un modo per aprire una scheda, avviare bash, ma non cambiare il titolo? Ho provato Google, ma ho rinunciato.

EDIT: non deve essere un comando.


Deve essere un comando? Perché la GUI di gnome-terminal funziona bene per questo.
Neph,

@kikjezrous Beh, so come farlo con le scorciatoie da tastiera, o semplicemente facendo clic con il pulsante destro del mouse, ma devo farlo ogni volta che riesco a lavorare (e sono 6 schede), quindi è più un problema di convenienza che una necessità reale.
omninonsense,

Ah, modificherò la mia risposta.
Neph,

Risposte:


4

Come puoi vedere in altre risposte , il titolo della scheda viene modificato dalla shell ogni volta che viene emesso un prompt. E dopo aver eseguito topla scheda si chiude perché il comando che gli hai detto di eseguire termina ...

Farò quanto segue:

Passaggio 1: chiama il terminale con shell, aggiungendo variabili di ambiente come questa:

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

Passaggio 2: aggiungi alla fine del .bashrccodice seguente:

#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

... che penso sia facile da capire e che puoi modificare con il comando / le modifiche di cui hai bisogno. Testato e funziona bene; dopo essere usciti topdalla scheda avrai ancora il prompt e la scheda per poter esaminare.

Schermata (dopo aver premuto "q" in top):

immagine dello schermo


6

Per mantenere i titoli delle schede devi commentare le seguenti righe nel tuo .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

Quindi gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"funzionerà come previsto:

inserisci qui la descrizione dell'immagine


Contrassegnando questa come la risposta giusta, poiché è la più semplice. :-)
omninonsense

Ho modificato la risposta accettata (e modificata leggermente), perché si adattava meglio alle mie esigenze; questa è comunque un'ottima risposta!
omninonsense,

1
Nessun problema, è come funziona :)
Sylvain Pineau,

1

Suppongo che non debba essere un comando e sto dando un modo totalmente grafico per farlo.

Dopo aver avviato gnome-terminal, il menu 'file' ti consente di aprire nuove schede a cui verrà assegnato un determinato titolo. Ciò può essere modificato dal menu 'terminale' o facendo clic con il tasto destro sulla scheda e facendolo dal menu contestuale.

Quindi puoi aprire top e qualunque altro comando tu voglia, è tutto nel terminale, eseguito come un normale processo non associato che viene eseguito da qualsiasi altro terminale - solo l'ambiente desktop - che non morirà dopo aver sentito che ha fatto quello che è dovrebbe fare.


Usando built-in gnome-terminal non c'è alcuna opzione per impostare il titolo nel menu contestuale per le schede o qualsiasi opzione nel menu 'terminale'. Quale versione del terminale stai usando?
Williams,

1

Mentre giocavo, ho scoperto che non è affatto il comando - è il profilo.

Vai a:

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

e modifica l'opzione "Quando i terminali impostano il proprio titolo" su "Mantieni titolo iniziale", in fondo all'elenco. Ora, quando lanci un comando con un titolo, resterà in attesa, quindi il tuo comando funzionerà correttamente.

inserisci qui la descrizione dell'immagine


Nota che dovrai farlo per ogni profilo definito
Sylvain Pineau,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.