使用 byobu 时,我的终端选项卡的标题设置为user@fqdn (IP) - byobu
,根据域的不同,该标题可能很长。我怎样才能将其限制为更短的标题,例如user@hostname
,或者更好的是,让我们zsh
设置标题?我尝试过设置BYOBU_NO_TITLE=1
,然后这个错误但是,我认为这允许本地 shell 设置标题,而不是远程 shell 设置标题。
这可能非常烦人,因为 Terminator 将每个选项卡标题的长度设置为相同,因此一个非常长的标题就足以使所有标题都变得非常长。最坏的情况是,我希望我可以简单地将其中的一些内容修剪到最大长度(例如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 - 几乎任何终端。以下是脚本:
#!/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
设置自己的自定义标题