Наверное, многие пользователи операционных систем GNU/Linux оценили работу программы X Neural Switcher (XNeur) — автопереключателя раскладки. Часто ещё её называют «аналог Punto Switcher», но мне лично совсем не нравится такое название — всё-таки есть в нём какое-то неуважение к авторам XNeur. На сайте программы тоже есть упоминание Windows-аналога, но более политкорректное — «Принцип работы у программы аналогичен Punto Switcher». Впрочем, всё это лирика. Топик совсем не об этом.
Выпущен XNeur и gXNeur версии 0.9.4!
X Neural Switcher (XNeur)
Данная программа является автоматическим переключателем клавиатуры. Т.е. при наборе текста, если он набирается на неверном языке, xneur автоматически (или по запросу) переключит язык на нужный.
Принцип работы у программы аналогичен Punto Switcher.
Выпущен XNeur и gXNeur версии 0.9.4!
Список изменений:
- Транслитерация приведена к стандарту ISO 9 (GOST 7.79-2000).
- Добавлена возможность переключения языка при вводе, а не после пробела.
- Добавлены новые действия, на которые вешаются звуки и OSD.
- Добавлена возможность фиксации раскладки. Если раскладка фиксирована, то на нее автоматического переключения не будет происходить. Соответственно, если в данный момент включена фиксированая раскладка, то с нее переключения происходить не будет.
- Исправлена работа с диакритическими знаками (â, ű, ë и подобными). Спасибо польским пользователям за сообщения об ошибках и тестирование.
- Добавлены болгарский, чешский, греческий, эстонский, армянский, литовский, латвийский, польский, испанский и узбекский языки. В общей сложности, программа теперь поддерживает восемнадцать (18) языков.
- Доработан gxneur, добавлены всякие удобства. Разумеется, gxneur поддерживает все возможности xneur.
- Словари, начиная с этой версии, вводятся на языке ввода, а не в английском коде.
- Разработаны новые флажки 24х24. Их удобно использовать с gxneur в окружении KDE. Взять можно здесь xneur.ru/browser/icons/bobs. Положить надо в /usr/local/share/gxneur/pixmaps .
- Множественные улучшения и исправления глюков.
X Neural Switcher — Поваренная книга
Sandbox

Я являюсь автором программы для автоматического переключения раскладки клавиатуры, работающей под Linux. Эта программа xneur или X Neural Switcher.
Когда я начинал заниматься этой программой, ничего вменяемого для замены Punto Swither для linux не было. Обратите внимание, я писал ее лично для себя, у меня почти всегда все работает. Я выкладываю ее в общий доступ только потому, что программа полезна людям.
В дальнейших статьях я разберу существующие (и существовавшие) аналоги, и поясню, почему они все являются тем, чем пользоваться нельзя, и какая клевая программа xneur.
Занимаюсь я программой от силы один час в неделю, поэтому корить меня за медленную разработку глупо. Деньги я зарабатываю тоже программированием, но совсем не связанным с linux.
За прошедшие 6 лет, я периодически натыкался на специфические баги как Xlib, так и DE, c которыми приходилось находить взаимопонимание.
Сейчас я хочу рассказать о приготовлении xneur, описать настройки и поделиться «маленькими футбольными хитростями».
Эта часть статей под номером 0 посвящена самому простому — описанию. Вы удивитесь, как много xneur умеет из того, что не умеет Punto.
Для тех кто долго пробовал, но не осилил. Я всегда открыт к диалогу. Если что-то где-то не работает, сообщите мне всю необходимую информацию, и я постараюсь решить вашу проблему.
X Neural Switcher — Поваренная книга (Часть 1). Предтечи и аналоги

В этой части цикла статей об xneur я хочу рассказать о программах для GNU/Linux, которые косвенно или явно имеют отношение к переключению раскладки, перехвату событий клавиатуры, записи или логированию нажатий клавиш, а так же скриптам, выполняющим подобные xneur функции.
Речь пойдет о тех программах, которые я знаю, пробовал, и из которых брал те или иные идеи работы с xlib и перехватом клавиатуры в linux.
Сами по себе, эти программы прямого отношения к xneur не имеют, но если вам захочется сделать что-то подобное xneur, то для общего развития ознакомиться с ними и с их кодом стоит (только в том случае, если потеряете исходники xneur).
X Neural Switcher — Поваренная книга (Часть 2). Алгоритмы

Сегодня я расскажу о том, какие алгоритмы распознавания языка ввода используются в X Neural Switcher.
Как известно, Punto Switcher использует в своей работе словари, основанные на невозможности конкретного буквосочетания для данного языка. Посмотреть их можно, если у вас установлен Punto, тут — %PROGRAMFILES%\Yandex\Punto Switcher\Data\triggers.dat. По крайней мере, так сообщил мне google. Эти словари зашифрованы (несложно, но все таки).
Дополнительно, Punto использует пользовательские исключения. Сказать, где они хранятся не могу — программа закрытая.
Теперь вернемся к xneur. На момент, когда я перешел к использованию linux (2005 год), программ, которые бы декларировали умение распознать и переключить раскладку, было ровно две — sven (еще живой) и xneur (полумервый). Я выбрал для для допиливания xneur, тогда это была версия 0.0.3 (http://www.linux.org.ru/forum/talks/811959). В тот момент его уже фактически забросили первоначальные разработчики, и более полугода никакого движения там не было.
X Neural Switcher — Поваренная книга (Часть 3). Кейлоггер

Сегодня, продолжая цикл статей про настройку и использование X Neural Switcher (программы для автоматического переключения раскладки), я расскажу про одну немаловажную и даже спорную возможность программы.
Эта возможность — возможность записи набираемого текста в файл журнала.
Краткий разбор кейлогеров для linux я приводил в предыдущей статье цикла X Neural Switcher — Поваренная книга (Часть 1). Предтечи и аналоги
Вообще, я покривлю душой, если скажу, что не думал внедрять такой функционал в программу с самого начала. Punto Switcher уже имел функционал кейлоггера под названием «Дневник», так почему xneur должен был быть обделен такой функцией? Да и глупо не сделать такой простой вещи в программе, которая предназначена для перехвата клавиатуры, в конце концов!
Из личного опыта скажу, что я никогда не думал, что лично мне функционал кейлоггера может пригодиться. Да и включена эта опция в моем конфиге была по забывчивости — осталась после тестирования программы. Однако, в один далеко не прекрасный момент, эта функция позволила разоблачить одного нехорошего человека, который использовал мой компьютер в дискредитирующих меня целях. Вот и получилось, что никогда не знаешь, где «соломки подстелить».

Новый аналог Punto Switcher для linux: xswitcher
Sandbox
Прекращение поддержки xneur вызвало у меня определённые страдания в последние полгода (с появлением OpenSUSE 15.1 на моих десктопах: при включённом xneur окна теряют фокус и забавно мерцают в такт ввода с клавиатуры).
«А, блин, опять не в той раскладке начал набирать» — в моей работе встречается до неприличия часто. И позитива не добавляет.

«А, блин, опять не в той раскладке начал набирать» — в моей работе встречается до неприличия часто. И позитива не добавляет.

Корректор раскладок «хswitcher» для linux: шаг второй
Так как предыдущая публикация (хswitcher на стадии «proof of concept») получила достаточно много конструктивных отзывов (что приятно), я продолжил тратить своё свободное время на развитие проекта. Теперь хочу потратить немножко вашего… Второй шаг будет не совсем привычный: предложение/обсуждение дизайна конфигурации.


Первый стабильный выпуск низкоуровневого корректора раскладок в linux «xswitcher»

Спустя год разработки удалось(у меня нашлась пара недель) довести до рабочего состояния задуманное в предыдущей публикации. А спустя ещё пару месяцев я пишу наконец эту статью.
В общем, ура! "Мы строили-строили и наконец построили". И оно даже работает/переключает. Причём, и в gnome3 тоже (не без помощи костыля).