Автоматическое переключение языка linux

XNeur ≈ автоматический переключатель раскладок для Linux

Введение

Эта маленькая программа имеет большие возможности. У нее два режима работы: автоматический и ручной.

В автоматическом режиме XNeur определяет при помощи встроенных словарей на каком языке ведется ввод и сама переключает клавиатуру на нужную раскладку.

В ручном режиме вы сами выбираете нужную раскладку традиционным способом, либо при помощи щелчка мышью на значке программы в системном трее. Если вы, увлекшись, напечатаете слово не в той раскладке, например английское слово русскими буквами, то достаточно нажать клавишу Pause/Break, как волшебным образом последнее слово будет исправлено на английское. CTRL+Pause/Break изменит последнюю строку, а SHIFT+Pause/Break ≈ выделенный текст. И не надо ничего удалять и переписывать заново.

Программа имеет еще много удобных настроек, о которых я расскажу в соответствующей главе.

Немного истории

Где взять программу XNeur

Кроме того, XNeur включена в состав многих дистрибутивов. Например в стабильном репозитории Debian Lenny она есть (правда не самая последняя). При установке при помощи APT следует иметь в виду, что существуют отдельные варианты пакетов XNeur: базовый для чистых Иксов, kXNeur ≈ для KDE3 и gXNeur ≈ для Gnome. Для KDE4 пишется вариант qXNeur. При этом для любого типа рабочего стола можно пользоваться XNeur, а настройки производить при помощи конфигурационных файлов.

Настройка програмы XNeur

Если у вас установлена gXNeur, то при запуске программы в системном трее появится значок в виде флага. Флаг этот цветной если демон XNeur запущен, и черно-белый если демон остановлен.

При щелчке правой кнопкой мыши на этом флаге открывается меню настроек.

    Первая позиция ≈ Остановить демон ≈ служит для отключения демона XNeur в случае необходимости. При этом фронт-енд gXNeur продолжает переключать раскладки при щелчке на нем мышью.

Вторая позиция ≈ Отключить автокоррекцию ввода ≈ переводит программу в ручной режим. В ручном режиме, если вы по ошибке напечатали английское слово русскими буквами, то достаточно нажать клавишу Pause/Break, как оно волшебным образом изменится на правильное. Клавиши Ctrl+Pause/Break изменяют последнюю строку, а Shift+Pause/Break ≈ выделенный фрагмент текста. Если нажать Ctrl+Alt+Pause/Break то выделенный фрагмент поменяет регистр. Есть еще много всяких замечательных горячих клавиш, позже мы увидим как их настраивать.

  • Третья позиция ≈ Параметры ≈ позволяет настраивать программу.
  • Войдем. Откроется окно Настройки XNeur.

    Во вкладке Общее все опции, кроме второй, очевидны. Вторая опция, будучи подключена, позволяет программе XNeur самообучаться в процессе работы. Те слова, что не были автоматически распознаны, добавляются во встроенный словарь. Словарь разрастается, и программа начинает работать все надежнее.

    Во вкладке Раскладки настройки словарей и регулярных выражений довольно тонкие, и трогать их без надобности не стоит.

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

    Читайте также:  Образ windows 10 pro x32 iso

    Нижняя часть вкладки служит для настройки раскладок отдельно для каждой копии приложения. Исключения добавляются так: нажимаем на кнопку Добавить и появляется крестообразный указатель, который следует навести на нужное окно. Оно будет автоматически определено и добавлено в список исключений.

    Перейдем во вкладку Комбинации клавиш.

    Тут перечислены все горячие клавиши (а точнее, сочетания клавиш). Если какие-либо сочетания вам не удобны, нажмите кнопку Очистить и окошко очистится. Теперь нажмите сочетание клавиш, удобное вам, и оно станет новой горячей клавишей.

    Следующая вкладка ≈ Мышь.

    «Сбрасывать внутренний буфер при щелчке мышью» ≈ означает «забывать» последнее слово, последнее предложение, которое обычно сохраняется в буфере памяти на случай исправления. Флаг рядом с курсором показывает какая раскладка включена в данный момент. Но флаг мешает видеть текст и может понадобиться только в особых случаях.

    Эта вкладка позволяет настроить приложения, не подлежащие обработке при помощи XNeur, или подлежащие принудительной автоматической обработке, либо подлежащие принудительной ручной обработке.

    В самом деле, нy зачем нужно автоматическое переключение раскладок в окне терминала? Или в веб браузере? Там постоянно вводятся такие сочетания букв, что программа часто будет ошибаться и затруднять вам работу. Поэтому лучше отключить обработку для этих приложений вовсе, а еще лучше включить принудительный ручной режим обработки, что позволит вам исправлять слова, ошибочно введенные в неправильной раскладке.

    Чтобы добавить приложение в один из этих списков, нужно сначала открыть окно нужного приложения, затем нажать кнопку Добавить, и навести появившийся крестообразный указатель на нужное окно. В списке появится название приложения.

    Программа XNeur может издавать различные звуки при печати в разных раскладках, а также при выполнении всевозможных операций. Если звуки вас раздражают, то можно отключить их все. Для того, чтобы отключить какой-либо конкретный звук, нужно просто удалить название файла данного звука в соответствующем окне.

    Вкладка Специальное позволяет отрегулировать задержку обработки введенного текста.

    Настройка демона XNeur при помощи конфигурационного файла

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

    Настраивать программу очень просто ≈ нужно только вписать строки как подсказывают комментарии. Единственная трудность ≈ узнать правильное (с точки зрения Х-сервера) название того или иного приложения или окна.

    Рассмотрим для примера настройку принудительного ручного режима для браузера и терминала. Вот как выглядит эта секция в конфиге:

    Чтобы вписать браузер и консоль в конфиг, нужно знать их точное название. В этом нам поможет команда xprop. Будучи запущена, эта команда выводит крестообразный указатель, который требуется мышью навести на окно нужного приложения и кликнуть. Немедленно xprop выдает несколько страниц разнообразнейшей информации касательно этого окна, программы, шрифтов и прочего. Выбрать из этого массива единственно нужное название приложения можно и вручную, если знать, что искать. Нас интересует строка WM_CLASS, поэтому логично пропустить вывод xprop через команду grep:

    Вот еще ряд примеров:

    Читайте также:  Как найти причину синего экрана windows 10

    Становится понятным, что именем приложения является выражение после запятой, или в данных примерах: «Google-chrome», «Firefox», «Thunderbird» и «Kwrite».

    Это имя, только без кавычек, мы и вписываем в файл xneurrc в конце секции:

    Что касается остальных секций конфига, то не думаю, что они вызовут затруднения.

    Источник

    Новый аналог Punto Switcher для linux: xswitcher

    Прекращение поддержки xneur вызвало у меня определённые страдания в последние полгода (с появлением OpenSUSE 15.1 на моих десктопах: при включённом xneur окна теряют фокус и забавно мерцают в такт ввода с клавиатуры).

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

    В то же время, я (как инженер-конструктор) могу достаточно ясно сформулировать чего хочу. А хотел я (сначала от Punto Switcher, а затем, спасибо Windows Vista, окончательно пересев на Linux, от xneur) ровно одного. Осознав, что на экране белиберда не в той раскладке (такое обычно случается в конце набора нового слова), топнуть по «Pause/Break». И получить то что печатал.

    На данный момент изделие имеет оптимальное (с точки зрения меня) отношение функциональность/сложность. Пора делиться.

    Дальше пойдут всякие технические подробности, поэтому сначала — ссылка «на потрогать» для нетерпеливых.

    На данный момент захардкожено следующее поведение:

    • «Pause/Break»: забивает (Backspace) последнее слово, переключает раскладку в активном окне (между 0 и 1) и набирает ещё раз.
    • «Левый Ctrl без ничего»: переключает раскладку в активном окне (между 0 и 1).
    • «Левый Shift без ничего»: включает в активном окне раскладку №0.
    • «Правый Shift без ничего»: включает в активном окне раскладку №1.

    С этого момента я планирую кастомизировать поведение. Без обратной связи — не интересно (меня и так устраивает). Полагаю, на Хабре найдётся достаточный процент аудитории с аналогичными проблемами.

    N.B. Т.к. в текущей версии кейлоггер прикручивается к «/dev/input/», xswitcher должен запускаться с рутовыми правами:

    Обратите внимание: владельцем файла с suid должен быть root, т.к. кто владелец — в того suid и превратит при запуске.

    Параноики (я не исключение) могут клонировать из GIT и собрать на месте. Примерно так:

    Автозапуск добавлять по вкусу (в зависимости от DE).

    Работает, «каши не просит» (≈30 секунд CPU в сутки, ≈12 МБ в RSS).

    Подробности

    Весь репозиторий изначально был посвящён моему пет-проекту, а другой заводить — пока лень. Так что, всё свалено в кучу (просто по папкам) и накрыто AGPL («патент наоборот»).

    Код xswitcher написан на golang, с минимальными вкраплениями C. Предполагается, что такой подход даст наименьшие трудозатраты (пока так и есть). Сохраняя возможность подключать недостающее посредством cgo.

    По тексту разложены комментарии, откуда чего позаимствовал и зачем. Т.к. код xneur меня «не вдохновил», за отправную точку взял loloswitcher.

    Использование «/dev/input/» имеет как свои плюсы (всё видно в т.ч. зажатую клавишу с автоповтором), так и минусы. Минусы такие:

    • Автоповтор (события с кодом «2») не коррелирует с повтором с иксах.
    • Не видно ввода через интерфейсы X11 (так например VNC работает).
    • Нужен рут.

    С другой стороны, можно подписываться на события X через «XSelectExtensionEvent()». Подсмотреть можно в коде xinput. Для go ничего подобного не нашёл, а черновая реализация дала с ходу сотню строчек C-кода. Пока отложил в сторону.

    Читайте также:  Код ошибки 0xc0000359 windows 10

    Вывод «обратно» пока сделан через прикручивание виртуальной клавиатуры. Спасибо автору keybd_event, но там слишком высокоуровневая абстракция и дальше придётся переделывать. У меня, например, правая Win-клавиша 3-й ряд выбирает. А обратно транслируется только левая Win.

    Известные ошибки

    Заключение

    Код — простейший процедурный. И туп как я. Так что, тешу себя надеждой что дописать желаемое сможет практически любой технарь. И данное изделие благодаря этому не сгинет без поддержки подобно большинству just-for-fun.

    Источник

    Xneur — Автоматический переключатель языка клавиатуры

    Автоматический переключатель раскладки клавиатуры

    Это программа для автоматического переключения раскладки клавиатуры. Позволяет существенно облегчить жизнь и сберечь нервы. Выполняет схожие функции, что и Punto Switcher в Windows. Проект долгое время не поддерживался, но благодаря Андрею Кузнецову (Crew) и Николаю Янкину он снова на плаву. За это выражаем им огромное спасибо.

    Скриншоты

    Описание

    Программа умеет:

    • отображать текущую раскладку клавиатуры в трее;
    • переключать раскладки клавиатуры (количество ограничено 4);
    • задавать некоторым приложениям определенную раскладку клавиатуры;
    • не переключать раскладку клавиатуры в заданных приложениях;
    • издавать звук, при нажатии на любую клавишу, похожий на звук печатной машинки;
    • отображать всплывающие подсказки выполняемых действий.

    Проблемы:

    • программы самостоятельно останавливает демон, при наборе текста в Abiword. В OpenOffice таких проблем не замечено.
    • Язык интерфейса: русский и английский
    • Тип лицензии: GNU Lesser General Public License
    • Документация на русском:http://xneur.ru/wiki/Settings
    • Домашняя страница:http://www.xneur.ru

    Установка

    1. lenskij #
      27 октября, 06:16

    все поставил все работает супер. Всем спасибо.

    >> программы самостоятельно останавливает демон, при наборе текста в Abiword. В OpenOffice таких проблем не замечено.
    Да у него постоянно останавливается демон, даже при работе в браузере! Вот это оооочень бесит.
    Из минусов также добавить то, что он частенько при смене раскладки приписывает к слову какую-нибудь байду от предыдущего слова и получается уже не то, что нужно.

    Ну такое тоже бывает )))

    Насчет Abiword – у этого редактора хроническая несовместимость с подобными программами. Windows-версия, кстати не работает с Punto Switcher и другими аналогичными автопереключателями. Это баг именно Abiword, не XNeur.

    Stelo: Насчет Abiword – у этого редактора хроническая несовместимость с подобными программами. Windows-версия, кстати не работает с Punto Switcher и другими аналогичными автопереключателями. Это баг именно Abiword, не XNeur.

    Прикольно, не знал.

    Работает отлично, заметно ускоряет набор текста в OmegaT (приложение для переводчиков – CAT -система). Для установки на SUSE 11.3 загрузил .ymp файл для версиии 11.1 и установил все предложенные приложением YAST “Управление программным обеспечением” пакеты.

    Демон постоянно останавливается в Ubuntu 10.04 в любом приложении, будь-то браузер, аська, или что-то ещё. Кто-нибудь знает как это исправить?

    ShaDeRzz: Демон постоянно останавливается в Ubuntu 10.04 в любом приложении, будь-то браузер, аська, или что-то ещё. Кто-нибудь знает как это исправить?

    Остановка демона – это частая проблема Xneur. Ждем пока решат ее разработчики

    Как скрыть в бубунте ее значок?

    А еще из за неё в некоторых формах даже текст набрать нельзя.

    Источник

    Оцените статью