Як я можу встановити назву вікна PuTTY на ім'я завантаженого сеансу?


28

Зазвичай під час завантаження збереженого сеансу в PuTTY та підключення до нього PuTTY встановить назву вікна на ім'я хоста системи, до якої ви підключилися (плюс рядок "PuTTY").

Зараз у мене є багато різних сеансів, які всі підключаються до одного і того самого хоста, але в різних портах (тому що хост працює декількома тунелями SSH на різних портах). Тому бачити ім'я хоста не дуже корисно, оскільки це завжди те саме.

Тому я хотів би, щоб PuTTY показав назву завантаженого сеансу у заголовку вікна. Чи є спосіб це зробити?

Єдиний спосіб, який я міг знайти - це встановити заголовок вікна вручну (Window / Behavior / Window title). Але я вважаю, що мені доведеться робити це вручну для кожного сеансу, що є досить стомлюючим.


1
Kitty - найкращий клієнт telnet / SSH (вилка Putty), і ви можете встановити заголовок вікна з командного рядка за допомогою параметра "-title".
Марег

Відповіді:


16

Щоб змінити назву вікна сеансу PuTTY SSH (по одному вручну за допомогою GUI 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 для кожного із збережених сеансів.


Джерела та натхнення:


Я знаю, що можу це зробити - це згадується в моєму питанні, а також чому я шукаю інше рішення.
sleske


1
Акуратна ідея зі сценарієм. Однак AFAIK, Putty за замовчуванням зберігає сеанси в реєстрі Windows. Якщо ваша використовує файли, ви, ймовірно, використовуєте модифіковану версію (хоча це все ще може працювати, експортуючи / імпортуючи конфігурацію). Чи могли б ви сказати це у відповіді?
sleske

Я тут на Debian8, у відповідь додаю місце зберігання сесій Putty для Windows, але зараз не можу написати / перевірити сценарій для цього: (
Nolwennig

1
О, так, забув, що PuTTY також має версію Linux. У будь-якому випадку, приємна відповідь, дякую.
sleske

44

Розглянене нижче рішення, здається, вирішує цю проблему.

1) Перейдіть до вищезгаданого налаштування Window / Behavior / Window Title і введіть назву, яка має для вас сенс.

2) Перейдіть до налаштувань Термінал / Особливості та виберіть прапорець Відключити дистанційне керування заголовком вікна.

Налаштування 1

Налаштування 2


4
Хоча це може відповісти на питання, бажано, якщо ви зможете узагальнити відповідь тут, оскільки посилання з часом затихли.
Ладададада

2
Це процедура, описана на цьому веб-сайті: У вікні налаштування сеансу шпаклівки увімкніть прапорець із позначкою «Вимкнути зміну заголовка вікна з дистанційним керуванням», знайдений у розділі Термінал-> Особливості. Далі введіть назву вікна сеансу за допомогою діалогового вікна «Вікно-> Поведінка». Введіть заголовок у текстове поле з написом "Назва вікна:"
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
244

Ви можете printfзамість цього використовувати команду.
МУЙ Бельгія

Чому це працює? : 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"

2

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

Дивіться цю сторінку для опису процесу та відповідної послідовності відходу.


Я знайшов це у французькій версії: traduc.org/Guides_pratiques/Suivi/Xterm-Title/Document
Nolwennig

0

Ви можете використовувати цю -loghost "title"опцію в Windows - вона відкриває PuTTY із вказаним заголовком . Він також змінює інші речі, тому перевірте, чи це не створює для вас жодної іншої проблеми.

Я використовую його з VIRL, і він працює чудово.


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

-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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.