Добрый день!
Хочется сделать переключение раскладки однозначным - то есть чтоб us всегда включалась одной клавишей, ru - другой. Хочется чтоб поведение не зависело от DE (чтоб одинаково работало и в графической сессии, и в VT).
Варианты, предлагаемые через изменение keyboard-configuration
меня не устраивает - там нет однозначных, только циклические. Плюс еще и те что через ctrl ломают ^C и прочие горячие клавиши.
Варианты с setxkbmap
также ломают стандартные хоткеи, плюс к этому там очень мало вариантов - единственный нормальный это Caps\Shift+Caps, из-за которого теряется капслок. И опять же подгружается это все только в оболочке.
xmodmap
вообще работает странно - ради интереса переназначил capslock как numlock (а при использовании shift он опять становится capslock'ом что мне весьма подходит), в своем DE настроил хоткеи переключения по numlock'e на us-раскладку и по printscreen на кириллицу - все работает нормально. Заблокировал десктоп (через xscreensaver) - снять блокировку уже не получается потому что переключение языков сломалось. После ребута нажатие на капслок то включает uppercase, то меняет раскладку, при этом по-разному работает в зависимости от текущей раскладки.
В общем, хотелось бы избежать все этой ерунды, сделать один раз и чтоб оно и дальше работало. Идеальный вариант для меня - CapsLock - us, PrintScreen - ru, shift+CapsLock = uppercase. Посоветуйте, пожалуйста, как я могу это сделать.
Кстати, варианты типа «ctrl+1 - en \ ctrl +2 - ru» тоже подходят, но я не смог найти ни одного даже близко похожего рецепта.