Emacs のスーパー/ハイパー修飾子の右コントロール キーを変更する方法

Emacs のスーパー/ハイパー修飾子の右コントロール キーを変更する方法

controlSolaris と Linux で、右キーを「スーパー」修飾子に変更し、右キーを「alt」修飾子 (Meta ではない) に変更したいと思いますalt(Windows で AutoHotKey を使用してこれを行う方法は知っています)。これを行う方法は知っています。

(define-key local-function-key-map (kbd "<rwindow>") 'event-apply-super-modifier

しかし、どのように指定すればいいのか分からない controlキーまたは altキー (Windows キーよりも入力しやすい)。もし emacs で直接実行できれば (Windows でも AutoHotKey を回避できれば) すばらしいのですが。そうでなければ、Solaris と Linux で AutoHotKey と同じことが実現できるかどうか知りたいです。

答え1

Emacsでこれを行う方法は知りません。私の知る限り、2つのCtrlキーは同じように扱われます。一部のOSではキーシンボルを変更するオプションがありますR-Altが、X Windowsではそのようなオプションはありません。x-alt-keysym変数を使用してキーシンボルを変更できることに注意してください。両方 Altキー。

X Windows の各キーに割り当てられた修飾子を変更するには、 を使用しますxmodmap。The Arch Wiki記事使用方法について説明します。基本的には次のようになります。

  • xmodmap -pm修飾子とそれらに割り当てられたキーのリストを印刷するには、次のように入力します。

        shift       Shift_L (0x32),  Shift_R (0x3e)
        lock
        control     Control_L (0x42),  Control_R (0x69)
        mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
        mod4        Super_L (0x85),  Super_R (0x86) ....
    
  • 次に、変更したい修飾子をクリアして再バインドするファイルを作成します。たとえば、R-Ctrlに変更するにはsuper、次のようにします。

        clear super
        add super = Super_L Super_R Control_R
        clear control
        add control = Control_L
    
  • キーを処理するにはAlt、以下を使用できます。

        clear meta
        add meta = Alt_L
    

    metaこれにより、Emacs は既存の修飾子を見つけ、キーをデフォルトでAltとして扱うのをやめるはずです。その後、キーはEmacs で修飾子として (およびとして) 使用できるようになります。私はこれを試したことはありません。metaR-AltaltL-Altmeta

    それが機能しない場合は、未使用の修飾子を選択してバインドする必要がありますR-Alt。たとえば、hyper。その後、それを Emacs バインディングで使用できます。

  • ~/.Xmodmap変更を有効にするには、ファイルを保存して実行します。

    xmodmap ~/.Xmodmap
    

    多くのデスクトップ環境では、~/.Xmodmap起動時に自動的に実行されます。そうでない場合は、ファイル内で実行する必要があります~/.xinitrc

    if [ -s ~/.Xmodmap ]; then
        xmodmap ~/.Xmodmap
    fi
    

関連情報