在不使用 xmodmap 的情况下将 Right_Control 从控制修饰键重新分配给 mod3

在不使用 xmodmap 的情况下将 Right_Control 从控制修饰键重新分配给 mod3

我正在执行一项任务,该任务花费的时间比预期的要长,因为xmodmap无法与其他命令(例如setxkbmap等等)结合使用。我的目标是将Right_Control密钥从“分配”control更改mod3为“按照xmodmap术语”

感谢这篇文章,我能够将其分配给该键:使用 setxkbmap 交换 Left Shift 和 Left 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

现在重新启动我的 X11Server 现在的问题是,当我检查xmodmap我的分配时

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尽管在调用加载整个模板文件时您可能会遇到一些问题。通过使用xmodmapon删除此键分配是完全可以的,.xinitrc只需在下面xkbcomp的调用中添加以下行即可

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

相关内容