У окон GTK есть такое свойство XKLAVIER_STATE называется. Оно изменяет свое значение когда пользователь переключает раскладку на данном окне. Может кто знает какое конкретное значение оно принимает при той или другой раскладке. Точнее не знает а знает где их можно посмотреть ну или как преобразовать это значение в ченить связаное с раскладкой.
Может тебе стоит взять сорцы gtk и пройтись по ним grep'ом? Ну, написать что-нибудь в стиле: Код (Text): find gtk+-2.16 -name '*.[ch]' -exec grep -nH XKLAVIER_STATE {} \;