update_terminal_cwd desmitificado por favor?

Estoy tratando de encontrar la documentación sobre qué, exactamente, printfestá haciendo el comando en update_terminal_cwd.

Si aún no lo sabía, la update_terminal_cwdfunción se define (al menos en Mac OS X 10.7.4) /etc/bashrcy en ese mismo archivo se agrega la función $PROMPT_COMMANDpara que se ejecute cada vez que presiona enter en la Terminal.

El texto de la update_terminal_cwdfunción en sí es el 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 está a unos pocos pasos de intentar configurar los nombres de las pestañas de mi Terminal desde la línea de comandos , lo que se puede hacer con bastante facilidad , pero el nombre de la pestaña se restablece cuando sshse ingresa en un cuadro.

Esto me llevó a ¿Cómo detener el cambio automático de títulos de iTerm? y la lista bastante oscura de secuencias de control en Mac .

Si va a ese último enlace y busca la cadena osc ps ; pt bel, encontrará la sección que define el carácter de escape que hace que funcione el cambio de nombre de la pestaña. Sin embargo, si bien eso explica printf '\e]1;%s\a'(observe el "1"), no explica lo que hace el "7" en la update_terminal_cwdfunción que cité anteriormente.

donde esta documentado esto?? (¿Y por qué PWD_URLincluye el prefijo file://?)

El indicador del cuadro ssh remoto podría estar enviando algunas cadenas de cambio de título que restablecen el título de su terminal local. Me di cuenta de que algo así como sleep 5actualiza parte de la pestaña y el título de la ventana sleep, pero no estoy seguro de cómo se activa.

Respuestas (1)

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 se pueden configurar mediante la secuencia de escape del comando del sistema operativo (OSC):

ESC ] Sal ; Punto BEL

El parámetro Ps es 6 (documento) o 7 (directorio de trabajo) y Pt es una URL de "archivo:". La URL debe incluir un nombre de host para eliminar la ambigüedad de las rutas locales y remotas, y los caracteres deben estar codificados en porcentaje según corresponda.

Cuando tanto el directorio de trabajo como el documento están configurados, solo se muestra el documento.

también, desde Preferencias/Perfiles/Pestaña:

Los títulos de las ventanas y las pestañas se pueden configurar mediante la secuencia de escape del comando del sistema operativo (OSC):

ESC ] Sal ; Punto BEL

El parámetro Ps es 1 (título de la pestaña, también conocido como "título del icono") o 2 (título 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 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 en "Mi pestaña":

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