Programaticamente ler ambos os títulos Terminal.app por tabulação


2

Ao trazer o Inspetor (⌘I) no Terminal.app para editar o título (⇧⌘I), existem dois títulos que podem ser inseridos. O primeiro é conhecido como o título da aba e afeta o título da janela do terminal (mas somente quando essa aba é selecionada). O segundo é o subtítulo de tabulação e afeta o texto apenas no cabeçalho da guia. [A nomeação parece estranha, com o Tab Title afetando o título da janela, e a Tab Subtitle afetando o título da tab.]

Preferindo o osascript, mas aberto a outras abordagens, desejo obter, por programação, esses dois títulos para cada guia. Ao percorrer dicionários do AppleScript, documentos do framework Cocoa, etc., eu só encontrei como ler o título do guia, apresentado como a propriedade "custom title" (custom_title) da guia. Este é o único que todos os hits de pesquisa sobre como obter / definir o título via osascript se referem. Embora existam outras propriedades de título na janela e tab. Current_settings, parece que todas elas fazem referência apenas a este primeiro campo de título e, portanto, há alguma redundância.

Eu estou definindo cada título programaticamente usando seqüências de escape de terminal, como eu também não sei como definir o subtítulo de guia.

Embora seja possível usar o script da interface do usuário, espero que essa abordagem tenha que percorrer visualmente todas as janelas / guias do Terminal, a fim de lê-las todas ao produzir a saída geral que desejo. Eu preferiria algo que pudesse obter os dados sem causar alterações de seleção / foco.

Minha última opção parece um pouco pesado (embora ainda possa ser preferível ao script da interface do usuário) que é exportar as configurações (Shell & gt; Configurações de exportação ...) que produz um arquivo XML grande que inclui os dois campos. Surpreendentemente, as estruturas de dados nesse arquivo correspondem às estruturas do AppleScript quase de forma idêntica, exceto pelo fato de incluir o campo que estou ausente.

Sendo bastante novo para programar na plataforma da Apple, alguém pode me esclarecer como eu posso obter esses dados que parece que deve existir no lugar que estou procurando, mas que não consigo encontrar?

Respostas:


1

Experimentar:

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.