次のコマンドを使用してキーマップを正常に更新できます。
/usr/bin/setxkbmap -option "ctrl:swapcaps"
これは私の修飾子マップを変更しないようです。
[OP@localhost ~]$ xmodmap
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x25)
control Control_L (0x42), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
しかし、すべてがうまくいくようです。私の質問は次のとおりですこれが修飾子マップを変更しないのはなぜですか。それがうまくいくと、修飾子マップは何に使用されますか?
答え1
変更がないため、修飾子マップは変更されません。 ;)
何が起こると、xkb
そのControl_L鍵記号はその鍵記号が属するキーコード66に帰属しますCapsLock。
CapsLockkeyymはもはやキーコードの影響を受けませんが、まだCaps Lock修飾子です。
Control_LkeysymはすでにModmapにあるため、追加する必要はありません。
実際に2つのShiftキーを同時に押すと、shift:both_capslock
有効/無効になる別のオプションを追加することもできます。CapsLockCapsLockはModmapから削除されていないため、まだ機能します。
さて、このモードマップはどのような用途に使用されますか?考慮すべき他の修飾子があります。
⮱ISO_Level5_shift多言語、Unicode記号、「EIGTH_LEVEL」キーを持つ拡張キーボードに適しています。
ISO_Prev_Group⮱複数のグループに適用されます。
⮱ユーザーの間で非常にHyper人気がありますEmacs
。
...などxkb
各修飾子(shift、ラッチ、ロック)にはさまざまなバリエーションがありますが、これらの機能がすべてに関連しているわけではありませんXmodmap
。
それにもかかわらず、このアプリは非常に使いやすく、setxkbmap
ほとんどのユーザーが知っているよりも多くのコンテンツが含まれています。
man Xkeyboard-config
localectl
同じオプションを使用して変更を永続的に適用できます(わずかな意味の変更に注意してください)。