Comandante da meia-noite confuso com o uso da roda do mouse

1

Eu uso mc com frequência e funciona perfeitamente há anos. Um tempo atrás (semanas?) mc parece ficar confuso com a roda do mouse e imprime o que parecem ser seqüências de escape ANSI na tela semelhantes a estas:

[97;14;10M[96;15;10M[97;16;10M[96;16;10M[96;16;10M

Não consigo encontrar sequências ANSI com 3 números e M . 97 parece significar roll up e 96 parece significar roll down . Os outros números são um mistério.

Também é estranho que essa falha não seja previsível e seja iniciada a qualquer momento enquanto estiver usando mc . E, para torná-lo ainda mais estranho: eu posso ter um mc aberto em um terminal, que está funcionando ok, e, em outro terminal, um mc que falha.

O último parece indicar que a falha não é um fator comum (como talvez gpm ou mais).

Estou usando o Slackware 14.2, o urxvt (v9.22) e um mouse m $ ótico. Alguém tem uma ideia de onde procurar? Eu também corri mc em rxvt e, em comparação, urxvt parece um pouco lento de rolagem.

    
por jcoppens 05.09.2016 / 07:02

2 respostas

3

Estas são as 1015 coordenadas estendidas do mouse do urxvt, veja link (e por o caminho, o segundo e terceiro números são coordenadas de célula). O objetivo principal desta extensão de protocolo é suportar coordenadas do mouse além de 223.

Outra extensão, mais favorável, é o modo SGR 1006 do xterm, que trata do mesmo problema (e mais) sem alguns dos inconvenientes da extensão do urxvt. O modo 1006 do Xterm deve obsoleto o modo 1015 do urxvt.

rxvt-unicode (a.k.a. urxvt), no entanto, é o único emulador de terminal que eu conheço que suporta eventos de mouse, mas não suporta esta extensão. Conversei com seu autor em janeiro de 2012, mas ele se recusou a implementar esse modo por motivos que eu não conseguia entender. Talvez alguém devesse tentar outra vez; são apenas algumas linhas de código trivial que o urxvt precisa.

O Midnight Commander implementa essa nova e melhor extensão xterm e não implementa mais a extensão urxvt. Para obter detalhes, consulte os ingressos do mc 2662 e 2956 .

Isso significa que normalmente o mc deve solicitar uma extensão que o urxvt não suporta e, portanto, continuar operando sem usar nenhuma extensão (e o mouse trabalhando somente até a coluna 223).

No seu caso, provavelmente, um aplicativo executa uma saída não limpa e deixa essa extensão do mouse ativada, o que confunde o mc (ele não entende o que recebe). Você pode sair do mc e depois desabilitar esta extensão executando echo -ne '\e[?1015l' e, finalmente, reiniciando o mc.

Infelizmente em urxvt-9.21 o comando reset não desabilita esta extensão, embora realmente deva. Eu acredito que isso seja um bug.

Se esse problema recorrente realmente incomodar você, recomendo que você incorpore a sequência de escape acima em seu prompt (ou alterne para outro emulador que suporte a extensão 1006). Ou rastreie e corrija o aplicativo que deixa essa extensão ativada ao sair.

    
por 05.09.2016 / 10:13
0

Onde eu errei estava adicionando export TERM = xterm ao meu bash_profile. Mau erro. Dessa forma, eu substituí a variável TERM do terminal. Não faça isso.

Isso confundiu completamente o controle do mouse em urxvt por cmus e mc, nunca mais exportar TERM = ... globalmente, agora eu removi. Tudo funciona muito bem novamente.

Quanto à outra questão que tentei resolver com a mudança do TERM, agora só é aplicado onde precisa ser localmente: alias vim = 'TERM = xterm vim' isso resolveu meu problema original com as cores no vim no tmux ...

    
por 01.04.2018 / 11:12