1 votos

Estableciendo los títulos de ventana y pestaña de Terminal.app de forma permanente

Soy un usuario frecuente de la terminal. Comencé a usar Terminal cuando obtuve esta máquina, y ha estado funcionando desde entonces. Siempre tengo abiertas de 8 a 10 pestañas, y me gustaría estar más organizado - lo que significa que me gustaría tener títulos de pestañas permanentes. Los títulos de pestañas permanentes me ayudarán a mantener todas las actividades relacionadas con la Terminal ubicadas bajo la misma pestaña; por ejemplo, una pestaña en la que permanezco conectado a una conexión SSH a mi NAS; otroa pestaña para realizar actividad git en un repositorio local, etc.

Esa ha sido mi búsqueda durante algunas semanas, ¡pero no estoy más cerca ahora de lo que estaba cuando empecé! He leído varias preguntas y respuestas aquí (1, 2, 3) y en otros sitios de SE. He buscado y leído - pero la mayoría de las cosas que leo o bien no funcionan en absoluto, o funcionan solo temporalmente. Estoy seguro de que debo estar pasando por alto algo fundamental, pero no he podido averiguar qué es.

Por ejemplo, esta respuesta frecuentemente votada aconseja que debería poder establecer el nombre de la pestaña de la terminal desde la línea de comandos de la siguiente manera:

% echo -en "\033]1; New Name \007"
# -- O --
% printf '\e]1;%s\a' 'New Name'

He probado ambas opciones - múltiples veces - ¡y no hace nada! También diré que hay varias cosas en esta respuesta que no entiendo en absoluto.

He seguido la Guía del usuario de Apple para Terminal. Aconseja abrir el "Inspector" para cambiar el Título y/o Pestaña. En realidad cambia el Título y la Pestaña - pero vuelven a "algo más" tan pronto como se escribe algo en la línea de comandos en la pestaña. ¡No veo para qué podría ser útil eso a nadie?

Si hace alguna diferencia, estoy usando el prompt pure zsh.

¿Qué estoy pasando por alto? ¿Hay alguna manera de establecer un Titulo de Pestaña que permanezca constante durante el uso repetido, reinicios, etc?

3voto

Marc Wilson Puntos 146

Utilizas Pure para generar un prompt bonito. Pure establece títulos, tiene una función prompt_pure_set_title() para eso, y la llama en prompt_pure_preexec() y prompt_pure_precmd(). Eso es lo que está anulando lo que estás haciendo desde la línea de comandos.

$PS1 es la variable que finalmente contiene el prompt en la mayoría de las shells

Cambiar el título con echo requiere que envíes los códigos de escape correctos, al igual que envía tu prompt de shell. Para tu ejemplo anterior, la secuencia correcta sería

$ echo -en "\033]0; Nuevo Nombre \007"

Eso no impide que algún otro proceso cambie inmediatamente el título a otra cosa.

O puedes configurarlo con Terminal.app en sí mismo... para eso sirve el campo de Título en la pestaña de Ventana de tu perfil actual de Terminal.app. Pero entonces tendrías que anular lo que sea que otros procesos están cambiando el título.

0voto

Joel Puntos 112

Este es solo un seguimiento de la excelente respuesta de @MarcWilson, y está destinado para aquellos que puedan estar usando pure, u otras indicaciones similares:

Después de leer la respuesta de Marc, publiqué el problema número 685 en el sitio de GitHub de pure. Recibí una respuesta casi inmediata que explicaba cómo desactivar la función prompt_pure_set_title():

Sobrescribe la función insertando una versión no-op en ~/.zshrc, después de la línea prompt pure:

# editar ~/.zshrc, después de la línea 'prompt pure', agregar:
prompt_pure_set_title() {} 

# guardar, salir del editor y volver a cargar:
% . ~/.zshrc 

# aplicar la modificación 'tab/título' de la respuesta de Marc:
% echo -en "\033]0; Nuevo Nombre \007"

¡Y funciona!

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X