클릭시 GNU 화면 이상한 문자


21

GNU 화면에 작은 문제가 있습니다. 내 RaspberryPi에서 GNU 스크린 세션이 실행됩니다. 때로는 가입 할 때 터미널을 클릭하면 (Fedora에서 종결자를 사용하고 있습니다) 이상한 문자가 표시됩니다. 이 문자들은 마우스의 좌표에 따라 다릅니다… GNU 스크린으로 보내진 클릭 이벤트를 잘못 디코딩 한 것 같습니다. 이 문자에는 다음과 같은 것들이 포함됩니다

kM#kM -  Z3#Z3  -  q-#q-

기타…

나는 그것이 내 문제라고 생각해서 ttyRaspberryPi에서 새로운 GNU Screen 세션을 열었습니다. 전혀 문제가 없습니다.
나는 stty -a두 세션에 모두 참여했고 차이가 있음을 보았다. 그런 다음 stty -g > ~/stty-good-settings좋은 세션을 수행하고 나쁜 세션에로드했습니다 stty `cat ~/stty-good-settings`(그 후에 값을 비교하면 설정이 성공적으로로드되었습니다). 그러나 여전히 다른 세션이 아닌 다른 세션 중 하나에 문제가 있습니다!

이것이 내 TERM가치 (둘 다 동일), tty설정, 터미널 때문인 경우 무슨 일이 일어나고 있는지 잘 모르겠습니다 .


2
나는 tmux때때로 이것도 함께 본다 . 어떤 시점에서 터미널 멀티플렉서는 바나나가되어 입력을 잘못 디코딩하는 것처럼 보입니다 ( xterm여기서 말할 것도 있습니다). reset일반적으로이 문제를 해결합니다.
peterph 2016 년

실제로, reset화면에서도 작동합니다! 그러나 수정에 감사드립니다. 왜 그런지에 대한 통찰력을 갖고 싶습니다.
Noé Malzieu

나도 ... :) 터미널 멀티플렉서와 ​​포함하는 터미널 사이의 나쁜 상호 작용이라고 생각합니다.
peterph 2016 년

나는 .. 당신은 질문에 대답 할 수 있습니다, 나는이 답변을 확인합니다!
Noé Malzieu

답변:


14

실행 뭔가 내부 GNU 화면이 대신은 xterm을 (또는 유사한)에서 실행 된 결정 및 응용 프로그램 마우스 모드를 활성화. (또는 GNU 화면에 연결하기 전에, 아마도 ssh 이전에 해당 터미널에서 실행되어 제대로 재설정되지 않은 경우도 있습니다.) $ TERM이 "screen"이 아니라 "xterm"또는 "screen"인 경우가 종종 있습니다. xterm”. 후자는 ncurses-term설치된 데비안 시스템 (및 파생물)에서 볼 수 있습니다 . 해당 패키지 (호스트 및 raspi)를 제거하십시오.

그렇지 않으면, reset이미 말했듯이 또는 printf \\x033c일시적으로 도움이 될 수 있습니다. 또는 물론 터미널 이뮬 레이터에게 마우스 모드를 비활성화하도록 지시하는 적절한 이스케이프 시퀀스.


reset트릭을했다. 감사.
AlikElzin-kilaka

9

reset자리가 있지만 화면을 지 웁니다. 실행 중이 xterm거나 호환되는 것이 있으면 가장 짧고 방해가되지 않는 것은

printf '\033[?9l'

이는 XTerm Control SequencesMouse Tracking 섹션에 명시 적으로 언급되어 있지 않지만 켜져있을 수있는 모드를 끄면 마우스 모드를 재설정 (비활성화) 할 수 있습니다. 그것들은 명명 된 상수로 문서화됩니다 :xterm

 #define SET_X10_MOUSE               9
 #define SET_VT200_MOUSE             1000
 #define SET_VT200_HIGHLIGHT_MOUSE   1001
 #define SET_BTN_EVENT_MOUSE         1002
 #define SET_ANY_EVENT_MOUSE         1003

그리고 9짧다.

많은 응용 프로그램에서 마우스 모드를 켭니다. 하나를 끄지 않고 종료하면 이상한 문자가 나타납니다. ncurses 응용 프로그램은에서 마우스 모드를 해제합니다. endwin모든 잘 작동하는 curses 응용 프로그램 호출입니다. 다른 응용 프로그램은 (n) 저주를 사용하지 않거나 전화를 잊어 버릴 수 있습니다 endwin.

ncurses 응용 프로그램은 kmous기능 ( screen터미널 설명의 일부)을 테스트하여 xterm 마우스 모드를 사용할 수 있는지 확인합니다 . 이것이 1999 년 이후로 기능을 테스트하는 표준 방법 이므로, 응용 프로그램이 실수로 마우스 모드를 켤 가능성은 거의 없습니다. 오히려 작업을 잊어 버린 응용 프로그램을 나타냅니다.

screen.xterm그건 그렇고, 데비안 ncurses-term패키지 에는 항목이 없습니다 (제거하는 것보다 유지하는 것이 더 좋습니다). 다음은 해당 패키지의 모든 화면 관련 항목 목록입니다. 대부분은 screen다양한 터미널의 동작 불일치를 수정하는 데 사용됩니다 .

/usr/share/terminfo/s/screen.konsole
/usr/share/terminfo/s/screen-16color-bce
/usr/share/terminfo/s/screen-16color
/usr/share/terminfo/s/screen3
/usr/share/terminfo/s/screen.mrxvt
/usr/share/terminfo/s/screen-bce.Eterm
/usr/share/terminfo/s/screen-bce.gnome
/usr/share/terminfo/s/screen.xterm-xfree86
/usr/share/terminfo/s/screen-bce.konsole
/usr/share/terminfo/s/screen-bce.mlterm
/usr/share/terminfo/s/screen-256color-s
/usr/share/terminfo/s/screen-bce.mrxvt
/usr/share/terminfo/s/screen-bce.rxvt
/usr/share/terminfo/s/screen.linux
/usr/share/terminfo/s/screen.vte
/usr/share/terminfo/s/screen-bce.xterm-new
/usr/share/terminfo/s/screen.teraterm
/usr/share/terminfo/s/screen-16color-bce-s
/usr/share/terminfo/s/screen.xterm-r6
/usr/share/terminfo/s/screen+fkeys
/usr/share/terminfo/s/screen-256color-bce-s
/usr/share/terminfo/s/screen.mlterm
/usr/share/terminfo/s/screen-16color-s
/usr/share/terminfo/s/screen-bce.linux
/usr/share/terminfo/s/screen.gnome
/usr/share/terminfo/s/screen.rxvt
/usr/share/terminfo/s/screen2
/usr/share/terminfo/s/screen.Eterm
/usr/share/terminfo/s/screen.xterm-new
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.