如何获取当前使用 XKB 加载的密钥列表?

如何获取当前使用 XKB 加载的密钥列表?

我正在编写一个evdev依赖守护进程,它需要知道当前使用的完整键盘布局。获取当前 XKB 布局的属性很容易。你只需使用setxkbmap -querysetxkbmap -print。但如果我想要一个完整的描述当前加载的布局?每个键在哪些修饰符下键入的内容的列表?

据我所知,有两种方法可以实现这一点,而无需依赖 XKB 以外的任何东西:

  1. 正式的、复杂的方式,使用setxkbmap -print找出从哪些符号文件加载/usr/share/X11/xkb/symbols,并自己解析相关文件。
  2. 更快、更脏、临时的方法,只需自己尝试所有按键和组合,然后捕获输出。

方案 1 容易出错且难以实现,而方案 2 则笨重。有没有办法获得组合键与字符输出的列表? XKB 已经帮我解析了符号文件,所以另一端确实应该有东西输出解析结果(除了键盘本身)。

编辑:Ubuntu 的板载出现其一,直接解析布局文件。这表明不存在简洁的、预先存在的解决方案。

相关内容