如何赋予每个终端选项卡自己的标题?

如何赋予每个终端选项卡自己的标题?

我发现有很多方法可以通过 CLI 设置标签标题,但是我怎样才能赋予每个选项卡自己的“标题”?

  1. 顶部
  2. 松树
  3. git

默认情况下,gnome-terminal 似乎显示<user>@<host>:<path>,在我看来,超过两个选项卡就会变得麻烦。

(创建无数个配置文件太麻烦了,无法成为解决方案)

值得注意的是,Alpine 似乎神奇地(通过 CLI?)设置了选项卡标题:

在此处输入图片描述

答案1

摘自超级用户网

由于每个 shell 的流程都不同,因此在此解释起来有些复杂。我给您两个链接:

还有一些其他事情需要考虑。对于所有终端会话的一次性更改,您可能只想更改 Bash(如果您使用 bash 和 gnome)图标并添加--title=title在 Gnome 下。

答案2

可以使用转义序列设置标题,如下所示如何更改 xterm 标题.(具体来说狂欢)。

在他们的例子中,他们使用带有PS1 封闭转义序列的 case 语句。

case $TERM in
    xterm*)
        PS1="\[\033]0;\u@\h: \w\007\]bash\\$ "
        ;;
    *)
        PS1="bash\\$ "
        ;;
esac

基本思想是回显echo -e "\033]0; STRING\007"(PS1 提示需要额外的括号来括起转义序列)。因此,您可以在文件顶部\[...\]添加以下函数:.bashrc

function setTitle
{
   echo -e "\033]0;$@\007"
}

现在你可以随意更改标题

答案3

您可以安装并使用xttitle(请注意名称中的双倍t)。我在我的源文件中像这样使用它~/.bashrc

# from the "xttitle(1)" man page - put info in window title
update_title()
{
    [ $TERM = xterm -o $TERM = xterm-color ] && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}

cd()
{
    [ -z "$*" ] && builtin cd $HOME
    [ -n "$*" ] && builtin cd "$*"
    update_title
}

我也这样做:

xttitle Mutt && mutt

相关内容