xtitle 在 Ubuntu 11.04 中不会改变标题

xtitle 在 Ubuntu 11.04 中不会改变标题

我正在尝试找到一种方法来快速更改 Gnome Terminal 2.32.1 窗口的标题,因为我打开了相当多的窗口,并且在每个窗口中编辑不同的文件,在一个窗口中使用编译器,在其他窗口中跟踪日志文件等等。因此,当它们都显示 时,寻找我想要的窗口是一件很痛苦的事情pax@pax-desktop:~

这个问题让我尝试xtitle,但由于某种原因,它实际上并没有改变标题。

执行xtitle xyzzy结果没有明显的反馈,但通过管道od确认它正在输出转义序列(我假设是正确的,尽管我还没有详细检查过):

pax@pax-desktop:~/porn_dir$ xtitle xyzzy | od -xcb
0000000    5d1b    3b32    7978    7a7a    0779    5d1b    3b31    7978
        033   ]   2   ;   x   y   z   z   y  \a 033   ]   1   ;   x   y
        033 135 062 073 170 171 172 172 171 007 033 135 061 073 170 171
0000020    7a7a    0779
          z   z   y  \a
        172 172 171 007
0000024

我可以进入菜单Terminal | Set Title并从那里进行更改,但我更喜欢命令行解决方案,因为我可以自动执行此操作(例如,创建一个别名,在运行编辑器之前vi设置标题并在退出时重置它)。vi filename

在配置文件首选项中,初始标题设置为Terminal,并将When terminal commands set their own titles设置为Replace initial title。并且只有一个配置文件Default,即我正在使用的配置文件。

答案1

事实证明,xtitle它运行正常,并且更改了标题。但是,默认设置中有.bashrc以下部分:

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

设置提示,以便每次要求用户输入时将标题更改回通常值。

通过注释掉PS1=...上面这一行,标题将保持不变。

这会产生不更新所有终端的当前状态的副作用user@host。要选择性地仅为当前 shell 启用此功能,请在运行前xtitle使用:

export PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

(请记住,您必须在终端中获取它,而不是从脚本中调用/获取!)

答案2

如果您使用 Gnome 终端,还请检查Edit-> Profile Preferences->中Title and Command是否将When terminal commands set their own titles选项设置为Replace initial title(默认)。

相关内容