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