Lea programáticamente ambos títulos de Terminal.app por pestaña

Al abrir el Inspector (⌘I) en Terminal.app para editar el título (⇧⌘I), en realidad hay dos títulos que se pueden ingresar. El primero se conoce como Título de la pestaña y afecta el título de la ventana del terminal (pero solo cuando se selecciona esa pestaña). El segundo es el subtítulo de la pestaña y afecta solo al texto del encabezado de la pestaña. [El nombre parece extraño, con el título de la pestaña afectando el título de la ventana y el subtítulo de la pestaña afectando el título de la pestaña].

Prefiriendo osascript, pero abierto a otros enfoques, deseo obtener mediante programación ambos títulos para cada pestaña. Al revisar los diccionarios AppleScript, los documentos del marco Cocoa, etc., solo encontré cómo leer el título de la pestaña, que apareció como la propiedad "título personalizado" (custom_title) de la pestaña. Este es al que se refieren todos los resultados de búsqueda para obtener/establecer el título a través de osascript. Aunque hay otras propiedades de título en la ventana y tab.current_settings, parece que todas hacen referencia solo a este primer campo de título y, por lo tanto, hay cierta redundancia.

Estoy configurando cada título mediante programación usando secuencias de escape de terminal, ya que tampoco sé cómo configurar el Subtítulo de pestaña.

Aunque es posible usar secuencias de comandos de interfaz de usuario, espero que dicho enfoque tenga que pasar visiblemente por todas las ventanas/pestañas de Terminal para poder leerlas todas cuando produzca el resultado general que deseo. Preferiría algo que pueda acceder a los datos sin causar cambios de selección/enfoque.

Mi última opción parece un poco pesada (aunque aún puede ser preferible a las secuencias de comandos de la interfaz de usuario), que es exportar la configuración (Shell> Configuración de exportación...) que produce un archivo XML grande que incluye ambos campos. Sorprendentemente, las estructuras de datos en este archivo coinciden con las estructuras de AppleScript casi de manera idéntica, excepto que incluye el campo que de otro modo me faltaría.

Siendo bastante nuevo en la programación en la plataforma Apple, ¿alguien puede aclararme cómo puedo obtener estos datos que parece que deberían existir en el lugar que estoy buscando pero que no puedo encontrar?

Respuestas (1)

Intentar:

tell application "Terminal"
    set myTabs to every tab of window 1
    set myData to {}
    repeat with aTab in myTabs
        set aTab's selected to true
        delay 0.2
        set windowTitle to name of window 1
        set customTitle to aTab's custom title
        set end of myData to "Window:" & windowTitle & return & "Custom Title:" & customTitle & return & return
    end repeat
    display dialog (myData as text)
end tell