c - 获取X11中的死键列表

标签 c keyboard x11

有没有办法检查当前布局中的死键?我目前正在捕获我正在做的项目的用户输入。我创建了键盘上所有键的映射,但似乎没有标志或任何东西将键定义为死键或未死键。我在当前代码中使用 libxkb

使用检索布局

KeySym * keysyms = XGetKeyboardMapping(display_, keycode_low, keycode_high - keycode_low + 1, &num_keysym);

最佳答案

我理解您需要知道哪个键不会直接产生角色,也许是因为您正在编写游戏并且不希望让它使用按键作为输入,而这需要按下另一个键才能产生一些输出(如果所以,请在问题中提及)

据我所知,不是通过标准 Xlib 调用,而且绝对不是没有实际按下相应的键。组合完全在 Xlib 内完成,并且对前端透明。 (毕竟,就其最初目的而言,它应该尽可能透明才能正常工作)

但是,您可以执行与 Xlib 相同的操作,并解析以 $HOME/.Xcompose 开头的各种 Compose 配置文件。但这可能是一个乏味的过程。

再想一想,我绝对不会提出以下建议:

您可以为您要查找信息的每个键创建一个合成按键事件并将其输入到XLookupString中。还要提交一个空的 XComposeStatus 结构。如果结构返回已修改,这可能是您已找到撰写键的强烈暗示。但这也可能意味着服务器会在没有任何需要的情况下修改它......如果我非常绝望,我可能会尝试。

关于c - 获取X11中的死键列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885615/

相关文章:

java - 如何停止/解决 Java 应用程序在 Linux 窗口管理器中窃取焦点

c++ - X11 窗口不放入 QWidget 以嵌入 Qt 应用程序

c - 在编程中增加一行的长度

c - LCD 反文(CV12864C & RA6963 Controller )

c - 如何防止 strcpy() 被优化

android-layout - 不想在 Android 中按下 EditText 时(键盘出现后)隐藏 EditText View ?

ios - 键盘始终显示在 ios 中

linux - 以 X11 位图字体呈现字符串

c - MPI 使用 MPI_Send 和 MPI_Reduce 发送消息

java - 在 JNI 调用中调用 getFilesDir() 时出现 NullPointerException