一尘不染

如何更改键盘布局(X11 API解决方案)

linux

我想通过编程更改Linux中的键盘布局,这是X11的API函数吗?


阅读 454

收藏
2020-06-07

共1个答案

一尘不染

我找到了一个好的解决方案。这是Jay Bromley写的c ++类,我可以将其添加到我的应用中并使用它。

源代码

它很容易使用:

#include "XKeyboard.h"

XKeyboard xkb;

std::string cGrpName=xkb.currentGroupName(); //return somethings like "USA"
std::string cGrpSymb=xkb.currentGroupSymbol(); //return somethings like "us"

xkb.setGroupByNum(0);//set keyboard layout to first layout in available ones

您可以阅读源代码并找到其他有用的功能。要编译独立版本,您需要取消注释“ XKeyboard.cpp”中存在的“ int
main”函数(或编写您自己的main.cpp),并使用如下所示的内容:

g++ *.cpp -o getxkblayout -L/usr/lib -lX11
2020-06-07