特定の基本的なxterm X11翻訳を削除するには?

特定の基本的なxterm X11翻訳を削除するには?

私はマニュアルページにリストされている基本的な翻訳セットに付属のxtermを使用しています。または、マイファイルの翻訳を編集します#augment。これは期待どおりに機能します。#override$XAPPLRESDIR/XTerm

しかし、方法を見つけることができません。削除する特定の基本変換(およびxtermで実行されているアプリケーションにイベントを渡す)

Meta <Btn2Down>特にイベントがアプリケーションに配信されることを望みます。 xtermデフォルトの翻訳はこれをタスクclear-saved-lines()にバインドします。

主キーバインディング
[...]
メタ<Btn2Down>:clear-saved-lines() \n\

Meta-Btn2Downイベントを受け取るには、アプリケーションで何をすべきですか?

答え1

私が知っている限り、X Toolkitには次のことができる方法はありません。削除する翻訳者。あなたはできます書くまたは増加するただし、翻訳表の一部を選択的に削除しないでください。

追加する理由の1つです。翻訳を省略するリソースは次のとおりです。パッチ #269。このバージョンでは、翻訳テーブルがより管理しやすい部分に分かれ、より良いカスタマイズが可能です。

起動時にxtermの基本翻訳の1つ以上の部分をオプションで無視します。リソース値はコンマで区切られたキーワードのリストで、次のように短縮できます。 「フルスクリーン」「スクロールロック」「モバイルフォント」または「ホイールマウス」。 Xtermも認識します。「基本」ただし、これを省略すると、リソース設定で同様の定義を提供しない限り、プログラムは使用できなくなります。

しかし、Stéphane Chazelasのコメントに同意すると、アプリケーションに渡されたエスケープシーケンスがボタンイベントに基づいてxterm内に構築されるため、提案された変更を効果的に使用する方法は不明です。おそらく、特別な翻訳のために文字列操作を使用することもできます。

答え2

xtermが処理せずに渡されるバインドされたキーを探している場合は、おそらくまたはinsert()タスクinsert-eight-bit()を探しています。

xtermのマニュアルページから:

insert()
これにより、押されたキーに関連する文字または文字列が挿入されます。

insert-eight-bit()
これにより、押されたキーに関連する文字または文字列の8ビットバージョンが挿入されます。シングルバイト値のみが特別に処理されます。正確な操作は次のように異なります。altは脱出を送りますそしてメタトランスポートエスケープそして8ビット入力リソース。これメタトランスポートエスケープまず、リソースをテストします。より8ビット入力徹底した議論のためのリソース。

「8ビット」という用語は誤解を招く。xtermキーの範囲が128〜255(8番目のビットが設定されている)であることを確認してください。値がこの範囲内にある場合、リソースの値に応じてxtermその後、次のいずれかを実行できます。

  • この値に128を加算して8番目のビットを設定します。
  • キーを押す前にESCバイトを送信するか、
  • キーを変更せずに送信します。

例えば、

Meta <Btn2Down>:insert-eight-bit() \n\

Alt <Key>Return:fullscreen() \n\PS:私は入札を避け、Alt-returnをアプリケーションに渡すことができるように同じ問題を解決しました。

関連情報