GNU screen。A GNU screen screen run on my RaspberryPi。に小さな問題があります。今、参加するとき、ターミナルをクリックすると(Fedoraでターミネーターを使用しています)変な文字が表示されます。これらの文字は、マウスの座標に依存します…GNU画面に送信されたクリックイベントのデコードが間違っているようです。これらの文字のようなものを含める
kM#kM - Z3#Z3 - q-#q-
等…
私は最初にtty
の問題だと思ったので、RaspberryPiで新しいGNU Screenセッションを開きました。まったく問題ありません。
両方のセッションでstty -a
を実行したところ、違いがあることがわかりました。次に、良好なセッションでstty -g > ~/stty-good-settings
を実行し、不良なセッションにstty `cat ~/stty-good-settings`
を使用してロードしました(その後、値を比較しましたが、設定は正常にロードされました)。スクリーンセッションではなく、他の!
これが私のTERM
値(両方に同じ)、私のtty
設定、私の端末が原因である場合、私は何が起こっているのかわかりません。
実行するものinside GNU screenは、代わりにxterm(または同様の)で実行していると判断し、アプリケーションマウスモードを有効にしました(または、 GNU screen、おそらくsshの前であっても、それ自体を正しくリセットしなかった。)これは、$ TERMが「screen」ではなく「xterm」または「screen.xterm後者は、ncurses-term
がインストールされているDebianシステム(および派生物)で見られます;(Hostおよびraspiで)そのパッケージを削除してみてください。
そうでなければ、reset
(すでに述べたように)またはprintf \\x033c
が一時的に役立つことがあります。または、もちろん、適切なエスケープシーケンスを使用して、端末エミュレータにマウスモードを無効にするように指示します。
reset
はその場所にありますが、画面をクリアします。実行している場合xterm
または何か互換性がある 、使用する最も短い、最も邪魔にならないものは、
printf '\033[?9l'
XTerm Control SequencesのMouse 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)cursesを使用しないか、endwin
の呼び出しを忘れる場合があります。
ncursesアプリケーションは、kmous
機能(これは screen
端末の説明の一部です)をテストして、xterm-mouseモードが使用可能かどうかを確認します。 1999 以降、この機能をテストするための標準的な方法であるため、アプリケーションが誤ってマウスモードをオンにした可能性は低いです。むしろ、それはその仕事をするのを忘れたアプリケーションを示します。
ちなみに、Debianの 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