どのように動作しますか?

どのように動作しますか?

urxvtで実行されているemacsで認識できますかHyper?私が知っている限り、hyper+somethingと一般的な改ざんを区別しませんsomething。私が知る限り、urxvt自体は修飾子を認識します。しかし、emacsがそれを行うことができるのか、そうであればどのように設定するのかわかりません。

答え1

xmodmapはい、おそらくまたは修飾子を使用する必要はありません。~/.Xdefaults次のようにバインドするだけです。

URxvt.keysym.XF86AudioPlay: string:\030@m
URxvt.keysym.Menu: string:\030@s
URxvt.keysym.Muhenkan: string:\030@h

どのように動作しますか?

重要なイベントを処理する方法の詳細については、以下を参照してください。キーボード入力とテキスト出力はどのように機能しますか?最初。

TL;DR: 「Ca」を例に挙げましょう。 emacsは「Ctrl down、a down、a up、ctrl up」を受け取りません。 urxvtはそれを受け取り、次のように変換します\1(例えば、ctrl - シーケンスは短いです。マッピング、C-aマッピング\1C-bマッピング\2などC-c\3

urxvt がエスケープシーケンスを送信するとき、プロセスの終了時に修正が発生しました。私はurxvt\030@mにemacsに送るように頼みました。つまり、C-x @ m(man asciiを見ると、左の列の030が右の列のXと便利に整列します)。C-x @ mメタ修飾子を追加し、C-x @ sスーパー修飾子を追加し、C-x @ hハイパー修飾子を追加します(参照:https://www.gnu.org/software/emacs/manual/html_node/emacs/Modifier-Keys.html)。

私のキーボードにはXF86AudioPlay、Menu、MuhenkanキーがCtrlキーの近くに便利に配置されており、メタ、スーパー、ハイパーにバインドされています。

C-x @ sより良い解決策があるかもしれません。人々がこれを行うときに使用するように設計された回避策を使用する代わりに、emacsがメタシーケンスとスーパーエスケープシーケンスを受け取り、正しいシーケンスを直接送信する方法を理解する必要があります。いいえすでにコアを語っています。

関連情報