Tengo un pequeño problema en la pantalla de GNU. Se ejecuta una sesión de pantalla GNU en mi RaspberryPi. Ahora, a veces, cuando me uno, si hago clic en el terminal (estoy usando el terminador en Fedora) veo caracteres extraños escritos. Estos caracteres dependen de las coordenadas de mi mouse ... Parece una decodificación incorrecta del evento click enviado a la pantalla GNU. Estos personajes incluyen cosas como
kM#kM - Z3#Z3 - q-#q-
etc ...
Primero pensé que era un problema con mi, tty
así que fui y abrí una nueva sesión de GNU Screen en mi RaspberryPi: no hay problema en absoluto.
Hice una stty -a
en ambas sesiones y vi que había diferencia. Luego hice una stty -g > ~/stty-good-settings
sesión buena y la cargué en la mala stty `cat ~/stty-good-settings`
(comparé los valores después de eso, la configuración se cargó con éxito) pero todavía tengo el problema en una de las sesiones de pantalla y no en la otra.
No estoy seguro de lo que está sucediendo, si esto se debe a mi TERM
valor (igual en ambos), mi tty
configuración, mi terminal ...
fuente
tmux
de vez en cuando también. En algún momento, los multiplexores de terminales parecen ir de banana y decodificar las entradas incorrectamente (xterm
también podría tener algo que decir aquí).reset
por lo general me arregla esto.reset
funciona en la pantalla! Gracias por la solución, sin embargo, me encantaría saber por qué ...Respuestas:
Algo que se ejecuta dentro de la pantalla de GNU decidió que se estaba ejecutando en un xterm (o similar) y habilitó el modo Application Mouse. (O algo que ejecute en ese terminal antes de conectarlo a la pantalla de GNU, posiblemente incluso antes de ssh, que no se reinició correctamente). Este suele ser el caso si $ TERM no es "pantalla" sino, por ejemplo, "xterm" o "pantalla". xterm ". Esto último se ve en los sistemas Debian (y derivados) que se han
ncurses-term
instalado; intente purgar ese paquete (en host y raspi).De lo contrario,
reset
(como ya se dijo) oprintf \\x033c
puede ayudar temporalmente. O, por supuesto, las secuencias de escape adecuadas para indicarle a su emulador de terminal que desactive el modo de mouse.fuente
reset
Hizo el truco. Gracias.reset
tiene su lugar, pero borra tu pantalla. Si está ejecutandoxterm
o algo compatible , lo más corto y menos intrusivo para usar seríaEsto no se dice explícitamente en el seguimiento del ratón sección de XTerm secuencias de control , pero
xterm
permite reestablecer (deshabilitar) el modo de ratón apagando cualquiera de los modos posibles que podrían ser activadas. Esos están documentados como constantes nombradas:Y
9
es el más corto.El modo mouse está activado por muchas aplicaciones. Si uno sale sin apagarlo, eso produce los caracteres extraños que vio. Las aplicaciones ncurses desactivan el modo de mouse
endwin
, que todas las aplicaciones curses de buen comportamiento llaman. Otras aplicaciones pueden no usar (n) maldiciones, o pueden olvidarse de llamarendwin
.Las aplicaciones ncurses comprueban si el modo xterm-mouse está disponible probando la
kmous
capacidad (que es parte de lascreen
descripción del terminal). Esa ha sido la forma estándar de probar la función desde 1999 , por lo que es poco probable que una aplicación active accidentalmente el modo del mouse. Más bien, indica una aplicación que olvidó hacer su trabajo.Por cierto, no hay ninguna
screen.xterm
entrada en elncurses-term
paquete de Debian (mantenerlo es más útil que eliminarlo). Aquí hay una lista de todas las entradas relacionadas con la pantalla en ese paquete. La mayoría se utilizan para corregir discrepancias en elscreen
comportamiento de varios terminales:fuente