X11 KeySyms:切换模式,KeySym组和XK_ISO_Level3_Shift

时间:2010-11-09 16:01:19

标签: c x11 xlib xorg

我正在使用Xlib进行项目,我正在尝试将KeySym相对于按下的键。

我有按键,键盘修改器和键盘指示灯的KeyCode。我指的是this page以了解如何检索正确的密钥,但它必须是过时的或其他东西,因为我的X的行为与该页面不同。

我有一些问题:

  1. 什么是MODE SWITCH?如何查看MODE SWITCH的键是什么以及如何设置? (通过Xlib函数或通过命令,它是相同的)。

  2. 该页面表示与KeyCode关联的前4个KeySyms(找到XGetKeyboardMapping,或由xmodmap -pk命令显示)分为两组。 MODE SWITCH在组之间切换,并且在组内,根据修饰符(即,移位键)或指示符(即,大写锁定)来选择第一或第二KeySym。但是在我的X上我可以看到,如果按下shift,我会切换到第三个KeySym,而不是第二个。

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

2 个答案:

答案 0 :(得分:2)

看起来你正在阅读的页面早于Xkb - 我猜这个内容至少是10-15岁。

请参阅:http://www.xfree86.org/current/XKBproto.pdf

“xmodmap -pm”将显示修改键,例如模式切换。

使用Xkb,基本上所有内容的行为都是可配置的,我相信。例如,开始查看/ usr / share / X11 / xkb /。我不太了解它,但希望看到Xkb而不是旧文档会让你指向正确的方向。

答案 1 :(得分:1)

Tronche的手册不完整。我发现了有关键盘功能的更多信息:
1. xlib.pdf
2. xlib html manual at static.cray-cyber.org。这个文档是隐藏的,有点破碎。链接以小写字母输入,但实际文档为大写。在浏览器中更正网址后,它是可读的。

我猜是PDF完整的。我不知道[2]是否也完整,但例如第16.2章(抱歉,我无法提供链接,因为我的链接限制被超出)远远超过Tronche的文档。

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