lynx
ブラウザ、htop
などのアプリケーションやその他の多くのアプリケーションは、bash
シェルを介してssh
で位置依存のマウスクリックを受け入れます。 ssh
がコマンドラインインターフェイスであることを知っています。では、マウスのクリックをどのように受け入れますか?
私見、そのような [〜#〜] tui [〜#〜] アプリケーションを書く最も簡単な方法は ncurses を使用することです。
「New Curses」は、基礎となるデバイスの詳細からTUIの設計を抽象化するライブラリです。引用したすべてのソフトウェアは、ncursesを使用してインターフェイスをレンダリングします。
ターミナルエミュレータ(xterm、gnome-termなど)をクリックすると、ターミナルエミュレータは ANSIエスケープコード のシーケンスでクリックを変換します。これらのシーケンスは、ncursesライブラリーによってイベントで読み取られ、変換されます。
スタックオーバーフローの例を見つけることができます: NCursesのマウス移動イベント
それは非常に単純です。古い学校のシリアルターミナルセッションでは、マウスは対話型シェルセッションに入力を送信するためのオプションではありませんでした。 (私はいくつかの初期の例外があったと確信しています。)
ただし、ターミナルエミュレーターをグラフィカルデスクトップセッション内で実行している場合、ターミナルエミュレーターはマウスに対応しています。
高レベルで発生するのは、マウスイベントがターミナルエミュレーター(xterm
など)によってターミナルシーケンスに変換され、それらが、実行中のアプリケーション、htop
、vim
などの対話型シェルセッションに送信されることです。この場合、vim
は、マウスイベントではなく、(単純な一連のキーボードイベントが生成するような)ターミナルシーケンスのみを表示します。