Как установить заголовок терминала с помощью команды tput?

9

Благодаря этому ответу я обнаружил, что годами наивно настраивал цвета терминала в своем приглашении.

Теперь я изменил свой .bashrc, чтобы использовать команды 'tput' для окрашивания различных элементов моего приглашения. Единственный оставшийся управляющий код, который у меня есть, это:

TITLEBAR="\[\033]2; PROD - \u@\h:\w \007\]"

Кто-нибудь знает, есть ли атрибут tput / terminfo, который я могу использовать для установки строки заголовка моего окна терминала, чтобы я мог исключить этот выход?

Мурали Суриар
источник

Ответы:

9

Фактические возможности: tsl (в строку состояния) и fsl (из строки состояния), но, конечно, тогда не все терминалы. В частности, в Linux вам нужно установить в своем терминале xterm + sl или что-то подобное.

Вы можете проверить это с

export TERM=xterm+sl
echo `tput tsl` Hello world `tput fsl`; sleep 10

Я не стал бы беспокоиться и сохранить эти побеги в .bashrc

codehead
источник
1
Кажется, моей копии Ubuntu не хватает информации о терминале. :( Я обвиняю в неполных файлах terminfo :)
Дэвид Пашли
1
Экран, однако, кажется, поддерживает их просто отлично. Спасибо!
Мурали Суриар
3
\033];является escape-последовательностью xtermдля «Команда операционной системы» . Я не знаю, как это сделать в tput, но если это возможно сделать через tput, это было бы лучшим способом для настройки заголовка кросс-платформенного терминала. Например, на xterm, это приведет к последовательности \033]0;Title\007. Смотрите также здесь
Wyatt8740
@ codehead Ваше решение смущает, потому что, если я export TERM=xterm+slнабираю текст, у меня больше не будет синтаксического старта в vim.
SebMa
2

Посмотрев файл xterm terminfo, я не могу найти никакого кода, идентичного этой команде, поэтому я подозреваю, что его нет.

Если вам интересно, на странице руководства terminfo перечислены все команды, которые понимают termcap и terminfo. Я декомпилировал файл базы данных terminfo, используя:

# infocmp -L xterm 
Дэвид Пашли
источник
2

Я не могу комментировать, поэтому дополнительный ответ:

Если вы используете tsl / fsl, не забудьте сначала запросить у терминала hs. hs должно быть истинным, если поддерживаются tsl / fsl (и другие * sl).

tput hs && { echo ....; }

источник
1
+1, если у вас есть ссылка для этого.
10
1

Для получения дополнительной информации о специальных функциях xterm "vt100 mode" см. Документ " Последовательности управления Xterm" в разделе "Элементы управления операционной системой" для всех подробностей.

Randall
источник