Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Электронный офис в Linux

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

Алексей Дмитриев, 3 декабря 2010

Введение

Когда постоянно пишешь различные тексты, где перемешаны русские и английские слова, то частенько начинаешь печатать не в той раскладке клавиатуры. Приходится удалять неправильно введенный текст и переписывать заново. Это раздражает и сбивает с мысли. Чтобы не тратить время на бесполезную работу, установите программу XNeur.

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

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

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

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

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

Чисто российский проект XNeur разрабатывается чуть ли не с начала века, но бурное его развитие началось в последние два года, когда были созданы пакеты для основных дистрибутивов. В современном виде программа XNeur работает стабильно и гораздо надежнее, чем PuntoSwitcher для Windows. Сейчас поддерживаются следующие языки: Армянский, Белорусский, Болгарский, Чешский, Грузинский, Немецкий, Греческий, Английский, Эстонский, Французский, Казахский, Литовский, Латвийский, Польский, Молдавский (Румынский), Русский, Испанский, Украинский и Узбекский.

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

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

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

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

Рассмотрим настройки gXNeur для Gnome, так как KDE3 сейчас мало популярен, а для KDE4 фронт-енд еще не создан.

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

xneur: значок в системном трее

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

xneur. меню настроек

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

Войдем. Откроется окно Настройки XNeur.

Окно Настройки XNeur

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

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

Настройки XNeur. Вкладка Раскладки

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

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

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

Настройки XNeur. Вкладка Комбинации клавиш

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

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

Настройки XNeur. Вкладка Мышь

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

Вкладка Приложения

Настройки XNeur. Вкладка Приложения

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

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

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

Вкладка Звуки

Настройки XNeur. Вкладка Звуки

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

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

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

Если вы используете KDE4 или какой-либо из "легких" десктопов, то можете пользоваться демоном XNeur без графического интерфейса. Настройка в этом случае осуществляется при помощи редактирования конфигурационного файла xneurrc, который находится в вашем домашнем каталоге в директории ./xneur/xneurrc.

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

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

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

# Use this parameter to force set work mode in current application to Manual. 
#(Используйте этот параметр для  принудительного 
#включения Ручного режима работы для нужного приложения).
# Example (Пример):
#SetManualApp Anjuta

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

$ xprop | grep -i class

WM_CLASS(STRING) = "google-chrome", "Google-chrome"

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

WM_CLASS(STRING) = "Navigator", "Firefox"

WM_CLASS(STRING) = "Mail", "Thunderbird"

WM_CLASS(STRING) = "kwrite", "Kwrite"

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

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

# Use this parameter to force set work mode in current application to Manual. 
#(Используйте этот параметр для  принудительного 
#включения Ручного режима работы для нужного приложения).
# Example (Пример):
#SetManualApp Anjuta
SetManualApp Google-chrome
SetManualApp Gnome-terminal

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

Заключение

Работа с текстами при использовании программы XNeur сильно облегчается. Конечно, поначалу нужно привыкнуть к некоторым особенностям программы, но уже через несколько часов забываешь, какими клавишами переключается раскладка клавиатуры.

Пользуйтесь!

Приложение 1

# It's a X Neural Switcher configuration file by XNeur
# (Это конфигурационный файл программы XNeur) 
# All values writted XNeur

# Config version (Версия программы)
Version 0.9.1

# Work in manual mode (Работать в ручном режиме)
ManualMode No

# Level of messages program will write to output
# (Уровень сообщений, которые программа будет записывать в журнал)
#LogLevel Error
#LogLevel Warning
#LogLevel Log
#LogLevel Debug
#LogLevel Trace
LogLevel Error

# Define used languages (Задать номера применяемым языкам) 
# See Settings page on http://www.xneur.ru for details
AddLanguage English en 0
AddLanguage Russian ru 1

# Define initial keyboard layout for all new applications
# (Раскладка по умолчанию для всех приложений)
DefaultXkbGroup 0

# Add Applications names to exclude it from procces with xneur
# Xneur will not process the input for this applications
# (Приложения, которые не будут обрабатываться программой)
# (Точное имя приложений можно узнать при помощи xprop)
# Example (Пример):
#ExcludeApp Gaim

# Use this parameter to force set work mode in current application to Auto.
# (Приложения, принудительно обрабатываемые в Автоматическом режиме)
# Example (Пример):
#SetAutoApp Gedit

# Use this parameter to force set work mode in current application to Manual.
# (Приложения, принудительно обрабатываемые в Ручном режиме)
# Example (Пример):
#SetManualApp Anjuta
SetManualApp Google-chrome
SetManualApp Gnome-terminal

# Binds hotkeys for some actions
# (Горячие клавиши для некоторых действий)
AddBind ChangeWord Break
AddBind ChangeString Control Break
AddBind ChangeMode Control Print
AddBind ChangeSelected Shift Break
AddBind TranslitSelected Alt Scroll_Lock
AddBind ChangecaseSelected Control Alt Break
AddBind EnableLayout1 Control F2
AddBind EnableLayout2 Control F3
AddBind EnableLayout3 Control F4
AddBind EnableLayout4 Control F5

# This option enable or disable sound playing (Воспроизводить ли звуки)
# Example (Пример):
#PlaySounds No
PlaySounds Yes

# Binds sounds for some actions (Назначить звуки для некоторых действий.
# Если звук не нужен, закомментируйте строку)
AddSound PressKeyLayout1 layout1type.wav
AddSound PressKeyLayout2 layout2type.wav
AddSound PressKeyLayout3 layout1type.wav
AddSound PressKeyLayout4 layout2type.wav
AddSound EnableLayout1 layout1.wav
AddSound EnableLayout2 layout2.wav
AddSound EnableLayout3 layout1.wav
AddSound EnableLayout4 layout2.wav
AddSound AutomaticChangeWord itemback.wav
AddSound ManualChangeWord switch.wav
AddSound ChangeString switch.wav
AddSound ChangeSelected switch.wav
AddSound TranslitSelected switch.wav
AddSound ChangecaseSelected switch.wav

# This option enable or disable mouse processing (Обрабатывать действия мышью)
# Example:
#GrabMouse Yes
GrabMouse No

# This option enable or disable self education of xneur
# (Включить режим самообучения)
# Example (Пример):
#EducationMode No
EducationMode Yes

# This option enable or disable layout remember for each window
# (Запоминать раскладку для каждого окна)
# Example (Пример):
#LayoutRememberMode No
LayoutRememberMode No

# Use this parameter to force enable layout remember for each application, not window.
# (Запоминать раскладку для каждого приложения (не окна).
# Должна быть подключена опция "LayoutRememberMode")
# Option "LayoutRememberMode" must be enabled.
# Example (Пример):
#LayoutRememberModeForApp Gaim

# This option enable or disable saving selection text
# (Сохранять выделение после изменения текста)
# Example (Пример):
#SaveSelectionMode No
SaveSelectionMode No

# This option define delay before sendind events to application (in milliseconds between 0 to 50).
# (Задержка перед обработкой события, миллисекунды)
SendDelay 1

# Binds pixmaps for some layouts (pixmap only in xpm format)
# (Назначить картинку для некоторых раскладок. Формат xpm)
# Example (Пример):
#AddFlagPixmap <Layout1Flag|Layout2Flag|Layout3Flag|Layout4Flag> English.xpm

# Add Applications names to draw flag in window
# (Рисовать флажок рядом с курсором в указанных приложениях)
# Example (Пример):
#DrawFlagApp Gedit

# This option enable or disable logging keyboard
# (Вестú логи)
# Example (Пример):
#SaveLog No
SaveLog No

# That's all (Конец)