![映射键绑定](https://linux22.com/image/59181/%E6%98%A0%E5%B0%84%E9%94%AE%E7%BB%91%E5%AE%9A.png)
背景:我昨天买了一台 Acer Chromebook,并在上面运行 Ubuntu(我对 Linux 也有些陌生)。键盘没有专用的Home和End按钮,因为在 ChromeOS 中存在替换键绑定(在运行的 Linux 下不起作用)。
我的问题:是否有一种方法可以将 Linux 中的某些键绑定分配给Home和End键操作,以便我可以通过组合键恢复这两个键。
答案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
中添加和;该文件应如下所示:include
xkb_types
xkb_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 技巧。