Janela de tela do GNU renomeia o incômodo

9

Eu gosto de abrir uma sessão de tela com conexões SSH pré-abertas para os servidores principais que administro no escritório. Eu dou a essas janelas um nome muito breve, geralmente de 2 a 4 caracteres, para que elas apareçam na barra de status da minha tela com esses nomes. Então eu vou ter uma entrada na tela que se parece com

0$ jen1 ...

Agora, quando preciso alternar para esse servidor e fazer qualquer coisa tão simples quanto buscar uma listagem de diretório, esse nome se expande de repente e se torna

0$ ghellings@devjenkins01

O mesmo acontece para todas as janelas à medida que eu as acesso, fazendo com que minha barra de status rapidamente transborde a largura horizontal da minha tela. Gostaria de bloquear o nome no momento da criação da janela e impedir que os aplicativos cliente o alterem. Eu não quero que nenhum aplicativo seja capaz de alterar o título da janela da tela (bem o oposto do que muitas pessoas parecem estar perguntando). Isso se torna especialmente complicado quando eu mudo para essa tela e abro um diretório em algum lugar. Então o título da tela se torna

 (0*$ ghellings@devjenkins01:/opt/somepackage/software/subdirectory)

Eu quero que apenas mude o status ativo para que ele sempre leia

'0$ jen1' or '(0*$ jen1)'

Existe uma maneira de eu bloquear o nome da janela e evitar alterá-lo?

    
por Greg Hellings 28.05.2015 / 15:48

3 respostas

8

Descobri isso logo no teste do RHEL 7 e isso me deixaria louca. O que eu descobri é que houve uma mudança para /etc/bashrc no RHEL 7 que faz com que a nomeação de janelas em screen e tmux seja alterada sempre que um comando como cd ou ls é executado. Na tela de seção *)

if [ -e /etc/sysconfig/bash-prompt-screen ]; then
    PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
## RHEL 7
    PROMPT_COMMAND='printf "3k%s@%s:%s3\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'

## RHEL 6
    PROMPT_COMMAND='printf "3]0;%s@%s:%s3\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi

Portanto, no RHEL 7, a alteração foi de ] 0; para k na seção PROMPT_COMMAND.

Eu considerei abrir um bug, mas nunca cheguei a isso. Eu costumo apenas alterá-lo manualmente em uma nova instalação.

  • Alterações feitas para atualizar a formatação
por 16.08.2016 / 22:06
4

Provavelmente, você tem a variável PROMPT_COMMAND definida como algo como

printf "3k%s@%s:%s3\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

Eu tenho exatamente isso em um sistema do CentOS 7. Isso define o título da janela xterm após cada comando, que screen usa como título da janela.

Apenas desative PROMPT_COMMAND no seu .bashrc ou edite /etc/bashrc para não defini-lo.

    
por 22.07.2015 / 17:03
1

Se você verificar .bashrc ou /etc/bashrc , poderá ver if ou case , que está relacionado a screen .

No meu caso, foi algo como:

if [ -e /etc/sysconfig/bash-prompt-screen ]; then
    PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
    PROMPT_COMMAND='printf "3k%s@%s:%s3\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi

em case $TERM in no arquivo /etc/bashrc .

O problema é que eu não tinha o arquivo /etc/sysconfig/bash-prompt-screen , então PROMPT_COMMAND sob else é usado.

Acabei de criar um arquivo /etc/sysconfig/bash-prompt-screen vazio, e os títulos das janelas de tela não são mais alterados dinamicamente.

    
por 13.07.2018 / 04:03

Tags