在linux中获取当前活动的键盘布局(语言)

时间:2014-01-31 14:57:35

标签: linux keyboard-layout

在我的C / C ++程序中,我想知道用户要输入的语言。我的意思是ID在任务栏的角落显示的语言。像EN或RU或ZH或FR或IT。

我知道如何获取可能的布局列表:

$ setxkbmap -query | grep layout

输出:

layout:     us,ru

但是如何知道现在选择哪一个? (对于当前窗口)

1 个答案:

答案 0 :(得分:4)

setxkbmap -print在这种情况下没有帮助,这也是我的第一个想法。我找到了一个little tool,很容易编译

sudo apt-get install git
mkdir -p `~/src`
cd `~/src`
git clone https://github.com/nonpop/xkblayout-state.git 
cd xkblayout-state
make

现在您可以运行命令./xkblayout-state来获取当前布局,例如

./xkblayout-state print "%n"                          
German%

或列出所有已安装的布局

./xkblayout-state print "%N"
German
English
English

在这种情况下没有尾随%。我本以为,因为我没有添加\n