У меня небольшая проблема на экране GNU. Сеанс экрана GNU запускается на моем RaspberryPi. Теперь иногда, когда я присоединяюсь к нему, если я нажимаю в терминале (я использую терминатор в Fedora), я вижу странные написанные символы. Эти символы зависят от координат моей мыши ... Похоже, неправильное декодирование события щелчка, отправленного на экран GNU. Эти символы включают в себя такие вещи, как
kM#kM - Z3#Z3 - q-#q-
и т.д…
Сначала я подумал, что это проблема с моим, tty
поэтому я пошел и открыл новый сеанс GNU Screen на своем RaspberryPi: никаких проблем вообще.
Я сделал stty -a
на обеих сессиях и увидел, что есть разница. Затем я сделал stty -g > ~/stty-good-settings
хорошую сессию и загрузил ее на плохую stty `cat ~/stty-good-settings`
(сравнивал значения после этого, настройки были успешно загружены), но у меня все еще есть проблема в одной из сеансов экрана, а не в другой!
Я не уверен, что происходит, если это связано с моей TERM
ценностью (то же самое в обоих), моими tty
настройками, моим терминалом ...
источник
tmux
время от времени тоже. В какой-то момент терминальные мультиплексоры, похоже,xterm
работают неправильно и декодируют входы неправильно ( возможно, здесь есть что сказать).reset
обычно исправляет это для меня.reset
работает на экране тоже! Спасибо за исправление, однако, я хотел бы получить некоторое представление о том, почему ...Ответы:
Что-то, что работает внутри экрана GNU, решило, что оно работает в xterm (или подобном), и включило режим Application Mouse. (Или что-то, что вы запускаете в этом терминале перед тем, как подключить его к экрану GNU, возможно, даже до ssh, который сам себя не сбросил должным образом.) Это часто имеет место, если $ TERM не «screen», а, например, «xterm» или «screen». Xterm». Последний виден в системах Debian (и их производных), которые
ncurses-term
установили; попробуйте очистить этот пакет (на хосте и распи).В противном случае
reset
(как уже было сказано) илиprintf \\x033c
может помочь временно. Или, конечно, правильные escape-последовательности, чтобы сообщить эмулятору терминала отключить режим мыши.источник
reset
сделал свое дело. Благодарю.reset
имеет свое место, но очищает ваш экран. Если вы работаетеxterm
или что-то совместимое , самая короткая, наименее навязчивая вещь будетЭто явно не указано в разделе « Отслеживание мыши » в « Последовательностях управления XTerm» , но
xterm
позволяет сбросить (отключить) режим мыши, отключив любой из возможных режимов, которые могут быть включены. Они задокументированы как именованные константы:и
9
самый короткий.Режим мыши включен многими приложениями. Если вы выходите без выключения, это приводит к появлению странных символов, которые вы видели. Приложения ncurses отключают режим мыши
endwin
, при котором все хорошо проклятые приложения вызывают приложения. Другие приложения могут не использовать (n) curses или могут забыть позвонитьendwin
.Приложения ncurses проверяют, доступен ли режим мыши xterm, проверяя
kmous
возможность (которая является частьюscreen
описания терминала). Это был стандартный способ тестирования этой функции с 1999 года , поэтому маловероятно, что приложение случайно включило режим мыши. Скорее, это указывает на приложение, которое забыл выполнить свою работу.Кстати,
screen.xterm
вncurses-term
пакете Debian нет записи (хранить ее более полезно, чем удалять). Вот список всех связанных с экраном записей в этом пакете. Большинство из них используются для устранения несоответствий вscreen
поведении различных терминалов:источник