私はマニュアルページにリストされている基本的な翻訳セットに付属の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をアプリケーションに渡すことができるように同じ問題を解決しました。