私はscreen
単純なステータスバーを使用します。何かをスクロールするには、Ctrl+aを使ってESCコピーモードに切り替え、キーボードを使ってスクロールします。これは、マルチバッファや分割でもうまく機能します。
私の質問は次のとおりですマウスホイールを使って画面をスクロールするにはどうすればよいですか?
注1:マウスホイールを使用して端末内をスクロールできますが、マルチバッファとスプリットではまったく機能しません。
ノート2: termcapinfo xterm* ti@:te@
このソリューションはターミナルスクロールを使用するので役に立ちません。これは、ステータス行、マルチバッファ、およびパーティションと互換性がありません。
IMHOの最高のソリューションは次のとおりです。
- コピーモードでは、キーボード配列と同様にマウスホイールを使用してスクロールします。
- 画面が通常モードのときにマウスホイールイベント「スクロールアップ」が発生すると、画面はコピーモードに切り替わり、そのイベントを処理します。
- 画面がコピーモードで、マウスホイールイベント「下にスクロール」が発生した場合、すなわち、一番下に達すると、画面はコピーモードを終了する。
- 画面ステータスバーは常に表示され、更新されます(キーボードにスクロールするとすでに機能します)。
答え1
screen
確かに知るホイールマウスについて。端末とキーボード(エスケープシーケンスを含む)から送信されたキーだけがわかります。
screen
知るマウスクリック(ソースコードには「左マウスクリック」のみが記載されています)。ソースコードを読むことができます(ディスプレイ.c)何をしているのかを確認し、それ以上は必要ありません(これは特にscreen
はマウスイベントがデコードされる唯一の場所です。- xtermマウスプロトコルは、ホイールマウスを示すためにボタン4と5を送信します。
screen
これについて知られていることはありません。端末で実行されているアプリケーションで特に処理できます。 - 一部の端末では、上下のスクロールをシミュレートするために代替画面にカーソルキーを送信します。
screen
(予想どおり)またそれをアプリケーションに渡します。