`setxkbmap`は修飾子マッピングを変更しません。

`setxkbmap`は修飾子マッピングを変更しません。

次のコマンドを使用してキーマップを正常に更新できます。

/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同じオプションを使用して変更を永続的に適用できます(わずかな意味の変更に注意してください)。

おすすめ記事