X 中的窗口标题显示错误的应用程序名称

X 中的窗口标题显示错误的应用程序名称

我在 Debian 中使用 LXDE 环境,但我认为我的问题很笼统。当我打开一个窗口(即运行 bash 的终端模拟器)时,该窗口有一个带有文本的窗口标题/bin/bash。当我mc在终端中启动时,标题更改为mc [martin@localhost]

相同的文本也显示为窗口面板上的窗口名称,我可以在其中在打开的窗口之间切换。

我的问题是,窗口名称不会刷新,它仍然显示mc [martin@localhost],即使我已经登录到另一台计算机上。只有当我开始时mc标题才会再次刷新。

有没有办法让标题自动刷新?

答案1

有些程序设置了窗口标题,但在终止前忘记重置它。

您可以将类似以下行的内容添加到“~/.bashrc”中,以在每个新的 bash 提示符之前设置窗口标题。

case 语句使得这种情况仅在已知能够使用 ESCape 命令更改窗口标题的终端上发生。我建议在那里添加“屏幕*”......

case "$TERM" in
xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
    ;;
*)
    ;;
esac

这些行来自 Debian-6.0.9 的“/etc/bash.bashrc”,最初被注释掉。查看系统的“/etc/bash.bashrc”,您可能会在其中找到一些类似的行。

默认的“~/.bashrc”可能包含类似的行。如果您不想在系统范围内激活此系统,请通过取消注释或添加这些行来执行此操作。

当您已经在使用 时PROMPT_COMMAND,请将 case 语句放在预先存在的PROMPT_COMMAND定义之后,并将赋值写入case语句内,如下所示:

PROMPT_COMMAND="$PROMPT_COMMAND;"'echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'

相关内容