簡體   English   中英

如何以編程方式設置 Mac OS X 10.6 終端選項卡標題?

[英]How do I set Mac OS X 10.6 Terminal tab title programmatically?

我正在嘗試學習 Applescript,因為我想最終以編程方式將終端中的選項卡標題設置為我目前正在使用的任何上下文。應該是一項簡單的任務,我認為它幾乎是正確的. 到目前為止,這是我的實驗代碼......

tell application "Terminal"
    activate
    set frontIndex to index of the first window whose frontmost is true
    tell window frontIndex
        set title displays custom title of selected tab to true
        set custom title of selected tab to "Bazzy"
    end tell
end tell

問題是當我設置選項卡的標題時,所有其他選項卡的標題也會設置。 但是,如果我右鍵單擊並檢查一個選項卡,然后在該選項卡上手動設置標題,則在我運行代碼時它的標題不會受到影響,並且我手動輸入的標題仍然存在。 就好像title displays custom title屬性沒有被讀取,或者這個屬性沒有做我認為的那樣。

如何將一個選項卡的標題設置為自定義值?

我您正在從終端本身執行腳本,您可以使用簡單的echo ,例如:

echo -n -e "\033]0;Tech-Recipes rules\007"

如果您將它放在$PS1中,它會起作用,以便每次呈現提示時它都會更改。

來源: 如何以編程方式設置 Mac OS X 10.6 終端選項卡標題?

我剛試過這個,效果很好:

tell application "Terminal"
    set custom title of tab 2 of window 1 to "beta"
    set custom title of tab 1 of window 1 to "alpha"
end tell

我承認我沒有使用 10.6,所以也許蘋果改變了它。

我一直在尋找這個,正如@tponthieux在他的評論中提到的那樣,所有這些腳本都會改變終端 window 標題而不是標簽標題。 不幸的是,似乎沒有選項可以使用現成的蘋果腳本更改選項卡標題,所以我使用鍵完成了它,它在 OSX El Capitan 上沒有問題。

tell application "Terminal"
    activate
tell application "System Events"
    keystroke "i" using {shift down,command down}
    keystroke Tab
    keystroke "yourtitlehere"
    key code 53 
end tell

此屬性不會像您認為的那樣做。 根據以下代碼,將自定義標題設置為一個選項卡適用於所有windows 中的所有選項卡:

tell application "Terminal"
    tell window 1
        set title displays custom title of tab 1 to true
        set custom title of selected tab to "foo"
    end tell
    tell window 2
        set title displays custom title of tab 2 to true
        set custom title of selected tab to "bar"
    end tell
end tell
--> RESULT: All tabs in all windows show "bar"

我想知道它是否與與環境相關的標題有關——即bashcshzshksh ——而不是與單個選項卡有關。 即使我退出終端並重新進入,“欄”仍然到處顯示。 我會坦率地承認,我對 CL 接口的工作原理知之甚少,無法確定。

同時,如果您正在學習 Applescript,我建議您在一些不太可靠的東西上學習它,比如 Finder 或其他東西。 與使用 Applescript 的終端相比,可以在那里完成更多有用的事情。

抓取正確的窗口/選項卡時,這些命令周圍有一些奇怪的行為,但這最終在 10.5.8(終端 v2.0.2)中為我工作

tell application "Terminal"
    do script
    set currWin to index of first window

    tell window currWin 
        set custom title of first tab to "A Custom Title"
    end tell

    set current settings of window currWin to settings set "Grass"
end tell

這里的關鍵是do script打開一個新的終端 window,從而強制它成為“第一”( do script也返回創建的選項卡索引,但我無法使用它)。

然后,自定義標題僅適用於該 window。 還投入了一行來設置終端選項卡的配置文件。

(參考: AppleScript 打開命名終端 window

奇怪行為的附加示例:刪除do script行會導致自定義標題應用於所有windows,但只有一個window 收到設置更改!

從 Mac OS X Lion 10.7 開始,終端僅設置目標選項卡/窗口的custom title屬性,而不是更改設置配置文件(這會影響具有該配置文件的所有終端)。 在 10.7 之前,大多數(但不是全部)終端屬性僅適用於目標終端; 但是,其中一些適用於終端使用的設置配置文件。 這些已在 10.7 中更改為僅影響目標終端。

OSX 終端的標題來自幾個不同的來源。

1) 首選項 > Window:Select 終端 > 首選項 > Window(選項卡)。 在這里您可以找到用於命名 window 的各種配置。

2)首選項>選項卡:Select終端>首選項>選項卡(選項卡)。 在這里,您將找到用於為選項卡命名的各種配置。

3) 控制台代碼:您可以使用的 VT100 命令(通過在此處搜索 OSC 獲得更多信息

echo -n -e "\033]0;Set icon name (tab) and window title to this.\007"
echo -n -e "\033]1;Set the icon name (tab) to this\007"
echo -n -e "\033]2;Set window title to this\007"

注意:正如Elia Schito所說,您可以將這些控制台代碼放在 $PS1 中,以便它更新您輸入的每個命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM