Как изменить заголовок терминала, установленный byobu?

Как изменить заголовок терминала, установленный byobu?

При использовании byobu заголовок вкладки моего терминала установлен на user@fqdn (IP) - byobu, что может быть довольно длинным в зависимости от домена. Как мне ограничить его чем-то более коротким, например user@hostname, или еще лучше, задать zshзаголовок? Я пробовал устанавливать BYOBU_NO_TITLE=1, следуяэтот баг, но это, я думаю, позволяет локальной оболочке устанавливать заголовок, а не удаленной.

Это может быть очень раздражающим, так как Terminator устанавливает длину каждого заголовка вкладки одинаковой, поэтому одного очень длинного заголовка достаточно, чтобы сделать все они очень длинными. В худшем случае, я бы хотел, чтобы я мог просто обрезать часть до максимальной длины (например, user@f ... byobu).

Я уже добавил функцию для .zshrcустановки заголовка:

case $TERM in
    xterm*|screen*)
        if [[ -n $SSH_TTY ]]
        then
            precmd () {print -Pn "\e]0;%m: %~\a"}
        else
            precmd () {print -Pn "\e]0;%~\a"}
        fi
        ;;
esac

Это работает, если я не использую byobu:

введите описание изображения здесь

Вкладка слева — это сеанс SSH без byobu, а вкладка справа — с byobu.

С предложением Serg установить IP_EXTERNALзначение 1 я могу избавиться от IP, сократив заголовок. Я бы предпочел решение, которое передает заголовок, установленный zsh (или другими приложениями, такими как Vim), в терминал - похоже, что byobu/tmux блокирует их.

решение1

ОБНОВЛЕНИЕ: 10 апреля 2015 г.

Мое текущее решение, которое не зависит от использования оболочки или терминала, заключается wmctrlв использовании скрипта и размещении полного пути к скрипту в .byoburc. Работает с gnome-terminal, terminator, sakura — практически с любым termimal Вот скрипт:

#!/bin/bash
# Description: byobu always has string ") - byobu" in it's window title
# like user@hostname (192.168.0.2) - byobu
# So why not find windows with exact same string, and tell wmctrl to
# set the title for us ? That's all we do here

BYOBU_WINDOW=$( wmctrl -lx | awk '/) - byobu/ {print $1}' )
sleep 0.5
wmctrl -ir $BYOBU_WINDOW -N "MYTITLEHERE"

Оригинальный пост

Что касается gnome-terminalэтого, вы можете установить настройки профиля, чтобы сохранить начальный заголовок, указанный в настройках профиля. Ниже представлен скриншот моего byuobu с опцией сохранения начального заголовка и с опцией замены начального заголовка

скриншот 1

введите описание изображения здесь

Что касается Терминатора, я скачаю его и посмотрю, применимо ли к нему то же самое.

решение2

Я обнаружил, что byobu использует tmux в бэкэнде. А у tmux есть несколько способов задать заголовок терминала с помощью следующих строк .byoubu/.tmux.conf:

set -g set-titles on
set -g set-titles-string "#(pwd)"

где #(pwd)устанавливает его в рабочий каталог диапазон параметров можно найти на странице руководства tmux в разделе форматов

копнув немного глубже, выясняется, что byobu по умолчанию комментирует именно эти две строки, /usr/share/byobu/profiles/tmuxчтобы задать свой собственный заголовок

Связанный контент