映射键绑定

映射键绑定

背景:我昨天买了一台 Acer Chromebook,并在上面运行 Ubuntu(我对 Linux 也有些陌生)。键盘没有专用的HomeEnd按钮,因为在 ChromeOS 中存在替换键绑定(在运行的 Linux 下不起作用)。

我的问题:是否有一种方法可以将 Linux 中的某些键绑定分配给HomeEnd键操作,以便我可以通过组合键恢复这两个键。

答案1

xkeyboard-config-1.7-nav-keys.patch解释了它过去是如何使用 XKB 完成的。最新版本的 Chrome 操作系统现在使用灰烬

创建名为~/.xkb/keymap~/.xkb/types和 的目录~/.xkb/symbols。创建一个~/.xkb/types/chromebook包含以下定义的文件:

xkb_types "chromebook" {
    virtual_modifiers Alt;
    type "ARROW" {
        modifiers              = Shift+Lock+Alt+Control;
        map[Shift]             = Level2;
        map[Lock]              = Level2;
        map[Alt]               = Level3;
        map[Alt+Shift]         = Level3;
        map[Alt+Lock]          = Level3;
        map[Control+Alt]       = Level4;
        map[Control+Alt+Shift] = Level4;
        map[Control+Alt+Lock]  = Level4;
        level_name[Level1]     = "Base";
        level_name[Level2]     = "Caps";
        level_name[Level3]     = "Alt";
        level_name[Level4]     = "ControlAlt";
    };
}

~/.xkb/symbols/chromebook创建一个包含以下定义的文件:

xkb_symbols "chromebook" {
    key <UP> {
        type="ARROW",
        repeat=yes,
        [ Up, Up, Prior, Home ],
        actions[Group1] = [
            NoAction(),
            NoAction(),
            RedirectKey(key=<PGUP>, clearmods=Alt),
            RedirectKey(key=<HOME>, clearmods=Control+Alt)
        ]
    };
    key <DOWN> {
        type="ARROW",
        repeat=yes,
        [ Down, Down, Next, End ],
        actions[Group1] = [
            NoAction(),
            NoAction(),
            RedirectKey(key=<PGDN>, clearmods=Alt),
            RedirectKey(key=<END>, clearmods=Control+Alt)
        ]
    };
};

运行命令setxkbmap -print >~/.xkb/keymap/chromebook。编辑生成的文件并在指令+chromebook中添加和;该文件应如下所示:includexkb_typesxkb_symbols

xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete+chromebook"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+inet(evdev)+chromebook"     };
        xkb_geometry  { include "pc(pc105)"     };
};

将以下命令添加到启动应用程序:

xkbcomp -I ~/.xkb -R ~/.xkb keymap/chromebook $DISPLAY

注意:这是未经测试的,我对 XKB 不是很熟悉,而且它的文档很少。我试着跟随Vincent Lefèvre 的 XKB 技巧

相关内容