Lecture par programme des deux titres Terminal.app par onglet


2

Lorsque vous ouvrez l'inspecteur (⌘I) dans Terminal.app pour modifier le titre (I), vous pouvez saisir deux titres. Le premier est appelé Titre de l'onglet et affecte le titre de la fenêtre du terminal (mais uniquement lorsque cet onglet est sélectionné). Le second est le sous-titre de l'onglet et affecte le texte dans l'en-tête de l'onglet uniquement. [La dénomination semble étrange, onglet Titre affectant le titre de la fenêtre et onglet Sous-titre affectant le titre de l'onglet.]

Préférant osascript, mais ouvert à d’autres approches, je souhaite obtenir par programme ces deux titres pour chaque onglet. En parcourant les dictionnaires AppleScript, les documents de structure Cocoa, etc., je n’ai trouvé que la façon de lire le titre de l’onglet, présenté comme la propriété "titre personnalisé" (custom_title) de l’onglet. C’est celui auquel toutes les recherches donnent pour obtenir / définir le titre via osascript. Même s'il existe d'autres propriétés de titre dans la fenêtre et tab.current_settings, il semble qu'elles se réfèrent toutes uniquement à ce premier champ de titre, ce qui entraîne une certaine redondance.

Je règle chaque titre par programme à l'aide de séquences d'échappement de terminal, car je ne sais pas comment définir le sous-titre de tabulation.

Bien qu'il soit possible d'utiliser des scripts d'interface utilisateur, je m'attends à ce qu'une telle approche doive visiblement parcourir toutes les fenêtres / tous les onglets du terminal afin de tous les lire lors de la production de la sortie globale souhaitée. Je préférerais quelque chose qui puisse obtenir les données sans causer de changements de sélection / focus.

Ma dernière option semble un peu lourde (bien que cela puisse quand même être préférable aux scripts d'interface utilisateur) qui consiste à exporter les paramètres (Shell> Paramètres d'exportation ...), ce qui produit un fichier XML volumineux comprenant les deux champs. Étonnamment, les structures de données de ce fichier correspondent aux structures AppleScript de manière presque identique, à l'exception du champ qui me manque.

Étant assez novice en matière de programmation sur la plate-forme Apple, quelqu'un peut-il m'expliquer comment je peux obtenir ces données qui semblent devoir exister à l'endroit que je cherche mais que je suis incapable de trouver?

Réponses:


1

Essayer:

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.