xmodmap
たぶん、私は他のコマンドとsetxkbmap
組み合わせることができず、予想よりも時間がかかるタスクを実行しています。私の目標は、Right_Control
キーを「割り当て」から「期間別」にcontrol
変更することです。mod3
xmodmap
この記事のおかげでキーに割り当てることができました。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
xmodmap
X11Serverを再起動すると、割り当てを確認する際に問題が発生します。
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/level3
92行目の元のキー割り当てに対応します。
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'