Vas*_*ily 5 keyboard-shortcuts keyboard-layout xmodmap xkb
在 xterm 和 vim 中使用 Control-j 而不是 Return 对我来说看起来非常方便,我想对所有 X 应用程序使用这个序列。
通过将 ISO_Level5_Shift 重新映射到 Control 键,并将 Return 设置为 j 键的第 5 级符号,可以使用 xkb 轻松完成,但在此之后,vim 和 xterm 中的所有其他 Control 组合停止工作(因为 xterm 和 vim 无法理解Mod键),这是绝对不能接受的。
我通过在 xkb_symbols 部分使用“LOCAL_EIGHT_LEVEL”键类型,在不重新映射 ISO_Level5_Shift 的情况下做到了这一点,它使用 Control(而不是 ISO_Level5_Shift)作为 Level5 修饰符:
key <AC07> { [ j, J, plusminus, NoSymbol, Return ], type[Group1]= "LOCAL_EIGHT_LEVEL" };
Run Code Online (Sandbox Code Playgroud)
这个解决方案的问题——xkb 设置了 Control 位,Control-j 返回 Control-Return 而不仅仅是 Return。有时(很多时候,顺便说一句)这种组合不能作为返回。
所以,我需要的是修改这些解决方案之一,以取消 Control-j 组合的控制位。
根据这个链接:Arch Wiki article about XKB可以做到,但我不知道如何做到这一点。所以,这就是我的问题。
也许我必须为 Return+Control 或类似的东西添加一些 xkb_compatibility 规则,或者添加一些 xmodmap 映射 - 任何解决方案将不胜感激。
我已经为我的问题找到了解决方案。您可以为 xkb_symbols 部分中的每个键分配一个操作。重定向是我们需要的一个动作:
key <AC07> { [ j, J, plusminus, NoSymbol, NoSymbol ],
type[Group1]="EIGHT_LEVEL_SEMIALPHABETIC",
actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
Redirect(key=<RTRN>, clearmods=all) ]
};
Run Code Online (Sandbox Code Playgroud)
使用此操作,您可以清除现有修饰符或添加新修饰符。
| 归档时间: |
|
| 查看次数: |
1115 次 |
| 最近记录: |