Теперь я исследовал это для большей части дня и наконец нашел способ установить это название. Это делается через escape-последовательности, которые начинаются с \ e] 0; и заканчивается символом BEL (= \ 007 = \ a). В отличие я уже говорилось выше, сообщения от задней оболочки к терминалу применения является возможно, очень ограничено, с помощью таких управляющих последовательностей (есть несколько больше).
Об этом сверху:
PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'
Это может работать, но это не всегда. PROMPT_COMMAND
переменная, содержимое которой выполняется каждый раз, когда вы отправляете команду, поэтому она также отправляет эту escape-последовательность. Однако это может быть отменено escape-последовательностью в переменной PS1, которая задает приглашение командной строки. Вот почему вышесказанное не оказало здесь никакого влияния.
Из более старой установки Ubuntu я взял это, которое устанавливает командную строку (правая часть, после ]
), а также отправляет требуемую escape-последовательность (левая часть, вплоть до и включая ]
):
PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "
Это, вероятно, работает лучше, потому что нет необходимости $PROMPT_COMMAND
каждый раз интерпретировать . Он также имеет гораздо больше опций, потому что здесь Bash имеет больше escape-последовательностей, например, \u
для текущего имени пользователя, \W
для текущего имени каталога или \w
для всего пути текущего рабочего каталога, опционально обрезанного до последних нескольких по числу в $PROMPT_DIRTRIM
. Смотрите главу PROMPTING
на странице руководства Bash. Также обратите внимание, что escape-последовательность дополнительно должна быть окружена \[
и \]
здесь.
Чтобы установить фиксированный заголовок, это работает:
PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
Наслаждайтесь!
Во время моего исследования я также пытался понять исходный код терминала gnome, что приводит к исходному коду vte, и там поддержка установки заголовка и чтения escape-последовательностей считается угрозой безопасности: см. Здесь (случай 20, случай 21) и здесь («Отчет по заголовку окна»).