Кто знает, как сделать удобную *включалку* раскладок клавиатуры?
В переключалках специальная клавиша (или комбинация) переключает раскладки по кругу: русская → английская → русская → английская… Чем это неудобно? Да все знают: начинаешь печатать «привет» а получается «ghbdtn». Или наоборот, пишешь «Hello, world» а получаешь «Руддщб цщкдв» Причём такие ошибки настолько часты, что некоторые начинают писать программы с искусственным интеллектом для распознавания языка и автоматического переключения с изменением уже набранного слова. Надо ли говорить, что такие программы довольно сложны?
А меж тем, есть довольно простое решение проблемы: нужна не переключалка, а *включалка* раскладок. *Включалка* от переключалки отличается тем, что для каждой раскладки предусмотрена своя клавиша (или комбинация), включающая именно эту раскладку. Ошибки набора не в той раскладке исчезают, поскольку очень быстро вырабатывается навык: перед набором русского текста включаешь русскую раскладку, перед набором английского — английскую. Искусственный интеллект не нужен, с работой вполне справляется (спинной?) мозг, руки сами включают нужную раскладку. Становятся излишними индикаторы раскладок и программы, запоминающие раскладку в каждом окне.
Однако, важно, чтобы включалка была удобная. В Винде, например, есть возможность сделать и переключалку (например, популярную Ctrl+Shift), и включалку. Но включалки настолько неудобные (Ctrl+Shift+0, Ctrl+Shift+1, …), что ими никто не пользуется.
Удобная включалка должна быть простой, чтобы её легко было нажимать перед набором фразы или после паузы при печати. Поэтому сложные комбинации далеко отстоящих друг от друга клавиш (типа виндовых Ctrl+Shift+0) не годятся. По собственному опыту знаю, что хороши комбинации из близко расположенных клавиш, которые можно нажимать одной рукой. Причём одной рукой включается одна раскладка, другой — другая. Например, относительно неплохо работает такой вариант: Left Ctrl+Left Shift включает английскую (латинскую) раскладку, Right Ctrl+Right Shift — русскую.
Идеальная включалка (разумеется, имхо) должна быть ещё проще, то есть быть одной клавишей. Но все клавиши уже имеют какую-нибудь функцию… Хотя есть выход. Тот же Ctrl (или Shift) имеет значение только будучи нажатым в паре с какой-нибудь другой клавишей. (Ну, игры, где левый Ctrl открывает огонь, не в счёт.) Поэтому можно было бы организовать включалки так: одиночное быстрое нажатие на левый Ctrl включает английскую раскладку, одиночное быстрое нажатие на правый Ctrl — русскую. Ctrl в комбинации с другими клавишами имеет свой обычный смысл и не изменяет раскладку. Долгое нажатие на Ctrl также не изменяет раскладку.
Я жил с такими включалками в Винде много лет (при помощи программы RusLat95) и был счастлив. Всё время хотел сделать такие же включалки в Линуксе. Но подходящей программы всё не попадалось. Поковырялся с настройками xkb — говорят, там можно всё, но у меня всё не получилось. Мне удалось посадить английскую раскладку на Left Ctrl+Left Shift, русскую — на Right Ctrl+Right Shift. Потом я нашёл более удобные включалки: английская — Left Ctrl+Left Win, русская — Right Ctrl+Menu. Почему так? Left Ctrl и Left Win — две самые левые клавиши нижнего ряда, расположены горизонтально, нажимаются так: средний палец (левой руки, разумеется) нажимает Ctrl, потом указательный — Win. Получается очень быстро. Для правой руки то же самое, только вторая справа клавиша нижнего ряда — Menu, а не Win. В общем, неплохо, но есть два «но»:
1. Не идеально. Одиночный Ctrl был бы лучше, поскольку меньше движений пальцами.
2. С некоторых пор OpenOffice стал распознавать Menu даже в комбинации с Ctrl — и вместе с включением русской раскладки появляется совершенно не нужная контекстная менюшка.
Ладно, закругляюсь:
Если кто знает как настроить xkb на включение раскладки по одиночному Ctrl и не потерять обычного значения Ctrl — пожалуйста, напишите.
Если кто знает программку-переключалку раскладок, которую можно настроить на включение раскладок по одиночному Ctrl и не потерять обычного значения Ctrl — пожалуйста, напишите.