无法将 L_shift 重新映射到 L_control 除非我将 L_control 重新映射到 xkb 中的其他内容

无法将 L_shift 重新映射到 L_control 除非我将 L_control 重新映射到 xkb 中的其他内容

我想将我的大写锁定重新映射为 Shift,将左移映射为 Control,但我想保持当前的左控件不变,并且也作为控件工作。

按照这个问题的建议 使用 setxkbmap 交换 Left Shift 和 Left Control

我使用 xkb 来制作这个脚本

partial modifier_keys
xkb_symbols "my_key_remap" {
    replace key <LFSH> { [ Control_L ] };
    replace key <CAPS>  { [ Shift_L ] };
};

这种方法可行,但我的新换档控制似乎不起作用。当我使用 进行测试时xev,我发现它左移映射到控件。但是,当我按正常控制时,xev 响应一次,然后等待按键。但是当我使用新的 Shift 控件时,它显示为左控件(尽管它仍然是键码 50),但按键事件会触发多次,而不是像常规控制键那样只触发一次。

但是,如果我添加replace key <LCTL> { [ Shift_L ] };新的 Shift-Control 是唯一左侧控件的行(删除原始控制键),那么它会按预期工作,并且 xev 报告即使我按住该键,它也只会触发单个按键事件。

有任何想法吗?

相关内容