Динамический заголовок экрана GNU
У меня есть настройка, которая работает на одном компьютере (linux mint 18.3 sylvia), а не на другом (Ubuntu 14.04.5 LTS), и я не знаю, что нужно проверить, чтобы найти проблему:
Я использую экран GNU и помещаю имя каждого окна, которое изменяется динамически, пока я меняю каталог или запускаю задачу.
например, если я подскажу cd ~/desktop
это покажет ~/desktop cd ~/desktop
, если тогда я подскажу cd ..
это покажет ~ cd ..
,
проблема в том, что на втором компьютере он не работает, точнее, наполовину работает, но я не понимаю как.
Вот как должен работать конфиг: одна часть находится в файле.screenrc, а другая - в файле.zshrc.
.screnrc:
hardstatus string "%{= KW}%n %t %=%c %D %d-%m-%y"
%t
является частью заголовка и должна быть расширена с помощью PATH_SPACE_STRING
это работает благодаря тому, что я поместил в файл.zshrc, который заставляет оболочку выводить управляющую последовательность заголовка (esc k title esc), как это было задано здесь https://www.gnu.org/software/screen/manual/html_node/Dynamic-Titles.html
.zshrc:
preexec () {
if [[ $TERM == screen* ]]; then
print -Pn '\ek%~ $1\e\\'
fi
}
где %~
стоять за текущий путь, и $1
строка, набранная в приглашении
но после нескольких тестов я понимаю, что компьютер под управлением Ubuntu не слушает то, что я вставил в файл.zshrc, но он все равно расширяется %t
в путь (поэтому у меня есть путь в качестве заголовка, а не путь плюс команда приглашения)
что может дать экрану указание динамически помещать текущий путь в качестве заголовка, если не то, что я написал в файле.zshrc? и как его перезаписать?