Consente di leggere a livello di codice entrambi i titoli Terminal.app per scheda

2

Quando si attiva Inspector (⌘I) in Terminal.app per modificare il titolo (⇧⌘I), ci sono in realtà due titoli che possono essere immessi. Il primo è noto come Titolo Tab e influisce sul titolo della finestra terminale (ma solo quando questa scheda è selezionata). Il secondo è il sottotitolo della scheda e influisce solo sul testo nell'intestazione della scheda. [La denominazione sembra strana, con il titolo della scheda che influisce sul titolo della finestra e il sottotitolo della scheda che influisce sul titolo della scheda.]

Preferendo osascript, ma aperto ad altri approcci, desidero programmaticamente ottenere entrambi questi titoli per ogni scheda. Passando attraverso i dizionari AppleScript, i documenti del framework Cocoa, ecc., Ho solo trovato come leggere il titolo della scheda, emerso come proprietà "custom title" (custom_title) della scheda. Questo è quello a cui tutti i risultati di ricerca su come ottenere / impostare il titolo tramite osascript si riferiscono. Anche se ci sono altre proprietà del titolo nella finestra e tab.current_settings, sembra che facciano riferimento solo a questo primo campo del titolo e quindi c'è una certa ridondanza.

Sto impostando ogni titolo a livello di codice usando le sequenze di escape del terminale, poiché anch'io non so come impostare il sottotitolo della scheda.

Sebbene sia possibile utilizzare lo scripting dell'interfaccia utente, mi aspetto che un simile approccio debba scorrere ciclicamente attraverso tutte le finestre / schede di Terminale per poterle leggere tutte quando si produce l'output complessivo che desidero. Preferirei qualcosa che possa ottenere i dati senza causare cambiamenti nella selezione / messa a fuoco.

La mia ultima opzione sembra un po 'pesante (sebbene possa ancora essere preferibile allo scripting dell'interfaccia utente) che consiste nell'esportare le impostazioni (Shell > Impostazioni di esportazione ...) che produce un grande file XML che include entrambi i campi. Sorprendentemente, le strutture dati in questo file corrispondono alle strutture AppleScript in modo quasi identico, tranne per il fatto che include il campo che altrimenti mancherò.

Essendo abbastanza nuovo per la programmazione sulla piattaforma Apple, qualcuno può illuminarmi su come posso ottenere questi dati che sembra che dovrebbero esistere nel posto che sto cercando ma che non riesco a trovare?

    
posta TerminalUser 20.11.2012 - 22:34
fonte

1 risposta

1

Prova:

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
    
risposta data 20.11.2012 - 22:57
fonte

Leggi altre domande sui tag