使用 byobu 時,我的終端選項卡的標題設定為user@fqdn (IP) - byobu
,根據網域的不同,該標題可能會很長。我怎麼才能將其限制為更短的內容,例如user@hostname
,或者更好的是,讓我們zsh
設定標題?我嘗試過設置BYOBU_NO_TITLE=1
,如下這個錯誤,但是我認為,這允許本地 shell 設定標題,而不是遠端 shell。
這可能非常煩人,因為終結者將每個選項卡標題的長度設為相同,因此一個很長的標題足以使所有選項卡都變得很長。最糟糕的情況是,如果我可以簡單地將其中一些修剪到最大長度(例如user@f ... byobu
),我希望它。
我已經添加了一個函數來.zshrc
設定標題:
case $TERM in
xterm*|screen*)
if [[ -n $SSH_TTY ]]
then
precmd () {print -Pn "\e]0;%m: %~\a"}
else
precmd () {print -Pn "\e]0;%~\a"}
fi
;;
esac
如果我不使用 byobu,這會起作用:
左邊的選項卡是沒有 byobu 的 SSH 會話,右邊的選項卡是帶有 byobu 的 SSH 會話。
根據 Serg 設定IP_EXTERNAL
為 1 的建議,我可以去掉 IP,縮短標題。我更喜歡將 zsh (或其他應用程序,例如 Vim)設定的標題傳遞到終端的解決方案 - 看起來 byobu/tmux 阻止了它們。
答案1
更新:2015 年 4 月 10 日
我當前的不依賴 shell 或終端的使用的解決方案是wmctrl
從腳本中使用,並將腳本的完整路徑放在.byoburc
.適用於 gnome-terminal、terminator、sakura - 幾乎任何 termimal 這是腳本:
#!/bin/bash
# Description: byobu always has string ") - byobu" in it's window title
# like user@hostname (192.168.0.2) - byobu
# So why not find windows with exact same string, and tell wmctrl to
# set the title for us ? That's all we do here
BYOBU_WINDOW=$( wmctrl -lx | awk '/) - byobu/ {print $1}' )
sleep 0.5
wmctrl -ir $BYOBU_WINDOW -N "MYTITLEHERE"
原帖
就目前而言gnome-terminal
,您可以設定個人資料首選項以保留個人資料設定中指定的初始標題。下面是我的 byuobu 的螢幕截圖,其中保留初始標題選項,並替換初始標題選項
至於終結者,我會下載並看看是否同樣適用於它。
答案2
我發現 byobu 在後端使用 tmux。並且 tmux 確實有一些方法可以使用以下行來設定終端標題.byoubu/.tmux.conf
:
set -g set-titles on
set -g set-titles-string "#(pwd)"
將#(pwd)
其設定為工作目錄的選項範圍可以在 tmux 手冊頁的格式部分下找到
深入挖掘一下,似乎 byobu 預設情況下正好註釋這兩行以/usr/share/byobu/profiles/tmux
設定自己的自訂標題