我在 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"'