如何在 XFCE 中将 Level3_Shift 设置为 Caps Lock 并将 Compose 设置为 Caps Lock+Ctrl?

如何在 XFCE 中将 Level3_Shift 设置为 Caps Lock 并将 Compose 设置为 Caps Lock+Ctrl?

我最近从 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选项,还需要使用选项将输出传输到xkbcompxkbcomp-I选项可用于为自定义 Xkb 目录树提供路径。

setxkbmap -option compose:lctrl-altgr \
    -option lv3:caps_switch \
    -layout "custom" \
    -print |
        xkbcomp -I"/home/<user>/my-xkb" \
            - "$DISPLAY"

相关内容