質問: そして、それを行うとすぐに、ijklは文字として機能しなくなりますが、修飾キー(caps lock)を押さなくても矢印として機能します。以前のマッピングを壊さずに矢印キーを無効にするにはどうすればよいですか?
回答: 読んで周りの情報を得た後。問題は、実際に再マッピングを行う前に修飾子を削除する必要があることのようです。答えへ:設定を変更すると、私のxmodmapは次のようになります。xmodmap:修飾子ごとに最大4つのキー(括弧内のキーコード):shift shift_l (0x32), shift_r (0x3e) lock control control_l (0x25), control_r (0x69) mod1 alt_l (0x40), alt_r (0x6c), alt_l (0xcc), meta_l (0xcd) mod2 num_lock (0x4d) mod3 mode_switch (0x42), mode_switch (0xcb) mod4 super_l (0x85), super_r (0x86), super_l (0xce) mod5 mode_switchを調査すると、caps_lockが正常にマッピングされたという結論に達します。[smalltalk@localhost ~]$ xmodmap -pke | egrep -e '(mode_switch)' keycode 66 = mode_switch nosymbol mode_switch keycode 203 = mode_switch nosymbol mode_switch 次に、manページからの抜粋をxmodmapします。 keycode number = keysymname ... the list of keysyms is assigned to the indicated keycode (which may be specified in decimal, hex or octal and can be determined by running the xev program). up to eight keysyms may be attached to a key, however the last four are not used in any major x server implementation. the first keysym is used when no modifier key is pressed in conjunction with this key, the second with shift, the third when the mode_switch key is used with this key and the fourth when both the mode_switch and shift keys are used. 次の構成は機能しますが、i、j、k、lを使用している間はcaps_lockを保持する必要があります(manページに記載されているとおり)。vim ~/.xmodmapを編集:! make capslock the "mode_switch" key clear lock ! all mod must be cleared clear mod1 clear mod2 clear mod3 clear mod4 clear mod5 ! clearning current caps_lock assigment and assigning it new one keycode 66 = keycode 66 = mode_switch ! setting all the modification keys add mod1 = alt_l alt_r meta_l add mod2 = num_lock add mod3 = mode_switch add mod4 = super_l super_r hyper_r ! clear must be done before configuring it keycode 31 = keycode 44 = keycode 45 = keycode 46 = ! configuration (first column normal type, second with shift and second with mod_switch) keycode 31 = i i up keycode 44 = j j left keycode 45 = k k down keycode 46 = l l right ! clearing the arrow keys and some functional keys like home keycode 111 = keycode 113 = keycode 114 = keycode 116 = keycode 112 = keycode 117 = さて、大きな問題になります。caps_lockがオンのときにi、j、k、lキーを機能させる方法は?おそらくxkbに変更を加える必要があります。編集はい、できます。私はそれを理解しました。注:これはすべてのキーボード、すべてのレイアウトに適用されるため、テストに適しています。 xkbを介して適切に実行する場合は、独自のレイアウトを作成し、group1とgroup2 +にマッピングを実行させる必要があります。以下は、キーボードのテストに最適なハックです(../basicファイルのバックアップを忘れずに!):警告これはすべてのキーボード、すべてのバリアントに適用されます。ファイルの編集:sudo vim/usr/share/x11/xkb/compat/basic# add caps_lock to virtual modifiers virtual_modifiers numlock,altgr,caps_lock; # change from: interpret mode_switch { usemodmapmods= level1; virtualmodifier= altgr; action= setgroup(group=+1); }; # to: interpret mode_switch { usemodmapmods= level1; virtualmodifier= caps_lock; action= lockgroup(group=+1); }; # change from group 2 = altgr; to: group 2 = caps_lock; 注:複数のレイアウトがある場合、それらに干渉する可能性があります。