- XNeur ≈ автоматический переключатель раскладок для Linux
- Введение
- Немного истории
- Где взять программу XNeur
- Настройка програмы XNeur
- Настройка демона XNeur при помощи конфигурационного файла
- Новый аналог Punto Switcher для linux: xswitcher
- Подробности
- Известные ошибки
- Заключение
- X Neural Switcher — Поваренная книга
- Что такое X Neural Switcher.
- Основные возможности программы.
- Установка программы.
- Описание параметров конфигурации.
- Что дальше?
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 самообучаться в процессе работы. Те слова, что не были автоматически распознаны, добавляются во встроенный словарь. Словарь разрастается, и программа начинает работать все надежнее.
Во вкладке Раскладки настройки словарей и регулярных выражений довольно тонкие, и трогать их без надобности не стоит.
Если какое-нибудь из ваших любимых слов часто не определяется программой, то можно вручную добавить его в соответствующий словарь.
Нижняя часть вкладки служит для настройки раскладок отдельно для каждой копии приложения. Исключения добавляются так: нажимаем на кнопку Добавить и появляется крестообразный указатель, который следует навести на нужное окно. Оно будет автоматически определено и добавлено в список исключений.
Перейдем во вкладку Комбинации клавиш.
Тут перечислены все горячие клавиши (а точнее, сочетания клавиш). Если какие-либо сочетания вам не удобны, нажмите кнопку Очистить и окошко очистится. Теперь нажмите сочетание клавиш, удобное вам, и оно станет новой горячей клавишей.
Следующая вкладка ≈ Мышь.
«Сбрасывать внутренний буфер при щелчке мышью» ≈ означает «забывать» последнее слово, последнее предложение, которое обычно сохраняется в буфере памяти на случай исправления. Флаг рядом с курсором показывает какая раскладка включена в данный момент. Но флаг мешает видеть текст и может понадобиться только в особых случаях.
Эта вкладка позволяет настроить приложения, не подлежащие обработке при помощи XNeur, или подлежащие принудительной автоматической обработке, либо подлежащие принудительной ручной обработке.
В самом деле, нy зачем нужно автоматическое переключение раскладок в окне терминала? Или в веб браузере? Там постоянно вводятся такие сочетания букв, что программа часто будет ошибаться и затруднять вам работу. Поэтому лучше отключить обработку для этих приложений вовсе, а еще лучше включить принудительный ручной режим обработки, что позволит вам исправлять слова, ошибочно введенные в неправильной раскладке.
Чтобы добавить приложение в один из этих списков, нужно сначала открыть окно нужного приложения, затем нажать кнопку Добавить, и навести появившийся крестообразный указатель на нужное окно. В списке появится название приложения.
Программа XNeur может издавать различные звуки при печати в разных раскладках, а также при выполнении всевозможных операций. Если звуки вас раздражают, то можно отключить их все. Для того, чтобы отключить какой-либо конкретный звук, нужно просто удалить название файла данного звука в соответствующем окне.
Вкладка Специальное позволяет отрегулировать задержку обработки введенного текста.
Настройка демона XNeur при помощи конфигурационного файла
Этот конфиг имеет очень простую и понятную структуру и снабжен подробными комментариями, поясняющими каждую настройку. К сожалению, разработчики программы, хоть сами и русские, почему-то не обеспечили соотечественникам перевода комментариев этого файла. Придется мне исправить эту недоработку. В Приложении 1 приводится текст файла xneurrc с переводом ключевых комментариев.
Настраивать программу очень просто ≈ нужно только вписать строки как подсказывают комментарии. Единственная трудность ≈ узнать правильное (с точки зрения Х-сервера) название того или иного приложения или окна.
Рассмотрим для примера настройку принудительного ручного режима для браузера и терминала. Вот как выглядит эта секция в конфиге:
Чтобы вписать браузер и консоль в конфиг, нужно знать их точное название. В этом нам поможет команда xprop. Будучи запущена, эта команда выводит крестообразный указатель, который требуется мышью навести на окно нужного приложения и кликнуть. Немедленно xprop выдает несколько страниц разнообразнейшей информации касательно этого окна, программы, шрифтов и прочего. Выбрать из этого массива единственно нужное название приложения можно и вручную, если знать, что искать. Нас интересует строка WM_CLASS, поэтому логично пропустить вывод xprop через команду grep:
Вот еще ряд примеров:
Становится понятным, что именем приложения является выражение после запятой, или в данных примерах: «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-кода. Пока отложил в сторону.
Вывод «обратно» пока сделан через прикручивание виртуальной клавиатуры. Спасибо автору keybd_event, но там слишком высокоуровневая абстракция и дальше придётся переделывать. У меня, например, правая Win-клавиша 3-й ряд выбирает. А обратно транслируется только левая Win.
Известные ошибки
Заключение
Код — простейший процедурный. И туп как я. Так что, тешу себя надеждой что дописать желаемое сможет практически любой технарь. И данное изделие благодаря этому не сгинет без поддержки подобно большинству just-for-fun.
Источник
X Neural Switcher — Поваренная книга
Приветствую.
Я являюсь автором программы для автоматического переключения раскладки клавиатуры, работающей под Linux. Эта программа xneur или X Neural Switcher.
Когда я начинал заниматься этой программой, ничего вменяемого для замены Punto Swither для linux не было. Обратите внимание, я писал ее лично для себя, у меня почти всегда все работает. Я выкладываю ее в общий доступ только потому, что программа полезна людям.
В дальнейших статьях я разберу существующие (и существовавшие) аналоги, и поясню, почему они все являются тем, чем пользоваться нельзя, и какая клевая программа xneur.
Занимаюсь я программой от силы один час в неделю, поэтому корить меня за медленную разработку глупо. Деньги я зарабатываю тоже программированием, но совсем не связанным с linux.
За прошедшие 6 лет, я периодически натыкался на специфические баги как Xlib, так и DE, c которыми приходилось находить взаимопонимание.
Сейчас я хочу рассказать о приготовлении xneur, описать настройки и поделиться «маленькими футбольными хитростями».
Эта часть статей под номером 0 посвящена самому простому — описанию. Вы удивитесь, как много xneur умеет из того, что не умеет Punto.
Для тех кто долго пробовал, но не осилил. Я всегда открыт к диалогу. Если что-то где-то не работает, сообщите мне всю необходимую информацию, и я постараюсь решить вашу проблему.
Что такое X Neural Switcher.
X Neural Switcher — программа для автоматического переключения раскладок клавиатуры, в зависимости от набираемого текста. Т.е. при наборе текста, если он набирается не в той раскладке, которую вы ожидаете, xneur автоматически (или по запросу) переключит язык на нужный.
При работе в автоматическом режиме, xneur автоматически определяет раскладку вводимого текста и изменяет язык за вас. В этом режиме предусмотрена возможность задания приложений исключений, в которых автоматический режим будет заменён на ручной.
При работе в ручном режиме xneur не отслеживает набор, но позволяет автоматически изменять раскладку последнего набранного слова (кнопка Pause/Break), последней набранной строки (сочетание клавиш Ctrl + Break), выделенного текста (сочетание клавиш Shift + Break) и другие полезные функции.
Все приведённые выше сочетания клавиш работают и в автоматическом режиме. Если по каким-либо причинам вас не устраивают преднастроенные комбинации — вы всегда сможете поменять их в настройках программы. Также программа позволяет создавать собственные сочетания клавиш для запуска любых приложений.
На данный момент программа поддерживает восемнадцать языков: Армянский, Белорусский, Болгарский, Чешский, Грузинский, Немецкий, Греческий, Английский, Эстонский, Французский, Казахский, Литовский, Латвийский, Польский, Молдавский (Румынский), Русский, Испанский, Украинский и Узбекский.
Для вышеприведённых языков в программе имеются алгоритмы эвристического анализа, но, тем не менее, программа может работать и с другими языками, если для нее существуют словари aspell или myspell.
Основные возможности программы.
- Переключение. Автоматическое или ручное переключение раскладки. При этом xneur умеет самообучаться, что иногда полезно для трудных слов, которые не попадают ни под словарные слова, ни под эвристический анализ, например, падонкаффский сленг или лично ваши любимые коверканья слов.
- Типографика. Xneur умеет помогать вам превращать текст в более облагороженный вид. Например, превращать «ТАкое» слово в «такое», или отключить случайно включённый Капс, или заменить два пробела на запятую, или превратить ®, ™ или © в красивые ®, ™ или ©.
- Вы можете указывать одну раскладку для всех копий приложения, или в каждой использовать свою личную.
- Для стандартных действий переключения вы можете назначить свое сочетание клавиш. Более того, вы можете назначить сочетание клавиш для своих скриптов или запуска приложений.
- Вы можете назначить свою комбинацию клавиш для включения определённой раскладки или переключения их по кругу.
- Если вам лень набирать слова полностью, вы можете воспользоваться автодополнением. Xneur запомнит часто набираемые слова и дополнит не полностью набранное слово.
- Вы сами можете указать приложения, в которых xneur будет работать в автоматическом, ручном режиме, или не будет работать вообще.
- Если вам будет так удобно, вы можете настроить звуковое оформление нажатий клавиш или прочих событий, вывести экранные или всплывающие уведомления о переключении.
- Когда вам приходится часто набирать один и тот же текст, вы можете попробовать использовать замену сокращений. Набрав «пр» и нажав свою комбинацию клавиш, вы отправите собеседнику «Привет. Дела нормально :)». Ведь так лень отвечать на тупые вопросы.
- В xneur есть дневник. В любой момент мы можете посмотреть лог набранного текста с разбивкой по дате и по приложению, в котором оно было набрано. Да, это вариант кейлоггера. Потом я расскажу, как настроить xneur в качестве кейлоггера.
- Если вы часто играете в полноэкранные игры, вы можете отключить xneur во всех полноэкранных приложениях.
- Ну так вот. ВСЕ возможности xneur отключаемы! Не нравится какая-то опция — просто выключите её.
Таким образом, если вы освоите тонкую настройку, вы всегда приготовите xneur по своему вкусу.
Установка программы.
Исходные тексты последних версий xneur и gxneur доступны на xneur.ru/downloads
Для установки из исходников вам понадобится наличие следующих пакетов (привожу способ уcтановки пакетов для Ubuntu, но вы сами поймёте, что надо установить):
sudo apt-get install build-essential automake1.9 libtool flex libx11-dev libgstreamer0.10-dev libopenal-dev libpcre3-dev libnotify-dev zlib1g-dev libaspell-dev libxosd-dev libenchant-dev
Для сборки gxneur (интерфейса для настройки) еще надо ставить вот эти пакеты:
sudo apt-get install libglade2-dev libgtk2.0-dev libgconf2-dev libappindicator-dev
Установка осуществляется стандартным набором команд (опять же я привожу для Ubuntu).
Для удаления программы, установленной таким образом, можно использовать команду
Теперь разберем опции конфигурации программы, на тот случай, если у вас недостает каких-то пакетов или вы просто хотите их отключить.
Для справки вы можете использовать ./configure —help.
- —with-sound[=ARG] Сборка программы с ARG=[yes|no|gstreamer|openal|aplay] [default=yes]. Т.е. На выбор для звукового оформления вы можете использовать следующие движки: Gstreamer (по умолчанию), OpenAL или утилиту aplay.
- —with-debug Сборка программы с внутренним дебагом, покажущим в консоли места утечек памяти в программе.
- —without-keylogger Сборка программы без функций кейлоггера (для параноиков)
- —-with-spell[=ARG] Сборка программы с использованием движка словарей enchant (используется в LibreOffice, firefox и др.) или aspell, или вообще без поддержки словарей. (ARG=[yes|no|enchant|aspell] [default=yes]
- )
- —without-xosd Сборка программы без поддержки экранных уведомлений xosd.
- —without-libnotify Сборка программы без поддержки всплывающих сообщений.
- —without-plugins Сборка программы без поддержки плагинов.
Но так как собирать программу из исходников всем лень, у меня есть два PPA для пользователей Ubuntu.
sudo add-apt-repository ppa:andrew-crew-kuznetsov/xneur-stable
sudo add-apt-repository ppa:andrew-crew-kuznetsov/xneur-unstable
Первый репозиторий содержит базовые релизы, второй содержит роллинг-релизы (ночные сборки).
Описание параметров конфигурации.
Теперь разберем то, что позволит нам тонко настроить xneur, а именно его конфигурационный файл.
Разберем его по опциям. Я дам краткое описание каждой опции и объясню в каких случаях его лучше использовать.
Version 0.15.0
Описывает текущую версию программы. По большей части, вообще ни на что не влияет.
ManualMode No
Опция ручного режима. Если установлено в значение Yes, то автоматическое переключение будет отключено везде, кроме приложений указанных в соответствующей настройке.
LogLevel Trace
Уровень сообщений, которыми xneur будет сыпать в консоль.
Error — это только ошибки.
Warning — предыдущее, плюс предупреждения о неполадках, не влияющих на работу программы.
Log — предыдущее, плюс чуть больше.
Debug — предыдущее, плюс отладочные сообщения программы.
Trace — предыдущее, плюс вообще все, что в xneur происходит.
ExcludeLanguage de
Опция позволяет множественное применение и служит для указания раскладки с которой и на которую переключение осуществляться не будет.
DefaultXkbGroup 0
Определяет раскладку по умолчанию для вновь запущенных приложений.
ExcludeApp rdesktop
С помощью этой опции вы можете целиком исключить приложение из обработки. Допускается множественное использование.
SetAutoApp Gedit
Эта опция определяет приложения, в которых будет принудительно включен автоматический режим переключения вне зависимости от опции ManualMode.
SetManualApp Anjuta
Эта опция определяет приложения, в которых будет принудительно включен ручной режим переключения вне зависимости от опции ManualMode.
AddBind Action Key
Определяет клавишу для того или иного действия по переключению раскладки или прочего. Список Action имеется в вашем конфигурационном файле.
AddAction Control Alt f Firefox Browser firefox
Определяет клавишу для выполнения пользовательского действия.
ReplaceAbbreviation ini Андрей Crew Кузнецов
Определяет список аббревиатур для замены сокращений.
ReplaceAbbreviationIgnoreLayout Yes
Определяет учитывать ли текущую раскладку при замене сокращений. Если установлена в значение Yes, то программа заменит сокращение «йц» и «qw» на «йцукен».
PlaySounds No
Включает или выключает звуковое сопровождение.
SoundVolumePercent 15
Определяет уровень громкости звуков программы а процентах от системного уровня громкости.
AddSound AutomaticChangeWord Enable /usr/share/xneur/sounds/itemback.wav
Эта опция указывает для какого действия и какой звук использовать. Список действий, на которые можно повесить уведомление, имеется в вашем конфигурационном файле.
EducationMode Yes
Тут просто. Включить или нет самообучение программы вашему лексикону.
LayoutRememberMode Yes
Запоминать раскладку для каждого окна или одна раскладка для всех окон? Решать вам.
LayoutRememberModeForApp Wine
Эта опция заставит xneur принудительно использовать одну раскладку для всех окон приложения. У меня везде в Wine стоит общая раскладка.
SaveSelectionMode Yes
Вы выделили и изменили текст с помощью xneur. Если опция включена, то выделение сохранится после изменения, сделав возможным дальнейшее переключение.
RotateLayoutAfterChangeSelectedMode No
Определяем, переключить ли системную раскладку, если исправлен выделенный текст.
SendDelay 0
Задержка перед отправкой перехваченного нажатия клавиши обратно приложению.
LogSave Yes
Включаем кейлоггер, т.е. сохраняем набранный текст в файл.
LogSize 10000000
Определяем размер файла с логами (в байтах).
LogMail to_me@mail.ru
Если опция определена, то именно на этот емайл будет отсылаться лог набранного текста.
LogHostIP 127.0.0.1
Хост, который предоставляет услуги емайл (почтовый сервер для отправки, не требующий логина и пароля). Возможно указание не ip, а имени.
LogPort 25
Порт почтового сервера.
CorrectIncidentalCaps Yes
Опция для исправления сЛУЧАЙНОГО капса.
CorrectTwoCapitalLetter Yes
Опция для исправления ДВух прописных букв.
CorrectCapitalLetterAfterDot Yes
Исправляет строчную букву на прописную после точки или восклицательного знака.
CorrectTwoSpaceWithCommaAndSpace Yes
Исправляет двойной пробел на запятую.
CorrectTwoMinusWithDash Yes
Исправляет двойной минус на тире.
CorrectCWithCopyright Yes
Исправляет © на ©
CorrectTMWithTrademark Yes
Исправляет ™ на ™.
CorrectRWithRegistered Yes
Исправляет ® на ®.
FlushBufferWhenPressEscape Yes
Если опция включена, то при нажатии Escape внутренний буфер переключений будет сброшен.
FlushBufferWhenPressEnter No
Если опция включена, то при нажатии Enter внутренний буфер переключений будет сброшен.
DontProcessWhenPressEnter No
Слово не будет обрабатываться, если нажат Enter, что удобно в мессенджерах.
ShowOSD No
Показывать экранные сообщения. Устарело.
FontOSD -*-*-*-*-*-*-32-*-*-*-*-*-*-u
Выбор шрифта для экранных сообщений. Устарело.
AddOSD XneurStart Enable X Neural Switcher запущен
Эта опция указывает для какого действия и какое экранное сообщение использовать. Список действий, на которые можно повесить уведомление, имеется в вашем конфигурационном файле.
ShowPopup Yes
Показывать всплывающие сообщения.
PopupExpireTimeout 1500
Интервал показа всплывающих сообщений. В данной реализации библиотеки показа не работает.
AddPopup XneurStart Enable X Neural Switcher запущен
Эта опция указывает для какого действия и какое всплывающее сообщение использовать. Список действий, на которые можно повесить уведомление, имеется в вашем конфигурационном файле.
CheckOnProcess Yes
Проверять слово на лету или после нажатия Entrer. Я предпочитаю на лету.
DisableCapsLock Yes
Отключить Капс совсем.
CorrectSpaceWithPunctuation No
Удаление пробелов перед знаками пунктуации.
Autocompletion Yes
Включение автодополнения слов.
AddSpaceAfterAutocompletion No
Добавление пробела после автодополнения.
AutocompletionExcludeApp Gnome-terminal
В этих приложениях автодополнение будет отключено.
TroubleshootBackspace No
Отключит автопереключение, если нажат Backspace.
TroubleshootLeftArrow Yes
Отключит автопереключение, если нажата стрелка влево.
TroubleshootRightArrow Yes
Отключит автопереключение, если нажата стрелка вправо.
TroubleshootUpArrow Yes
Отключит автопереключение, если нажата стрелка вверх.
TroubleshootDownArrow Yes
Отключит автопереключение, если нажата стрелка вниз.
TroubleshootDelete No
Отключит автопереключение, если нажат Delete.
TroubleshootSwitch Yes
Отключит автопереключение, если вы переключили раскладку.
TroubleshootFullScreen Yes
Отключит автопереключение, если приложение в полноэкранном режиме.
CompatibilityWithCompletion Yes
Костыль для совместимости с автодополнением в других приложениях.
TrackingInput Yes
Отключение этой опции приведет к полному отказу программы от перехвата клавиатуры.
TrackingMouse Yes
Отключение этой опции приведет к полному отказу программы от перехвата мыши.
DontSendKeyRelease No
Не отправлять событие клавиатуры KeyRelease. Очень специфичная штука, лучше не менять значение опции.
Что дальше?
В дальнейшем планирую рассказать о:
- Алгоритмы xneur.
- Xneur как кейлоггер, с примером рабочего конфига.
- Ну и прочее интересное о xlib, программах под linux и всем таком.
Источник