3

我正在将 Xlib 用于一个项目,并且我正在尝试获取相对于按下的键的 KeySym。

我得到了与按下的键、键盘修饰符和键盘指示器相关的 KeyCode。我指的是这个页面以了解如何检索正确的密钥,但它必须是过时的或什么的,因为我的 X 的行为不像那个页面所说的那样。

我有一些问题:

  1. 什么是模式开关?如何查看我的模式开关是什么键以及如何设置它?(通过 Xlib 函数或通过命令,都是一样的)。

  2. 该页面显示与 KeyCode 关联的前 4 个 KeySym(使用 找到XGetKeyboardMapping,或通过xmodmap -pk命令显示)分为两组。MODE SWITCH 在组之间切换,组内的第一个或第二个 KeySym 是根据修饰符(即 shift 键)或指示符(即 caps lock)选择的。但是在我的 XI 上可以看到,如果按下 shift,我会切换到第三个 KeySym,而不是第二个。

  3. 在许多欧洲布局中,AltGr 键绑定到 KeySym XS_ISO_Level3_Shift,它不属于任何键盘修饰符(即 、、shiftlockcontrolmod1和)。当这样被按下时,与 KeyCode 关联的第五个 KeySym 被选中。为什么?我在哪里可以找到一些关于这个和其他实际使用的键符的信息,但在 Xlib 手册中没有记录?mod2mod3mod4mod5XS_ISO_Level3_ShiftXS_ISO_Level3_Shift

4

2 回答 2

2

看起来您正在阅读的页面早于 Xkb - 我猜内容至少有 10-15 年的历史。

见:http ://www.xfree86.org/current/XKBproto.pdf

“xmodmap -pm”会显示模式切换等修饰键。

我相信,使用 Xkb,基本上一切的行为都是可配置的。例如,开始查看 /usr/share/X11/xkb/。我对此知之甚少,但希望查看 Xkb 而不是旧文档会让您指出正确的方向。

于 2010-11-09T17:20:19.473 回答
2

Tronche 的手册不完整。我在以下位置找到了有关键盘功能的更多信息:
1. xlib.pdf
2. xlib html 手册 at static.cray-cyber.org。该文档是隐藏的并且有点损坏。链接以小写字母输入,但实际文档为大写字母。在浏览器中更正网址后,它是可读的。

我猜PDF是完整的。我不知道 [2] 是否也完整,但例如第 16.2 章(对不起,我无法提供链接,因为超出了我的链接限制)比 Tronche 的文档中的要长得多。

我是了解 xlib 的初学者,这就是我今天设法用谷歌搜索出来的。

于 2011-07-25T16:21:02.240 回答