Caps Lockスキャンコードの再マッピング

Caps Lockスキャンコードの再マッピング

Windowsでは、Caps Lockを2番目のEnterキーに設定して左の指で押すことができます。これを行うには、このパラメータをレジストリに追加しました。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "スキャンコードマッピング"=Hex:00,00,00,00,00,00,00,00,02,00,00,00,1c,00 ,3a, 00,00,00,00,00

Linuxで同じことをどのように実行できますか?

答え1

最も近いのは実行することです。xmodmapログインするたびにプログラムされます。

.Xmodmap次のコードを次の名前のファイルに配置します。

keycode 66 = Return
clear Lock

次のコマンドを実行して、キーコードに現在関連付けられているキー名を表示できます。xevターミナルから。Caps Lockxevウィンドウにフォーカスが合わせられたときに押すと、次の内容が表示されます。

KeyPress event, serial 29, synthetic NO, window 0x7c00001,
    root 0x105, subw 0x0, time 96597741, (1548,225), root:(3151,256),
    state 0x0, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
"   XmbLookupString gives 1 bytes: (0d) "
    XFilterEvent returns: False

ほとんどのキーには対応するkeycodeワイヤだけが必要です。修飾子は個別に追跡されます。keycode … = …つまり、キー記号(指示書の右側の項目)を修飾子と一致させる必要があります。このコマンドは、すべてのキーから修飾子(Caps LockまたはShift Lock)をclear Lock削除します。Lock

展開とデスクトップ環境によっては、この行を追加するだけでは不十分な場合があります~/.Xmodmap。多くの設定(すべてではない)がログインすると自動的にこのファイルを読み込みます。そのコマンドがない場合は、xmodmap ~/.Xmodmapログイン時にコマンドを実行してください。これを行う方法は、選択したデスクトップ環境によって異なります。

答え2

私の.XmodmapファイルではCaps LockEscape

clear Lock
keycode 0x42 = Escape

Returnあなたが望むように作れば効果があるでしょう

clear Lock
keycode 0x42 = Return

非常に興味深いことに、他のキーの組み合わせとも動作します。例えば

keycode 0x87 = Insert

これがContext Menu key鍵となりますInsert。 (もちろん私にとって面白い)

Gilesの答えが示すように、xevキーコードを使用して再割り当てするキーを決定できます。

始める必要があることを忘れないでください。

xmodmap ~/.Xmodmap

ユーザーウィンドウマネージャの起動スクリプトからログインする新しいセッションごとにキーリダイレクトが考慮されるようにします。

関連情報