xmodmapを使用せずに、コントロール修飾キーのRight_Controlをmod3に再割り当てします。

xmodmapを使用せずに、コントロール修飾キーのRight_Controlをmod3に再割り当てします。

xmodmapたぶん、私は他のコマンドとsetxkbmap組み合わせることができず、予想よりも時間がかかるタスクを実行しています。私の目標は、Right_Controlキーを「割り当て」から「期間別」にcontrol変更することです。mod3xmodmap

この記事のおかげでキーに割り当てることができました。setxkbmapを使用して左Shiftと左Controlを置き換える

問題は、今でもRight_Controlを "control"に割り当て、この割り当てを削除する必要があることです。

私が行ったステップを要約すると、次のようになります。

(以前はfaをカスタムレイアウトとして使用しており、すでに/usr/shareX11/xkb/symbols/faなどにファイルがありました...)

mkdir -p ~/.xkb/symbols/keymap
mkdir -p ~/.xkb/symbols/
sudo vi ~/.xkb/symbols/assigningmod3

含む

partial modifier_keys
xkb_symbols "assign_rctl_to_mod3" {
    modifier_map Mod3 { <RCTL> };
};

それから

setxkbmap -print > ~/.xkb/keymap/fa
sudo vi ~/.xkb/keymap/fa

そして下線の付いた部分を追加しました。

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+fa+inet(evdev)+assigningmod3(assign_rctl_to_mod3)"  };
    xkb_geometry  { include "pc(pc105)" };     ----------------------------------
};

次に、私の.xinitrcにこの行を含めます。

xkbcomp -I$HOME/.xkb ~/.xkb/keymap/fa $DISPLAY 2> /dev/null

xmodmapX11Serverを再起動すると、割り当てを確認する際に問題が発生します。

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
                               ----------------
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        Control_R (0x69)
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

ご覧のとおり、削除する必要がある割り当てを強調表示しましたが、一方ではmod3正しく割り当てられています。変更する場所を追跡すると、/usr/share/X11/xkb/symbols/level392行目の元のキー割り当てに対応します。

xkb_symbols "switch" {
  key <RCTL> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
  };
  include "level3(modifier_mapping)"
};

しかし、私はそこから何でも調整することはできません。展開する方法を知っていますか?

ベストアンサー1

xmodmapテンプレートファイル全体を読み込むために呼び出すと、いくつかの問題が発生する可能性があります。 onを使用してxmodmapこのキー割り当てを削除してもかまいません。次の呼び出しに次の行を追加する.xinitrcだけです。xkbcomp

/usr/bin/xmodmap -e 'remove control = Control_R'

おすすめ記事