Затачиваю wmii под себя, любимого. А я, любимый, надо признать, жуткий лентяй.
Дошел пока до следующего: при запуске любой программы она открывается на соответствующем ей тематическом тэге, тэг этот назначается текущим и выбирается соответствующий способ расположения окон. Хочется еще, чтобы для каждого тега при запуске программы или при переключении на него (хоткеем или мышкой) включалась нужная раскладка (скажем, для терминалов - английская, для органайзера - русская). Ну вот лень мне переключаться!

В связи с этим, возникла необходимость переключать раскладку в иксах командой из баш-скрипта. Как ни странно - никакого консольного, не отягощенного гуями решения нагуглить не удалось. В принципе, это можно сделать через xneur - но оно будет висеть постоянно активным и кушать ресурсы, что не есть гутт, да и не для того оно предназначено.

Пытался использовать:
1) setxkbmap -layout ru | setxkbmap -layout en - работает, но пропадает возможность переключать раскладки установленным в конфиге сочетанием клавиш, а это бывает нужно;
2) setxkbmap -layout ru,en | setxkbmap -layout en,ru - тоже работает, но реально не влияет на соответствующий виртуальный регистр иксов (можно посмотреть через xkbvleds), так что в процессе использования, если комбинировать переключение такими командами и ручное переключение - возникает запутанность, и команда, допустим, включать для данного тега русскую раскладку - при текущей активной русской может наоборот, включать английскую;
3) setxkbmap -symbols pc+ru+en | setxkbmap -symbols pc+en+ru - те же проблемы, что и в предыдущем пункте.

Пока решил так: при переключении тэгов проверяется текущая раскладка (используется крохотная консольная утилитка skb) и, если она отличается от назначенной для данного тэга - вызывается питоновский скрипт (используется python-virtkey), который эмулирует нажатие Shift+Alt (этим сочетанием у меня переключается раскладка в иксах).
Данная связка работает, но как-то это громоздко все…

Никто не подскажет более изящного способа?