Как я могу установить заголовок окна PuTTY на имя загруженного сеанса?

28

Обычно, когда вы загружаете сохраненный сеанс в PuTTY и подключаетесь к нему, PuTTY устанавливает в качестве заголовка окна имя хоста системы, к которой вы подключились (плюс строка «PuTTY»).

Теперь у меня есть много разных сессий, которые все подключаются к одному и тому же хосту, но на разных портах (потому что хост запускает несколько туннелей SSH на разных портах). Поэтому видеть имя хоста не очень полезно, поскольку оно всегда одинаково.

Поэтому я бы хотел, чтобы PuTTY показывал название загруженной сессии в заголовке окна. Есть ли способ сделать это?

Единственный способ найти это - установить заголовок окна вручную (Window / Behavior / Window title). Но я считаю, что мне придется делать это вручную для каждой сессии, что довольно утомительно.

sleske
источник
1
Kitty - лучший клиент telnet / SSH (форк Putty), и вы можете установить заголовок окна из командной строки с помощью опции -title.
Марег

Ответы:

16

Чтобы изменить заголовок окна сеанса PuTTY SSH (по одному вручную с помощью графического интерфейса PuTTY):

Для Windows и Debian

  1. Load сеанс от PuTTY.
  2. В левом меню дерева нажмите: WindowBehaviour.
  3. На правой панели в Window titleтекстовом поле введите свой заголовок.
  4. Save сессия.

Чтобы изменить заголовок окна сеанса PuTTY SSH (для всех сеансов в командной строке):

Для Debian 8 (Джесси)

  1. Перейдите в папку, где PuTTY хранит сессии: /home/nolwennig/.putty/sessions

    Примечание: замените nolwennig своим именем пользователя

  2. Присвойте параметру WinTitleимя сохраненного файла сеанса для каждого сохраненного файла сеанса примерно так:

    find . -type f -exec sed -e 's/^WinTitle=/WinTitle=%f/g' {} \;

    Работает нормально, если WinTitle не записан

Для Windows

  1. PuTTY хранит сессии в реестре Windows HKEY_CURRENT_USER\Software\Simontatham\PuTTY\Sessions

    Примечание: не заменяйте SimonTatham своим именем пользователя.

  2. Вы можете экспортировать этот раздел с помощью команды:

    C:> regedit /e "%userprofile%\desktop\putty-registry-sessions.reg" HKEY_CURRENT_USER\Software\Simontatham\PuTTY\Sessions
    
  3. Должна быть возможность создать скрипт, который обновляет putty-registry-sessions.regфайл, чтобы изменить значение WinTitle для каждого из сохраненных сеансов.


Источники и вдохновение:

Nolwennig
источник
Я знаю, что могу это сделать - это упоминается в моем вопросе вместе с тем, почему я ищу другое решение.
слеске
Я обновляю свой ответ небольшим сценарием
Nolwennig
1
Идеальная идея со сценарием. Однако, AFAIK, Putty по умолчанию сохраняет сессии в реестре Windows. Если у вас есть файлы, вы, вероятно, используете измененную версию (хотя она все равно может работать при экспорте / импорте конфигурации). Не могли бы вы упомянуть об этом в ответе?
слеске
Я нахожусь на Debian8 здесь, я добавляю расположение хранилища сессий Putty для Windows в своем ответе, но я не могу сейчас написать / протестировать скрипт для этого: (
Nolwennig
1
Ах да, забыл, что у PuTTY тоже есть версия для Linux. В любом случае, хороший ответ, спасибо.
слеске
44

Решение ниже, кажется, решает эту проблему.

1) Перейдите к вышеупомянутой настройке Window / Behavior / Window Title и введите название, которое имеет смысл для вас.

2) Перейдите в настройки терминала / функций и снимите флажок «Отключить изменение заголовка окна с дистанционным управлением» .

Настройка 1

Настройка 2

Энди
источник
4
Хотя это может ответить на вопрос, предпочтительно, если вы можете суммировать ответ здесь, так как ссылки со временем перестают работать.
Ладададада
2
Это процедура, описанная на этом сайте: В окне настройки сеанса замазки включите флажок «Отключить изменение заголовка окна с дистанционным управлением», который находится в Терминале-> Функции. Затем дайте окну вашего сеанса имя через диалог Window-> Behavior. Введите заголовок в текстовое поле с надписью «Заголовок окна:»
BdN3504
1
Это должно быть ответом. +1
Куласангар
3
Это должен был быть принятый ответ. Без этого второго пункта мой заголовок продолжал сбрасываться сам, как только я нажал клавишу ввода. (хост: Windows, удаленный сервер: Ubuntu Server 16.04 LTS)
Zeeshan
16

Эта функция установит заголовок вашего окна PuTTY на заданную строку:

# Set title
title() {
  echo -ne "\033]0;"$1"\007"
}

Вы можете использовать это для установки заголовка из командной строки или из сценариев, например, из .bashrc.

Томас Стуфе
источник
1
Почему это работает?
Чад
Просто маленькая записка; Вы все еще должны установить "Disable remote-controlled window title changing"подTerminal->Features
244an
Вы можете использовать printfкоманду вместо этого.
MUY Бельгия
Почему это работает? : ESC ] 0 ; txt STУстановите имя иконки и заголовок окна в txt.
Кошина
3

Я искал, как заставить заголовки окон придерживаться при использовании PuTTY с файлами сессий.

Итак .putty/sessions/ServerX, установите заголовок по умолчанию, а не удаленное поведение:

NoRemoteWinTitle=1
WinTitle=Welcome to ServerX

И чтобы дать ему специальный заголовок для какой-то конкретной цели, просто переопределите значение по умолчанию:

putty -load .putty/sessions/ServerX -title "ServerX:/var/log/messages"
DCG
источник
2

Единственный другой маршрут, который мне известен, - это использование функций эмуляции xterm для установки заголовка из системы, в которую вы вошли (в Red Hat Linux и SUSE Linux приглашение Bash по умолчанию записывается в заголовок заголовка).

Смотрите эту страницу для описания процесса и соответствующей escape-последовательности.

symcbean
источник
Я нашел это во французской версии: traduc.org/Guides_pratiques/Suivi/Xterm-Title/Document
Nolwennig
0

Вы можете использовать -loghost "title"опцию в Windows - она ​​открывает PuTTY с указанным названием заголовка . Это также меняет другие вещи, поэтому, пожалуйста, проверьте, не создает ли это никаких других проблем для вас.

Я использую его с VIRL, и он отлично работает.

Marceli
источник
0

В Windows это будет устанавливать заголовок окна каждой сессии на одно и то же имя сессии:

FOR /F "tokens=6 delims=\" %i IN ('reg query HKCU\Software\Simontatham\PuTTY\Sessions') DO reg add HKCU\Software\Simontatham\PuTTY\Sessions\%i /t REG_SZ /v WinTitle /d %i /f & reg add HKCU\Software\Simontatham\PuTTY\Sessions\%i /t REG_DWORD /v NoRemoteWinTitle /d 1 /f
user517940
источник
-1

В Windows эта строка cmd установит в заголовке окна каждого сеанса одно и то же имя самого сеанса:

FOR /F "tokens=6 delims=\" %i IN ('reg query HKCU\Software\Simontatham\PuTTY\Sessions') DO reg add HKCU\Software\Simontatham\PuTTY\Sessions\%i /t REG_SZ /v WinTitle /d %i /f & reg add HKCU\Software\Simontatham\PuTTY\Sessions\%i /t REG_DWORD /v NoRemoteWinTitle /d 1 /f
Джузеппе Костанцо
источник