Instalación nueva de Ubuntu 15.04: no se puede cambiar el nombre de las pestañas gnome-terminal

38

En Ubuntu 14.10, si tuviera varias pestañas de Terminal abiertas, podría hacer clic derecho en una pestaña de Terminal y cambiarle el nombre. En Ubuntu 15.04 no puedo encontrar esta característica.

¿Hay alguna manera fácil de recuperarlo?

Esta es la versión actual:

$ gnome-terminal --version
GNOME Terminal 3.14.2
Tom
fuente

Respuestas:

21

Respondido aquí

Yo cito:

El user titlecódigo fue eliminado 1 de gnome-terminal 3.14. Solo hay una forma de establecer el título, usando una secuencia de escape, por ejemplo, con bash:

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

1: ver error de gnomo 724110 y error de gnomo 740188 .

AB
fuente
10
Gracias por la respuesta. Es una pena que se haya ido, espero que lo vuelvan a agregar en la próxima versión, mientras tanto, usaré la secuencia de escape en lugar del método de clic derecho.
Tom
2
@Tom Escribir un informe de error =)
AB
13
no es solo una lástima: no tiene sentido. Tuve la mala idea de "actualizar" de Debian Wheezy a Jessie solo para tener todo (aún no estoy seguro, de hecho) que tenía antes, pero peor; malas decisiones y fallas tontas (por ejemplo, en gdm3 la lista de posibles wm / sesiones que he instalado no encaja ni se desplaza, por lo que es un corte simple y, por lo tanto, no puedo elegir todas las wm que tengo). Para mí, GNOME está condenado desde entonces gnome-shell. También desapareció el menú para abrir una nueva terminal en una nueva ventana o pestaña (pero aún puede hacerlo a través del acceso directo. ¿Por qué? Reemplace todo con un gran botón inteligente: ¡un clic y hace cualquier cosa!)
ShinTakezou
2
Por lo general, las nuevas versiones agregan y no eliminan funciones.
angelcervera
2
Hice un comando (un script de shell) llamado tab que contiene simplemente echo -ne "\ 033] 0; $ 1 \ 007", así que ahora en cualquier pestaña puedo ejecutar tab TABNAME para establecer el título de la pestaña. No es tan conveniente como hacer clic derecho en la pestaña para cambiar el nombre, pero lo hará por ahora. Gracias AB!
Brian Pipa
31

La .bashrcsolución propuesta por Kirby funcionó para mí:

set-title(){
  ORIG=$PS1
  TITLE="\e]2;$@\a"
  PS1=${ORIG}${TITLE}
}

entonces de mi aviso: $ set-title test-title

ronan_mac
fuente
2
Me funciona bien en 15.10, la única advertencia es que cada vez que lo ejecutas anexas a PS1, así que no hagas esto desde un script. Después lo llamé varias veces con set-title "longer and ":echo $PS1 \[\e]0; \u@\h: \w \a\]\u@\h:\w\[\033[m\]$(__git_ps1)$ \e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a
ahcox
1
¡funciona para mí en ubuntu 16.04!
Programador
1
funciona como encanto !!
sharadendu sinha
¿Cómo cambio el título mientras se ejecuta un proceso en primer plano, que no quiero abortar?
Jānis Elmeris
1
Creo que puede hacerlo haciendo una pausa en el proceso usando Control + Z, luego set-title X, fgpara reanudar el proceso.
ronan_mac
18

No puedo creer que hayan eliminado una función tan fácil de usar como esta.

Me estoy cambiando a ROXTerm ( http://roxterm.sourceforge.net ), que funciona muy bien. Está empaquetado en Ubuntu:

sudo apt-get install roxterm

Luego, deja que el dinosaurio siga su propio camino ;-)

Michael Opdenacker
fuente
1
¿Cómo puedo cambiar el título de la pestaña en roxterm? No pude encontrarlo.
Halil
funcionará también para 16.04
prusswan
Wow, no puedo establecer un terminal en segundo plano con gnome-terminal y nunca entendí por qué ... es un problema con el terminal en sí. El fondo de la terminal del diablo funciona bien con Roxterm.
m3nda
1
RoxTerm es increíble y aún funciona, pero lamentablemente no continuará por más tiempo: sadface:: sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
Williams
Me cambié a Terminator desde entonces, y ya no tuve que usar RoxTerm ...
Michael Opdenacker
14

He probado RoxTerm como se sugirió anteriormente, con buenos resultados. Pero me instalé en la Terminal MATE, que es parte del Proyecto MATE, una continuación de Gnome 2, el 15.04:

sudo apt-get install mate-terminal

Ese terminal se basa en el código del terminal Gnome.


Comentario: es difícil entender la mentalidad de los desarrolladores de Gnome Terminal. Hay mucha discusión sobre "cómo" nombrar las pestañas de terminal y cómo es difícil hacerlo bien. Si ese es el caso, ¿por qué hacer que sea más difícil para el usuario nombrarlos? No es muy inteligente en absoluto.

Doug Van Horn
fuente
6

Ahora he investigado esto durante la mayor parte del día y finalmente encontré una manera de establecer este título. Se realiza mediante secuencias de escape que comienzan con \ e] 0; y termina con un carácter BEL (= \ 007 = \ a). A diferencia de lo que dije anteriormente, las comunicaciones desde el shell de regreso a la aplicación del terminal son posibles, muy limitadas, a través de tales secuencias de escape (hay algunas más).

Sobre esto desde arriba:

PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'

Se puede trabajar, pero no lo hace siempre. PROMPT_COMMANDes una variable cuyo contenido se ejecuta cada vez que envía un comando, por lo que también envía esta secuencia de escape. Sin embargo, esto puede ser anulado por una secuencia de escape en la variable PS1, que establece la línea de comando. Es por eso que lo anterior no tuvo efecto aquí.

De una instalación anterior de Ubuntu, tomé esto, que establece el símbolo del sistema (parte derecha, después de ]) y también envía la secuencia de escape requerida (parte izquierda, hasta e incluyendo el ]):

PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "

Es probable que esto funcione mejor, porque no hay necesidad de interpretar $PROMPT_COMMANDcada vez. También tiene muchas más opciones, porque Bash tiene más secuencias de escape aquí, por ejemplo, \upara el nombre de usuario actual, \Wpara el nombre del directorio actual o \wpara la ruta completa del directorio de trabajo actual, opcionalmente recortado a los últimos por el número $PROMPT_DIRTRIM. Consulte el capítulo PROMPTINGen la página del manual de Bash. También tenga en cuenta que la secuencia de escape también debe estar rodeada por \[y \]aquí.

Para establecer un título fijo, esto funciona:

PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "

¡Disfrutar!


Durante mi investigación también traté de comprender el código fuente de gnome-terminal, que conduce al código fuente vte y allí el soporte para la configuración del título y la lectura de secuencias de escape se considera un riesgo de seguridad: consulte aquí (caso 20, caso 21) y aquí ("Informe de título de ventana").

Traumflug
fuente
Esto establece el título, pero también elimina cualquier definición anterior de PS1para otros usos, como establecer un símbolo del sistema personalizado. Intenté agregar su secuencia de escape a los PS1contenidos existentes y parece funcionar. De esta manera: PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
ahcox
5

Establecer $ PROMPT_COMMAND como se muestra arriba tiene cero efecto aquí. No es de extrañar, porque Bash se ejecuta dentro del terminal y los procesos primarios (aquí: gnome-terminal) no pueden leer el entorno de un niño en un sistema operativo tipo UNIX. Usando algo más simple, como

PROMPT_COMMAND='echo bla'

Ejecuta echo bla , no pasa nada más.

Editar: uno tiene que envolver esto en secuencias de escape, vea mi otra respuesta. A pesar de que no es posible leer el entorno del niño, a través de estas secuencias es posible comunicarse con los padres.

En el error Gnome 740188 hablan sobre la definición de una función title () en .bashrc. ¿Una diferente para cada pestaña abierta? ¡Hackeo feo y severo por delante, si es posible!

Incluso otras explicaciones sobre Stackexchange hablan sobre configurar $ PS1 (y recibir un voto positivo). Lo sentimos, no, ese no es el título, ese es el símbolo del sistema.

En resumen: lo estropearon sin remedio para ahorrar un poco de espacio en el diálogo de preferencias. Dios mio

Ahora, la única oportunidad de revertir una decisión del desarrollador es encender una tormenta de mierda severa, de lo contrario, simplemente cerrarán su informe de error en segundos (lo intentaron muchas, muchas, muchas veces). ¿Cómo crearíamos esta tormenta de mierda?

Traumflug
fuente