Eu tenho um pequeno problema na tela GNU. Uma sessão de tela GNU é executada no meu RaspberryPi. Agora, às vezes, quando eu ingresso, se eu clicar no terminal (estou usando o terminator no Fedora), vejo caracteres estranhos escritos. Esses caracteres dependem das coordenadas do meu mouse ... Parece uma decodificação incorreta do evento click enviada para o GNU Screen. Esses personagens incluem coisas como
kM#kM - Z3#Z3 - q-#q-
etc ...
Primeiro pensei que era um problema com o meu, tty
então eu abri uma nova sessão GNU Screen no meu RaspberryPi: sem problema algum.
Eu fiz um stty -a
em ambas as sessões e vi que havia diferença. Em seguida, fiz uma stty -g > ~/stty-good-settings
sessão boa e a carreguei na ruim stty `cat ~/stty-good-settings`
(comparei os valores depois disso, as configurações foram carregadas com êxito), mas ainda tenho o problema em uma das sessões da tela e não na outra!
Não tenho certeza do que está acontecendo, se isso se deve ao meu TERM
valor (o mesmo em ambos), minhas tty
configurações, meu terminal ...
fonte
tmux
de vez em quando também. Em algum momento, os multiplexadores de terminal parecem ficar banais e decodificar as entradas incorretamente (xterm
também pode ter algo a dizer aqui).reset
geralmente corrige isso para mim.reset
funciona na tela! Obrigado pela correção, no entanto, eu adoraria algumas dicas sobre o porquê ...Respostas:
Algo que é executado dentro da tela do GNU decidiu que estava sendo executado em um xterm (ou similar) e habilitou o modo Mouse de Aplicativo. (Ou algo que você executa nesse terminal antes de se conectar à tela do GNU, possivelmente antes do ssh, que não se redefiniu adequadamente.) Geralmente, esse é o caso se $ TERM não for "tela", mas por exemplo "xterm" ou "tela. xterm ". O último é visto nos sistemas Debian (e derivados) que foram
ncurses-term
instalados; tente limpar esse pacote (no host e no raspi).Caso contrário,
reset
(como já foi dito) ouprintf \\x033c
pode ajudar temporariamente. Ou, é claro, as seqüências de escape apropriadas para dizer ao emulador de terminal para desativar o modo mouse.fonte
reset
fez o truque. Obrigado.reset
tem seu lugar, mas limpa sua tela. Se você estiver executandoxterm
ou algo compatível , a coisa mais curta e menos invasiva a ser usada seriaIsso não é explicitamente declarado na seção Rastreamento de Mouse das XTerm Control Sequences , mas
xterm
permite redefinir (desativar) o modo do mouse desativando qualquer um dos modos possíveis que possam estar ativados. Aqueles são documentados como constantes nomeadas:e
9
é o mais curto.O modo do mouse está ativado por muitos aplicativos. Se alguém sair sem desligá-lo, isso produzirá os caracteres estranhos que você viu. Os aplicativos ncurses desativam o modo mouse
endwin
, o qual todos os comportamentos bem-intencionados amaldiçoam a chamada do aplicativo. Outros aplicativos podem não usar (n) maldições ou podem esquecer de ligarendwin
.O ncurses applications verifica se o modo xterm-mouse está disponível testando a
kmous
capacidade (que faz parte dascreen
descrição do terminal). Essa é a maneira padrão de testar o recurso desde 1999 , por isso é improvável que um aplicativo ative o modo do mouse acidentalmente. Em vez disso, indica um aplicativo que esqueceu de fazer seu trabalho.A propósito, não existe nenhuma
screen.xterm
entrada noncurses-term
pacote Debian (mantê-lo é mais útil do que removê-lo). Aqui está uma lista de todas as entradas relacionadas à tela nesse pacote. A maioria é usada para corrigir discrepâncias noscreen
comportamento de vários terminais:fonte