如何逐步用 xkb 交换命令和控制键?

Ale*_*kov 9 keyboard-layout xkb apple-keyboard

我想使用带有交换命令和控制键的Apple 长铝键盘。这是如何在 Trusty Tahr (14.04) 上逐步完成的?CmdCtrlxkb

注意:这个解决方案对我不起作用,因为在13.04 或更早的版本中xkb被替换xmodmap了。

Ale*_*kov 8

此答案主要基于此处给出的答案。之所以我再次提出并回答这个问题是最后一步,没有完全描述。如需进一步阅读,请xkb查看此处此处此处

  1. 创建一个文件 in /usr/share/X11/xkb/symbols(也可以 in /etc/X11/xkb/symbols)调用altwin2并包含以下映射:

    // Control is SWAPPED with Win-keys 
    partial modifier_keys
    xkb_symbols "cmd_n_ctrl" {
        key <LWIN> {        [       Control_L               ]       };
        key <RWIN> {        [       Control_R               ]       };
        key <LCTL> {       [       Super_L         ]       };
        modifier_map Control { <LWIN>, <RWIN> };
        modifier_map Mod4 { <LCTL> };
    };
    
    Run Code Online (Sandbox Code Playgroud)
  2. option = symbols在 in 部分下插入以下行/usr/share/X11/xkb/rules/evdev(忽略第一行的警告):

    altwin2:cmd_n_ctrl               =       +altwin2(cmd_n_ctrl)
    
    Run Code Online (Sandbox Code Playgroud)
  3. /usr/share/X11/xkb/rules/evdev.lst在部分下添加新选项option

    altwin2:cmd_n_ctrl    Win swapped with Ctrl
    
    Run Code Online (Sandbox Code Playgroud)
  4. 如果你不知道你的键盘配置文件,您可以使用编辑dconf编辑器,将"altwin2:cmd_n_ctrl"xkb-options下面组织:: GNOME桌面:: ::输入源如图所示这里。如果您知道配置文件的位置,则应在XkbOptions字段中包含新选项,如下所示:

    Section "InputClass"
            Identifier "keyboard-layout"
            Driver "evdev"
            MatchIsKeyboard "yes"
            Option "XkbLayout" "us, ru, ca, fr"
            Option "XkbOptions" "altwin2:cmd_n_ctrl"
    EndSection
    
    Run Code Online (Sandbox Code Playgroud)
  5. 重新启动或重新启动lightdm以更新更改:

    sudo restart lightdm
    
    Run Code Online (Sandbox Code Playgroud)

注意:如果直接在布局文件中进行任何更改,即不使用选项,则/var/lib/xkb/需要按照此处的指示删除缓存文件。

  • 应该是`!option = symbols` 部分,而不是`options = symbols`(花时间搜索“options =”来找到该部分)。 (2认同)