Как мне заставить gnome-терминал восстановить его заголовок после ssh?
Я использую gnome-терминал, настроенный для обновления своего заголовка в соответствии с командами терминала, которые обновляют свои собственные заголовки (по умолчанию в Fedora 13). Когда я SSH куда-то еще, заголовок обновляется правильно, но затем SSH завершается, и gnome-терминал указывает, что я все еще вошел в систему удаленно. Это сбивает с толку при попытке ориентироваться. Как сохранить поведение при входе в систему и восстановить старый заголовок при выходе из системы (по умолчанию просто "Терминал", но лучше пока отображать текущее местоположение)?
1 ответ
Добавьте escape-последовательности set-title в rc-файл вашей оболочки. За bash
v4, это будет:
if [[ $TERM == xterm* ]]; then
# This puts "user@host workdir" into the titlebar.
# (look for section "PROMPTING" in bash's manual)
title='\u@\h \w'
PS1+="\[\e]0;$title\007\]"
fi
в вашем ~/.bashrc
,
Прекратите читать здесь, если вы не любите возиться сbash
скрипты.
Код выше на самом деле очень упрощенная версия моего ~/.bashrc
фрагмент кода:
case $TERM in
[xkE]term*|rxvt*|cygwin)
title_seq='\e]0;%s\007';;
screen*)
# only set the "screen"window title
title_seq='\ek%s\e\\';;
esac
# Very useful for: title syslog && tailf /var/log/syslog
title() { [ "$title_seq" ] && printf "$title_seq" "$*"; }
# Modify the prompt string.
if [ "$title_seq" ]; then
title='\u@\h \w'
PS1+="\[$(printf "${title_seq//\\/\\\\}" "$title")\]"
fi
На самом деле, это был мой старый ~/.bashrc
сниппет. При обнаружении PROMPT_DIRTRIM=1
Я должен был заменить $PS1
модификация (последняя if
заявление) с:
update_title() {
title "$USER@$HOSTNAME ${PWD/#$HOME/~}"
}
PROMPT_COMMAND="update_title"