Domanda Come cambiare il titolo di Gnome-Terminal?


Ho diverse istanze di terminali in esecuzione nel mio ambiente di lavoro, quello che mi piacerebbe è impostare un titolo specifico per ciascuno, al fine di avere una chiara idea di quale scopo il terminale specifico serve ad esempio Apache, editing_ini, postgres ecc ...

Ovviamente dalla riga di comando.


141
2018-01-20 13:20


origine


In seguito al commento di Ward: non dimenticarti di "disinserire PROMPT_COMMAND" prima si invia la sequenza di escape del cambio di titolo, altrimenti qualsiasi modifica apportata andrà persa non appena viene richiesto il prossimo prompt della shell. - Jon Green
Per una domanda simile per KDE, vedi stackoverflow.com/questions/8782159/... - naught101
Ho avuto questo problema quando si passa da OS X a Ubuntu. Ho usato per ottenere titoli personalizzati all'interno di una configurazione multi-tab gnome-terminal --load-config insieme a questo script Ho scritto. - halfer
aggiungi al tuo file .bashrc nella tua directory home # set title of current terminal setTerminalTitle(){ echo -ne "\033]0;${1}\007" } alias termttl=setTerminalTitle ora puoi usare l'alias termttl per impostare il titolo, ad es. termttl askubuntu - urmalp


risposte:


  • Il modo più intuitivo è sceglierlo dal menu Terminale -> "Imposta titolo ...".

  • Ci sono altri modi, tuttavia, puoi anche emettere

    gnome-terminal --title="SOME TITLE HERE"
    

    Questo potrebbe non dare l'effetto desiderato poiché c'è una grande possibilità che il tuo .bashrc sovrascrive quel comportamento

  • Portandoci all'ultimo metodo, che ho spudoratamente strappato dal mio .bashrc.

    PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'
    

Come riferimento in più, questa è la linea particolare nella mia .bashrc

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'

Potresti anche dover commentare questo codice nel tuo ~ / .bashrc

case "$TERM" in
xterm*|rxvt*)
    # JEFFYEE REMOVED because it makes commands to title() not work
    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

129
2018-01-20 13:51



Hai bisogno di commentare o rimuovere come hai detto per rendere effettivo! - topless
@Ward: PROMPT_COMMAND è un programma correre. PS1 e PS1 siamo stringhe testuali che vengono visualizzati. Nell'esempio sopra il comando che viene eseguito è echo, che quindi stampa semplicemente una stringa. Vedere man bash o manpages.ubuntu.com/bash per ulteriori dettagli. - sladen
Terminale GNOME 3.16.2 dice Option "--title" is no longer supported in this version of gnome-terminal. - Ivan Kozik
Su Gnome 3.18.3 non è presente la voce "Imposta titolo" nei menu: / - shadi
Per chiunque altro confuso dal gobbledegook nelle stringhe sopra, sono caratteri di escape ANSI - si veda ad es. lihaoyi.com/post/... - WillC


La risposta di Ward è ottima se vuoi impostare il tuo titolo in base a quale host sei ecc. Ogni volta che apri un terminale. Se si desidera impostare rapidamente un titolo, è sufficiente eseguire eco da solo:

echo -ne "\033]0;SOME TITLE HERE\007"

o fai un semplice script bash, per esempio termtitle

#!/bin/bash

echo -ne "\033]0;${1}\007"

con cui puoi correre termtitle "some title here"


52
2018-05-29 02:20



Questa è la risposta che stai cercando - iondiode
o allo stesso modo possiamo aggiungere come alias bash aggiungendo le righe sottostanti in ~ / .bash_aliases function set_title() { echo -ne "\033]0;${1}\007" } alias title=set_titlee quindi utilizzare: $ title term_title - sumit
Purtroppo non sembra funzionare per me sul terminale GNOME 3.6.2. - austinmarton
Inoltre non sembra funzionare in xterm 322 o konsole 16.12 ... Non so se c'è un nuovo metodo, purtroppo :( - naught101
@ 3ocene in questo caso non importa, sono la stessa cosa, ma è una buona abitudine entrare, perché ad es. $var_log e ${var}_log sono cose molto diverse e la differenza può causare errori negli script. - naught101


Se si utilizza l'editor Vim, è anche possibile abilitare questa opzione in vimrc:

:set title

che è disabilitato per impostazione predefinita. Imposterà fantastici titoli del terminale che mostrano il nome del file che stai modificando al momento e altre cose.


30
2018-01-20 14:40





Per completezza, aggiungerei che puoi anche impostare il gnome-terminal titolo usando questo comando:

wmctrl -r :ACTIVE: -N "MyWindowTitle"

Dovrai installare il pacchetto wmctrl Install wmctrl primo.


22
2018-01-23 00:57



MyWindowTitle non viene visualizzato nel titolo del terminale. Si presenta quando faccio wmctrl -m. - sureshvv
Si noti che wmctrl cambia il titolo della finestra e non il titolo della scheda, mentre la soluzione dei caratteri di escape cambia il titolo della scheda. Inoltre, il titolo della finestra cambia al titolo della scheda originale non appena si passa da una scheda all'altra. - redochka


Argh, tante risposte ...

Ho provato wmctrl, che quasi ha funzionato, tranne che non ho potuto farlo cambiare il titolo dell'icona, almeno non in modo permanente.

La soluzione è che PS1 in Ubuntu imposta il titolo.

Il PS1 predefinito è

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 

... che imposta il titolo nella prima sequenza di escape.

Quindi, ci sono due soluzioni:

Soluzione 1: semplificare PS1, quindi utilizzare PROMPT_COMMAND

Cambia PS1 in qualcosa di più semplice:

PS1="\u@\h:\w\$ "

... quindi utilizza PROMPT_COMMAND:

PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'

Soluzione 2: modificare direttamente PS1

Modifica semplicemente PS1 con un nuovo titolo:

PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

15
2018-02-07 03:36



ciao, mi piace molto la tua risposta. Ti dispiacerebbe spiegare il ruolo di ]0; nel tuo codice? Penso di aver trovato il significato di echo -e '\007 \033' con il ascii -o comando ... anche se sinceramente non sono sicuro di quello che sta facendo lì ... grazie ... - isomorphismes


Se sei un utente di Ubuntu, puoi cambiare il titolo di una scheda di gnome-terminal usando il HUD.

Mentre sei nel terminale di gnome, premi Alt per visualizzare l'HUD, digita le prime lettere, ad es. "tit", premi invio e digita il tuo nuovo titolo.

Questo è un metodo molto rapido ed evita l'uso del mouse.


11
2018-06-18 06:55



Infatti. Mantiene le mani sulla tastiera. Viene visualizzato il titolo esistente, quindi è facile e veloce modificare anche quello esistente utilizzando questo metodo. - Brent Faust
tetta è solo per l'inglese Ubuntu. - törzsmókus
e l'intera opzione è stata rimossa :( - törzsmókus
il F2 la chiave evita anche il mouse. - isomorphismes


Un altro modo per cambiare il titolo di gnome-terminal è usando gconftool-2; questo cambia il titolo del terminale iniziale per il profilo selezionato, in modo da poter avere profili diversi associati a titoli come "Apache", "Modifica", ecc. Avvieresti quindi gnome-terminal con il profilo appropriato per ottenere il titolo del terminale specificato. Questo è in contrasto con gnome-terminal --title "name" che cambia il titolo per terminale, ma non influenza il titolo iniziale specificato nel profilo.

È possibile utilizzare il seguente comando in uno script per impostare il nome del terminale per un profilo e si potrebbe avere il nome del cambio di terminale in determinati momenti della giornata per ricordare le cose:

gconftool-2 --set /apps/gnome-terminal/profiles/Default/title --type=string "Apache"

Questo è per il profilo predefinito, ma è possibile impostare il titolo anche per altri profili modificando, ad esempio, Default ad un altro profilo come Profile0:

gconftool-2 --set /apps/gnome-terminal/profiles/Profile0/title --type=string "Editing"

Ho pensato che questo modo di cambiare il titolo fosse utile per il modo in cui poteva essere usato negli script, o semplicemente come un modo rapido da linea di comando per impostare il titolo per il profilo. Si noti che a volte è necessario riavviare il terminale con il profilo specificato per gconftool-2 impostazione per avere effetto. Le impostazioni complete disponibili per gnome-terminal può essere elencato con gconftool-2 -R /apps/gnome-terminal.


4
2018-01-03 01:09





Un'altra soluzione è usare xdotool per simulare i tasti, forse utile negli script:

  1. Imposta una scorciatoia da tastiera in gnome-terminal:

    Edit > Keyboard Shortcuts... > Terminal > Set Title
    

    Ad esempio assing the Shift+Ctrl+Y.

  2. Installare xdotool se non lo hai già:

    sudo apt-get install xdotool
    
  3. La seguente sequenza di comandi (che è possibile utilizzare anche in uno script bash) imposterà il titolo del terminale / tab (sfuggire gli spazi con \):

    xdotool key ctrl+shift+y 
    xdotool type My\ new\ fabulous\ title
    xdotool key Return
    
  4. [facoltativo] Puoi anche usare xdotool per es. apri una nuova scheda e imposta il titolo con i comandi sopra, usando:

    xdotool key ctrl+shift+t
    

    Prendi in considerazione l'aggiunta di una sospensione prima e dopo l'apertura di una nuova scheda, ad es. sleep 1 (aspettare 1 secondo).

Questa non è la soluzione più elegante, ma ha funzionato per me! Le risposte precedenti non hanno funzionato nel mio caso. Io uso gnome-terminal in Ubuntu 14.04 e volevo creare uno script bash.


3
2017-11-12 17:55





Per visualizzare solo la directory di lavoro corrente nel titolo, prova questo nel tuo '.bashrc':

PROMPT_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'

o

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' 

2
2018-03-16 05:47





Nel caso in cui qualsiasi povera anima come me sia costretta a usare tcsh, prova qualcosa di simile nel tuo .cshrc:

set prompt='%{\033]0;%n@%m\007%}%~%# '

Fonte e ulteriori dettagli: http://tldp.org/HOWTO/Xterm-Title-4.html


0
2018-05-02 11:11