Как дать каждой вкладке терминала свой заголовок?

Я вижу, что есть способы установить заголовок вкладок через CLI, но как я могу дать каждой вкладке свой собственный "заголовок"?

  1. Топ
  2. сосна
  3. мерзавец

по умолчанию gnome-терминал показывает <user>@<host>:<path>, который становится громоздким за две вкладки, ИМХО.

(Создание множества профилей - очень неудобное решение)

Примечательно, что Alpine волшебным образом (через CLI?) Устанавливает заголовок вкладки:

3 ответа

Взято с SuperUser.com,

Этот процесс немного сложен для объяснения, поскольку он отличается для каждой используемой вами оболочки. Скорее я дам вам две ссылки:

Есть несколько других вещей, которые необходимо принять во внимание. Для одноразового изменения, общего для всех терминальных сеансов, вы можете вместо этого просто изменить значок Bash (если вы используете bash и в gnome) и добавить --title=title под гномом.

Вы можете установить и использовать xttitle (Обратите внимание, в два раза t во имя). Я использую это так в файле, полученном моим ~/.bashrc:

# from the "xttitle(1)" man page - put info in window title
update_title()
{
    [ $TERM = xterm -o $TERM = xterm-color ] && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}

cd()
{
    [ -z "$*" ] && builtin cd $HOME
    [ -n "$*" ] && builtin cd "$*"
    update_title
}

Я также делаю это:

xttitle Mutt && mutt

Заголовок может быть установлен с помощью escape-последовательностей, как показано в разделе Как изменить заголовок xterm. (Специально для bash).

В их примере они используют оператор case, который устанавливает PS1 с закрытой escape-последовательностью.

case $TERM in
    xterm*)
        PS1="\[\033]0;\u@\h: \w\007\]bash\\$ "
        ;;
    *)
        PS1="bash\\$ "
        ;;
esac

Основная идея заключается в том, чтобы повторить echo -e "\033]0; STRING\007" (Приглашение PS1 нуждается в дополнительном \[...\] скобки для включения escape-последовательности). Таким образом, вы можете добавить следующую функцию к вашему .bashrc в верхней части файла:

function setTitle
{
   echo -e "\033]0;$@\007"
}

Теперь вы можете изменить название по желанию

Другие вопросы по тегам