Eu adoraria poder renomear meu título da janela do tmux automaticamente para prompt_command, ps1 ou apenas o nome do host de uma máquina ssh
para a qual eu devo . ter 9 janelas abertas rotuladas como "ssh" é realmente inútil. Fazendo o sysadmin funcionar, abro novas telas e ssh ao redor para renomeá-las manualmente.
Uma coisa que notei é tmux
atualizar o xterm
título da janela, então eu sinto que ele precisa saber.
Qualquer ajuda? Eu estaria disposto a voltar para screen
conseguir esse recurso.
PROMPT_COMMAND='settitle $HOSTNAME:$PWD'
- já que com o código do @ Mikel não recebi nome de host e-bash: : No such file or directory
erro antes de cada prompt de comando. Parece-me que o$()
bash tentaria executar quaisquersettitle
retornos . (Eu estou correndo bash no Linux.)tmux rename-window -t${TMUX_PANE} "Title Text"
Esta é a maneira correta de definir títulos do tmux em uma janela. A variável $ TMUX_PANE é configurada pelo tmux e é usada para diferenciar entre diferentes painéis.
fonte
-t${TMUX_PANE}
é necessário (pelo menos não era para mim).sleep 3
e alternar entre janelas, caso contrário, o prompt emitirá o comando para a janela errada quando o sono for concluído. (Esta é a razão pela qual eu vim aqui, +1).Apenas para pessoas que vieram aqui pesquisando como alterar o título de uma sessão do tmux:
Ctrl+ B,$
Isso fornecerá um prompt, onde você poderá renomear a sessão ativa.
Para alterar a janela ativa, use o komma:
Ctrl+ B,,
veja: Como renomear uma sessão no tmux?
fonte
Combinando as respostas de Mikel e UtahJarhead, usei o seguinte
.zshrc
para resolver esse problema:Eu tenho a renomeação automática de janela ativada por padrão e não consigo encontrar uma maneira de reativá-la depois de sair do host remoto. Portanto, saio completamente da janela - não é um problema para o meu fluxo de trabalho. Se você preferir renomeá-lo para, digamos, 'bash', substitua a
exit
linha portmux rename-window "bash"
.fonte
hostname -s
após o comando ssh "@ $", basicamente "redefine" o título para minha máquina "gateway".Em vez de
exit
outmux rename-window "bash"
você pode usarIsso reativa a função normal que renomeia automaticamente a janela para os próximos comandos.
O
if
bloco impede (sem ele) renomeartmux
a janela atual dosssh
comandos usados em outros shells (fora detmux
).fonte
if env | grep -q "TMUX_PANE"; then
dasps -p...
coisas, mas o mesmo princípio.Sei que isso já foi respondido há muito tempo, mas pensei em adicionar o que eu brinquei e encontrei (com base na resposta aceita) .. Adicionei isso ao / etc / bashrc de todos os meus servidores (fácil de faça com tecido, fantoche, etc)
E define o nome da janela automaticamente na tela ou tmux.
fonte
hostname -s
remove o material de domínio extra, de modo que mostra server1.internal.local-se como apenas server1Outra solução seria renomear a janela ativa para o nome anterior, após a sessão ssh:
fonte
Isso funciona no
tmux 2.1
zsh localmente e nos servidores:Eu tive que desativar a opção allow-rename manualmente antes de alterar o nome do Windows - caso contrário, ela foi alterada para o caminho atual na maioria dos meus servidores (também usando o zsh). A coisa boa é: se você reativar a opção allow-rename, ela funcionará imediatamente.
fonte
Adicione isto a
.profile
ou.bashrc
fonte
Eu observaria em todos esses exemplos com:
Você pode pegar o código de saída e sair da função com ele, caso contrário, coisas como:
Retornará 0.
Sai do ssh com o código de retorno do ssh.
fonte