3 votos

update_terminal_cwd desmitificado por favor?

Estoy tratando de encontrar la documentación sobre lo que, exactamente, el printf está haciendo en update_terminal_cwd .

Por si no lo sabías ya, el update_terminal_cwd función se define (al menos en Mac OS X 10.7.4) en /etc/bashrc y en ese mismo archivo se añade la función $PROMPT_COMMAND para que se ejecute cada vez que se pulsa enter en el Terminal.

El texto de la update_terminal_cwd es la siguiente:

update_terminal_cwd() {
    # Identify the directory using a "file:" scheme URL,
    # including the host name to disambiguate local vs.
    # remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}

Esto es unos cuantos pasos en la madriguera del conejo de intentar establecer los nombres de las pestañas de mi Terminal desde la línea de comandos que se puede hacer con bastante facilidad pero el nombre de la pestaña se restablece cuando ssh en una caja.

Esto me llevó a ¿Cómo detener el cambio automático de los títulos de iTerm? y el más bien oscuro lista de secuencias de control en el Mac .

Si vas a ese último enlace y buscas la cadena osc ps ; pt bel encontrarás la sección que define el carácter de escape que hace que el renombramiento de las pestañas funcione. Sin embargo, aunque eso explica printf '\e]1;%s\a' (nótese el "1"), no explica qué hace el "7" en el update_terminal_cwd función que he citado anteriormente.

¿Dónde está documentado esto? (¿Y por qué PWD_URL incluir el prefijo file:// ?)

0 votos

El prompt de la caja ssh remota podría estar enviando algunas cadenas que cambian el título de tu terminal local. He notado que algo como sleep 5 actualiza parte del título de la pestaña y de la ventana para que sea sleep pero no estoy seguro de cómo se activa.

4voto

mtklr Puntos 122

Desde Terminal.app v2.6.1 (OS X 10.11), en Preferencias/Perfiles/Ventana, hay un texto resaltado "Secuencia de escape..." que dice:

El directorio de trabajo y la ubicación del documento actual pueden establecerse utilizando la secuencia de escape de comandos del sistema operativo (OSC):

ESC ] Ps ; Pt BEL

El parámetro Ps es 6 (documento) o 7 (directorio de trabajo) y Pt es un "archivo:" URL. La URL debe incluir un nombre de host para desambiguar rutas locales y remotas, y los caracteres deben estar codificados en porcentaje como apropiados.

Cuando el directorio de trabajo y el documento se establecen, sólo el documento se muestra.

también, desde Preferencias/Perfiles/Tab:

Los títulos de las ventanas y de las pestañas pueden establecerse mediante el comando del sistema operativo (OSC):

ESC ] Ps ; Pt BEL

El parámetro Ps es 1 (título de la pestaña-aka "título del icono") o 2 (título de la ventana de la ventana) y Pt es el texto del título.

Se mostrará un título de ventana personalizado dentro del título de la pestaña (junto con con los otros elementos seleccionados) si no hay un título de pestaña personalizado.

El siguiente comando bash de ejemplo establece el título de la pestaña como "Mi pestaña":

printf '\e]1;%s\a' 'My Tab'

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