xmodmapで奇妙な動作が発生しています。 Caps_Lock
を再マップしてEscape
およびShift+Caps_Lock
として機能し、Caps_Lock
として機能させたい。私の~/.Xmodmap
では、次のコマンドの可能なすべての組み合わせを試しましたが、常に同じ結果になりました。
clear Lock
remove Lock = Caps_Lock
keycode 66 =
keycode 66 = Escape Caps_Lock
keysym Caps_Lock = Escape Caps_Lock
Caps_Lock
は適切にEscape
に再マップされます
$ xmodmap -pke | grep Caps
keycode 66 = Escape Caps_Lock Escape Caps_Lock
[〜#〜] but [〜#〜]再起動後もCAPSはロックされます。したがって、Escape
とCaps_Lock
の両方として機能します。実行中xevstate
が0x10
と0x12
の間で切り替わることがわかります。 Shift+Caps_Lock
は期待どおりに機能しますが(Caps_Lock
として)。ログイン後にターミナルでxmodmap ~/.Xmodmap
を実行すると、以前と同じように表示されます。
$ xmodmap -pke | grep Caps
keycode 66 = Escape Caps_Lock Escape Caps_Lock
[〜#〜] but [〜#〜]Caps_Lock
はEscape
としてのみ期待どおりに動作を開始し、CAPSをロックしなくなります。
私は本当に私が間違っていることを理解していません。
ついにこれを機能させる方法を見つけました。 Xキーボード拡張はまだこのためのオプションを提供していることがわかりました。 /usr/share/X11/xkb/rules/base.lst
を見ると、次の行が見つかりました。
caps:escape_shifted_capslock Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock
だから私は単にcaps:escape_shifted_capslockを/etc/X11/xorg.conf.d/00-keyboard.conf
内のXkbOptions
に次のように追加する必要がありました:
Option "XkbOptions" "terminate:ctrl_alt_bksp,caps:escape_shifted_capslock"
再起動後、Caps_Lock
とShift+Caps_Lock
は私が望んでいたとおりに動作していました。