![Wayland 是否使用 XKB 进行键盘布局?](https://linux22.com/image/94393/Wayland%20%E6%98%AF%E5%90%A6%E4%BD%BF%E7%94%A8%20XKB%20%E8%BF%9B%E8%A1%8C%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80%EF%BC%9F.png)
由于 XKB 是 X window 的一部分,那么 Wayland 中也使用 XKB 吗?如果是这样,是否有任何实用程序计划在某个时候取代 XKB?
在weston中,setxkbmap显然不起作用。目前推荐的更改键盘布局的方法是什么?
答案1
是的,Wayland 使用 XKB 进行键盘布局。但这不是一个完全正确的问题,因为事情的工作方式与 X 中不同。请记住,Wayland 只是一个协议(加上一个包装器库)。
在协议层面,wayland 有一个 wl_keyboard.keymap 事件。该事件包含键映射的文件描述符和格式分类器。目前,仅定义了一种格式:“xkb”。因此,wayland 客户端将收到 XKB 兼容的键盘映射,并可以使用 libxkbcommon 对其进行解释,以便在屏幕上获得正确的字形等。
但是 Wayland 没有定义如何这个键位图就决定了。这个决定由合成者决定。在 Weston 中,它是在启动时从配置文件中读取的,在 GNOME 中,它来自 gsettings 等。因此,这个决定也定义了如何在运行时更改键盘映射(如果可能的话)。在 GNOME 中,您可以使用配置面板,也可以直接设置 gsettings 键。
X 协议要求在协议级别设置键盘映射,这使得 setxkbmap 等工具成为可能。 Wayland 没有这些请求,无法单独使用 Wayland 协议设置键盘映射。
答案2
- 你用xkb配置文件在
$XDG_HOME_CONFIG/xkb/
。 - 你可以创建/扩展布局和变体在
$XDG_HOME_CONFIG/xkb/symbols/
。 - 或者,
$XDG_HOME_CONFIG/xkb/rulesets/evdev
如果您希望配置的各个方面都symbols
可以作为xkb_options
. - 另外,如果您希望选项显示在 GUI 布局管理器(如 GNOME 调整)中,您需要创造
$XDG_HOME_CONFIG/xkb/rulesets/evdev.xml
。