Мне бы хотелось, чтобы заголовок моего окна tmux автоматически переименовывался в prompt_command, ps1 или просто имя хоста машины, на которой я работаю ssh
. 9 открытых окон с пометкой «ssh» действительно бесполезны. Выполняя работу системного администратора, я открываю новые экраны и многое другое, чтобы вручную переименовать их.
Одна вещь, которую я заметил, tmux
обновляет xterm
заголовок окна, так что я чувствую, что он должен знать.
Любая помощь? Я бы даже хотел вернуться, screen
если бы смог получить эту функцию.
PROMPT_COMMAND='settitle $HOSTNAME:$PWD'
- так как с кодом @ Mikel я не получил ни имени хоста, ни-bash: : No such file or directory
ошибки перед каждой командной строкой. Мне кажется, что$()
это заставит bash попытаться выполнить всеsettitle
возвраты . (Я использую bash для Linux.)tmux rename-window -t${TMUX_PANE} "Title Text"
Это правильный способ установить заголовки tmux в окне. Переменная $ TMUX_PANE устанавливается tmux и используется для различения разных панелей.
источник
-t${TMUX_PANE}
это необходимо (по крайней мере, это было не для меня).sleep 3
и переключаете окна, в противном случае приглашение завершит работу с неправильным окном после завершения сна. (Это причина, почему я пришел сюда, +1).Просто для людей, которые пришли сюда в поисках, как изменить заголовок сеанса tmux:
Ctrl+ B,$
Это даст вам подсказку, где вы можете переименовать активную сессию.
Чтобы изменить активное окно, используйте вместо этого komma:
Ctrl+ B,,
смотрите: Как мне переименовать сессию в tmux?
источник
Комбинируя ответы Микеля и ЮтыДжархеда, я использовал следующее
.zshrc
для решения этой проблемы:У меня включено автоматическое переименование окон по умолчанию, и я не могу найти способ включить его после выхода из удаленного хоста. Таким образом, я просто полностью выхожу из окна - это не проблема для моего рабочего процесса. Если вы предпочитаете переименовать его, скажем, в «bash», вы можете заменить
exit
строку наtmux rename-window "bash"
.источник
hostname -s
после команды ssh "@ $", он в основном "сбрасывает" заголовок на мою машину "шлюза".Вместо
exit
илиtmux rename-window "bash"
вы можете использоватьЭто повторно активирует обычную функцию, которая автоматически переименовывает окно для следующих команд.
В
if
блоке предотвращает (без него) переименованияtmux
текущего окна изssh
команд , используемых на других оболочках (изtmux
).источник
if env | grep -q "TMUX_PANE"; then
вместоps -p...
материала, но тот же принцип.Я знаю, что на этот вопрос уже давным-давно ответили, но я подумал, что я добавлю то, что я возился и нашел (основываясь на принятом ответе) .. Я добавил это в / etc / bashrc всех моих серверов (легко делать с тканью, куклой и т. д.)
И это автоматически устанавливает имя окна в screen или tmux.
источник
hostname -s
удаляем лишние доменные ресурсы, чтобы server1.internal.local отображался как просто server1Другим решением было бы переименовать активное окно в его предыдущее имя после сеанса ssh:
источник
Это работает внутри
tmux 2.1
и с zsh локально и на серверах:Мне пришлось отключить опцию allow-rename вручную перед изменением имени окна - в противном случае оно было изменено на текущий путь на большинстве моих серверов (также с использованием zsh там). Хорошая вещь: если вы снова включите опцию allow-rename, она заработает немедленно.
источник
Добавьте это к
.profile
или.bashrc
источник
Я бы отметил во всех этих примерах:
Возможно, вы захотите получить код выхода и выйти из функции вместе с ним, в противном случае такие вещи, как:
Вернет 0.
Выйдет из ssh с кодом возврата ssh.
источник