Como posso definir o título da janela do PuTTY para o nome da sessão carregada?

28

Normalmente, quando você carrega uma sessão salva no PuTTY e se conecta a ela, o PuTTY define o título da janela como o nome do host do sistema ao qual você se conectou (mais a string "PuTTY").

Agora eu tenho muitas sessões diferentes que todas se conectam ao mesmo host, mas em portas diferentes (porque o host executa vários túneis SSH em portas diferentes). Portanto, ver o nome do host não é muito útil, pois é sempre o mesmo.

Então, eu gostaria que o PuTTY mostrasse o nome da sessão carregada no título da janela. Existe uma maneira de fazer isso?

A única maneira que eu poderia encontrar é definir o título da janela manualmente (Janela / Comportamento / Título da janela). Mas acredito que teria que fazer isso manualmente para cada sessão, o que é bastante entediante.

sleske
fonte
11
Kitty é o melhor cliente de telnet / SSH (fork do Putty) e você pode definir o título da janela na linha de comando pela opção "-title".
Mareg 3/01

Respostas:

16

Para alterar o título da janela da sessão do PuTTY SSH (um por um manualmente pela GUI do PuTTY):

Para Windows e Debian

  1. Load uma sessão do PuTTY.
  2. No menu da árvore do lado esquerdo, clique em: WindowBehaviour.
  3. No painel direito, na Window titlecaixa de texto, digite seu título.
  4. Save a sessão.

Para alterar o título da janela da sessão PuTTY SSH (para todas as sessões por linha de comando):

Para o Debian 8 (Jessie)

  1. Vá para a pasta onde o PuTTY armazena sessões: /home/nolwennig/.putty/sessions

    Nota: substitua nolwennig pelo seu nome de usuário

  2. Atribua ao parâmetro WinTitleo nome do arquivo de sessão salvo para cada arquivo de sessão salvo com algo como isto:

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

    Funciona bem se nenhum WinTitle for gravado

Para Windows

  1. PuTTY armazena sessões no registro do Windows HKEY_CURRENT_USER\Software\Simontatham\PuTTY\Sessions

    Nota: não substitua SimonTatham pelo seu nome de usuário.

  2. Você pode exportar esta seção com um comando como este:

    C:> regedit /e "%userprofile%\desktop\putty-registry-sessions.reg" HKEY_CURRENT_USER\Software\Simontatham\PuTTY\Sessions
    
  3. Deve ser possível criar um script que atualize o putty-registry-sessions.regarquivo para alterar o valor do WinTitle para cada uma das sessões salvas.


Fontes e inspirações:

Nolwennig
fonte
Eu sei que posso fazer isso - isso é mencionado na minha pergunta, junto com o motivo pelo qual estou procurando uma solução diferente.
sleske
Eu atualizar a minha resposta com um pequeno script
Nolwennig
11
Boa ideia com o script. No entanto, o AFAIK, Putty, por padrão, armazena sessões no registro do Windows. Se o seu usa arquivos, você provavelmente está usando uma versão modificada (embora ainda funcione exportando / importando a configuração). Você poderia mencionar isso na resposta?
sleske
Estou no Debian8 aqui, adiciono o local do armazenamento de sessões Putty para Windows na minha resposta, mas não posso escrever / testar um script para isso agora: (
Nolwennig 4/16/16
11
Ah, claro, esqueci que o PuTTY também tem uma versão Linux. Enfim, boa resposta, obrigado.
sleske
44

A solução abaixo parece resolver esse problema.

1) Vá para a configuração de Janela / Comportamento / Título da janela acima mencionada e coloque um título que faça sentido para você.

2) Vá para as configurações de Terminal / Recursos e marque a caixa Desativar alteração do título da janela com controle remoto .

Configuração 1

Configuração 2

Andy
fonte
4
Embora isso possa responder à pergunta, é preferível que você possa resumir a resposta aqui, pois os links desaparecem com o tempo.
Ladadadada 28/05
2
Este é o procedimento descrito nesse site: Na janela de configuração da sessão de massa, ative a caixa de seleção "Desativar alteração do título da janela de controle remoto" encontrada em Terminal-> Recursos. Em seguida, atribua um nome à janela da sessão na janela-> comportamento. Digite o título na caixa de texto "Título da janela:"
BdN3504 14/10/2015
11
Essa deve ser a resposta. +1
Kulasangar 26/08/16
3
This should have been the accepted answer. Without this second point, my title kept resetting itself as soon as I pressed enter key. (host: Windows, remote server: Ubuntu Server 16.04 LTS)
Zeeshan
16

Esta função irá definir o título da sua janela PuTTY para a string especificada:

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

Você pode usar isso para definir o título na linha de comando ou nos scripts, por exemplo, dentro de .bashrc.

Thomas Stuefe
fonte
11
Por que isso funciona?
Chad
Apenas uma pequena nota; Você ainda precisa definir "Disable remote-controlled window title changing"sobTerminal->Features
244an 22/10
Você pode querer usar o printfcomando.
MUY Bélgica 14/02
Por que isso funciona? : ESC ] 0 ; txt STDefina o nome do ícone e o título da janela como txt.
Koshinae 6/09
3

Eu estava procurando como fazer com que os títulos das janelas grudassem ao usar o PuTTY com arquivos de sessão.

Assim .putty/sessions/ServerX, defina um título padrão e nenhum comportamento remoto como:

NoRemoteWinTitle=1
WinTitle=Welcome to ServerX

E para atribuir um título especial para algum objetivo específico, basta substituir o padrão:

putty -load .putty/sessions/ServerX -title "ServerX:/var/log/messages"
DCG
fonte
2

A única outra rota que conheço é usar os recursos de emulação xterm para definir o título do sistema no qual você está conectado (no Red Hat Linux e no SUSE Linux, o prompt do Bash é gravado na barra de título por padrão).

Consulte esta página para obter uma descrição do processo e a sequência de escape relevante.

symcbean
fonte
Encontrei-o na versão em francês: traduc.org/Guides_pratiques/Suivi/Xterm-Title/Document
Nolwennig
0

Você pode usar a -loghost "title"opção no Windows - ela abre o PuTTY com o nome do título especificado . Ele também altera outras coisas; portanto, verifique se isso não está causando nenhum outro problema para você.

Estou usando-o com VIRL e funciona perfeitamente bem.

Marceli
fonte
0

No Windows, isso definirá o título da janela de cada sessão com o mesmo nome da sessão:

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
fonte
-1

No Windows, essa linha de cmd definirá o título da janela de cada sessão com o mesmo nome da própria sessão:

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
Giuseppe Costanzo
fonte