En mi programa C/C++, quiero saber qué idioma va a escribir el usuario. Me refiero al idioma cuyo ID se muestra en la esquina de la barra de tareas. Como EN o RU o ZH o FR o IT.
Sé cómo obtener la lista de posibles diseños:
$ setxkbmap -query | grep layoutproducción:
layout: us,ruPero, ¿cómo saber cuál está seleccionado ahora mismo? (para la ventana actual)
setxkbmap -print no es útil en este caso, que también fue mi primera idea. He encontrado una pequeña herramienta , muy fácil de compilar.
sudo apt-get install git mkdir -p `~/src` cd `~/src` git clone https://github.com/nonpop/xkblayout-state.git cd xkblayout-state make Ahora puede ejecutar el comando ./xkblayout-state para obtener el diseño actual, por ejemplo
./xkblayout-state print "%n" German%o enumere todos los diseños instalados
./xkblayout-state print "%N" German English English En este caso sin un % final. Hubiera esperado eso, porque no he agregado un \n .