2012-05-09 10 views
20

Voglio cambiare il titolo della finestra di gnome-terminal per riflettere la directory corrente. C'è un modo per farlo? Una sceneggiatura può essere? I thread "modifica del titolo del terminale" non sono stati di grande aiuto. manualmente quando usiamo il comando:Cambia il titolo di gnome-terminal per riflettere la directory corrente?

gnome-terminal --title=$PWD 

funziona, ma viene creata una nuova istanza terminale (come previsto). Voglio essere in grado di utilizzare il

--title=$PWD 

con il comando cd.

C'è un modo per farlo?

risposta

38

poiché gnome-terminal utilizza gli stessi comandi di controllo di xterm questa pagina potrebbe essere utile.

Xterm Title for bash and other shells

TL; DR:

aggiungete quanto segue al vostro .bashrc

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

+3

striscia '$ {USER} @ $ {HOSTNAME}:' se si desidera solo la pwd – dwalter

+0

upvoted, ma come possiamo mostrare l'intero percorso? – Mawg

3

lo sto facendo in questo modo per ignorare il comando cd e impostare pwd nel titolo :

function title { echo -en "\033]2;$1\007"; } 
function cd { dir=$1; if [ -z "$dir" ]; then dir=~; fi; builtin cd "$dir" && title `pwd`; } 
cd `pwd` 

Ho appena lanciato questo nel mio ~/.bash_aliases. Potresti probabilmente modificarlo per fare ciò che vuoi.

+1

Funziona perfettamente per me su MacOS 10.10 usando iTerm, dopo aver aggiunto le funzioni sopra al mio '.profile'. Suggerirei anche di aggiungere 'pushd' e' popd' come segue: 'function pushd {dir = $ 1; se [-z "$ dir"]; quindi dir = ~; fi; builtin pushd "$ dir" && title \ 'pwd \'; } '' function popd {builtin popd && title \ 'pwd \'; } ' –

7

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' visualizzerà solo la directory corrente come il titolo

+1

Ottimo! Qualche modo di mostrare la directory principale e quella corrente? es. "Download/docs" –

+0

@MariusAndreiana Brutto e inelegante, ma funziona: "echo -ne" \ 033] 0; $ (nome di base $ (dirname $ {PWD}))/$ (nome di base $ {PWD}) \ 007 "' – vityav

1

Io non sono un esperto, ma si dovrebbe cercare di modificare il file ~/.bashrc. Se ho capito bene il tuo problema puoi cambiare il tuo .bashrc secondo il mio (sto usando Ubuntu 12.04). La "vecchia" linea è commentata e la nuova è sotto di essa (con commento aggiuntivo).

case "$TERM" in 
xterm*|rxvt*) 
    # OLD PS1 directive 
    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\[email protected]\h: \w\a\]$PS1" 
    # NEW PS1 directive, shows only current directory name as terminal window name 
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\W\a\]$PS1" 
    ;; 
*) 
    ;; 
esac 

Il risultato è che il mio titolo terminale è uguale al mio titolo corrente directory ad es. dopo cd Documents/projects mio titolo terminale è projects (se il file è aperto il nome del terminale è il suo nome)