2012-05-09 13 views
20

Quiero cambiar el título de la ventana gnome-terminal para reflejar el directorio actual. ¿Hay alguna manera de hacerlo? Un script puede ser? Los hilos "cambiar título de terminal" no ayudaron mucho. manualmente cuando usamos el comando:¿Cambiar el título del terminal gnome para reflejar el directorio actual?

gnome-terminal --title=$PWD 

funciona, pero no se crea una nueva instancia de terminal (como se esperaba). Quiero ser capaz de utilizar el

--title=$PWD 

con el comando cd.

¿Hay alguna manera de lograr eso?

Respuesta

38

ya que gnome-terminal utiliza los mismos comandos de control que xterm esta página puede ser útil.

Xterm Title for bash and other shells

TL; DR:

complemento siguiente a su .bashrc

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

+3

tira '$ {USER} @ $ {hostname}:' si lo que desea el pwd – dwalter

+0

upvoted, pero ¿cómo podemos mostrar todo el camino? – Mawg

3

lo estoy haciendo como esto para anular el comando cd y establecer pwd en el título :

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` 

Acabo de lanzar esto en mi ~/.bash_aliases. Probablemente puedas modificar esto para hacer lo que quieras.

+1

Esto funciona perfectamente para mí en MacOS 10.10 usando iTerm, después de agregar las funciones anteriores a mi '.profile'. También sugeriría agregar 'pushd' y' popd' de la siguiente manera: 'function pushd {dir = $ 1; si [-z "$ dir"]; luego dir = ~; fi; builtin pushd "$ dir" && title \ 'pwd \'; } '' función popd {builtin popd && title \ 'pwd \'; } ' –

7

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' mostrará sólo el directorio actual como el título

+1

¡Genial! ¿Alguna manera de mostrar el directorio principal y el actual? por ejemplo, "Descargas/documentos" –

+0

@MariusAndreiana Feo y poco elegante, pero funciona: 'echo -ne" \ 033] 0; $ (nombre base $ (dirname $ {PWD}))/$ (nombre base $ {PWD}) \ 007 "' – vityav

1

No soy un experto, pero usted debe tratar de editar el archivo ~/.bashrc. Si entendí tu problema correctamente, puedes cambiar tu .bashrc según mi (estoy usando Ubuntu 12.04). La línea "vieja" está comentada y la nueva está debajo de ella (con comentario adicional).

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 

El resultado es que mi título de terminal es igual al título de mi directorio actual, por ej. después cd Documents/projects mi título terminal es projects (si el archivo está abierto el nombre del terminal es su nombre)

Cuestiones relacionadas