Это немного продолжение этого вопроса . Я работаю в tcsh на экране GNU в Xterm .
У меня есть следующее в моем .cshrc:
alias res_t 'xtset -t %h:%d "(%u:%g)" %e' # reset titlebar
res_t # reset title right now
alias precmd res_t
И это прекрасно работает!
Однако, когда я запускаю экран, я вижу, что заголовок не обновляется с текущим каталогом. Как я могу заставить экран обновлять заголовок xterm?
gnu-screen
xterm
tcsh
Натан Феллман
источник
источник
Ответы:
Вы можете установить заголовок окна xterm, добавив его в свой
.tcshrc
или.cshrc
(замените свой текущийprecmd
псевдоним):Убедитесь в том , что это единственный precmd псевдоним в вашем
.cshrc
и.tcshrc
файлы при использовании этого. Этот метод отображает текущий каталог как заголовок окна в xterm терминале gnome независимо от того, открыт ли сеанс экрана GNU.Мой ответ был основан на этом .
источник
Я понимаю, что вы используете tcsh, так что это, вероятно, не сработает ... На всякий случай, если кто-то ищет способ bash сделать это.
Если ваши системы (локальные / удаленные) работают под управлением bash, вы можете использовать переменную окружения "PROMPT_COMMAND", чтобы установить заголовок окна. PROMPT_COMMAND проверяется до отображения приглашения.
(в вашем .bashrc):
Объяснение:
Это устанавливает оболочку для добавления в файл истории при каждом завершении команды, а не после завершения всей оболочки. (Это не связано с этим примером).
Это повторяет управляющий код "\ 033] 0;" который устанавливает заголовок окна с переменными "user" @ "host" (удаляя наибольшее совпадение справа налево "."), а затем рабочий каталог (заменяя '~' на '$ HOME').
Приведенный выше трюк будет работать с любым терминальным приложением, которое поддерживает динамическое изменение заголовка окна (что делают все iTerm, Terminal.app, urxvt, aterm, eTerm. Xterm и т. Д.). Вы также можете посмотреть переменную оболочки "TITLEBAR" в документации bash, она похожа.
источник
Это должно работать в любой оболочке, но это грязный взлом .screenrc. Он работает над строкой hardstatus, что может быть неприемлемо для некоторых пользователей. Но он работает в gnome-Terminal на последней версии Ubuntu, даже без строки termcapinfo ниже. В некоторых ситуациях могут потребоваться более глубокие настройки (например, я не тестировал PuTTY).
Нашел по этой ссылке .
источник
источник
screen
hardstatus
правильно установлена переменная экрана и поддерживается termcap / terminfohs|ts|fs|ds
.Эта страница (которая была связана выше) является решением, однако вам нужно убедиться, что строка терминала в строке совпадает со строкой идентификатора вашего терминала (т. Е. С переменной TERM), иначе она не будет иметь никакого эффекта.
Вот краткое изложение того, что я сделал, и это сработало для меня после нескольких лет, не потратив достаточно времени, чтобы понять это:
Узнайте, какая строка идентификатора вашего терминала, запустив:
Вероятно, он скажет что-то вроде «xterm» или «linux» или «rxvt».
Теперь добавьте следующую строку в ваш файл .screenrc (или создайте его, если он не существует), расположенный в вашем домашнем каталоге (~ / .screenrc):
Ключ должен убедиться, что «xterm» - это строка идентификатора вашего TERM, которую вы получили выше. Вы можете сделать несколько строк для каждого другого типа термина, который вы используете.
Например, у меня есть этот файл .screenrc, потому что я использую и xterms, и тип термина «linux» при SShing в поле:
Надеюсь, это поможет, и это абсолютно не зависит от оболочки. Помните, что если вы запускаете screen от имени пользователя root, вам нужно изменить ~ root / .screenrc в дополнение к своему собственному файлу ~ / .screenrc, например так.
источник
Инструкции, приведенные здесь, позволили мне обновить заголовок в rxvt из bash для меня - что, возможно, не поможет, но я подумал, что это стоит изучить (раздел «Информационная строка состояния», если ссылка не переходит на правую часть страницы)
источник