我最近从 SUSE 换了过来,它使用 KDE 作为默认桌面环境。在 KDE 中,可以使用 GUI 选项实现这样的设置,但在 XFCE 中则不行。
~/.Xmodmap
我尝试按以下方式设置文件:
clear Lock
clear Control
clear Mod2
clear Mod5
keycode 77 = Caps_Lock Num_Lock Caps_Lock Num_Lock
keycode 66 = ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift
keycode 37 = Control_L NoSymbol Control_L NoSymbol Multi_key Multi_key
add Control = Control_L Control_R
add Lock = Caps_Lock
add Mod2 = Num_Lock
add Mod5 = ISO_Level3_Shift
会发生什么:
- Caps Lock功能归于Num Lock
- Num Lock功能转到Shift+Num Lock
我期望发生但却没有发生的事:
- Caps Lock按钮应该是
ISO_Level3_Shift
(根据,它是xev
,但它不知何故具有通常的功能Shift) - 按下Caps Lock+ 左键Ctrl应充当撰写键(不起作用)。
我做错了什么? Xubuntu 18.04,全新安装
答案1
将第三级 Shift 映射到<CAPS>
(Caps Lock),并使用第三级左控制键作为撰写键 ( Multi_key
):
setxkbmap -option compose:lctrl-altgr \
-option lv3:caps_switch \
-layout "us(intl)"
对于 numlock 键,您可以创建一个符号文件作为您正在使用的任何布局的包装器(我将使用us(intl)
)。创建一个名为的符号文件custom
:
xkb_symbols "basic" {
// The layout that you want to use.
include "us(intl)"
key <NMLK> { [
Caps_Lock, Num_Lock, Caps_Lock, Num_Lock
] };
};
将custom
文件保存在与 结构相似的目录树中/usr/share/X11/xkb
。因此,如果您的目录存储在/home/<user>/my-xkb/
,则custom
文件应该位于/home/<user>/my-xkb/symbols/custom
。
(看这里有关如何制作和使用自定义 Xkb 文件的一般说明。
您不仅setxkbmap
需要使用-print
选项,还需要使用选项将输出传输到xkbcomp
。 xkbcomp
该-I
选项可用于为自定义 Xkb 目录树提供路径。
setxkbmap -option compose:lctrl-altgr \
-option lv3:caps_switch \
-layout "custom" \
-print |
xkbcomp -I"/home/<user>/my-xkb" \
- "$DISPLAY"