Переключатель раскладки для линукс

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 самообучаться в процессе работы. Те слова, что не были автоматически распознаны, добавляются во встроенный словарь. Словарь разрастается, и программа начинает работать все надежнее.

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

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

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

    Читайте также:  From pdf to doc linux

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

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

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

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

    Эта вкладка позволяет настроить приложения, не подлежащие обработке при помощи 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 окна теряют фокус и забавно мерцают в такт ввода с клавиатуры).

    Читайте также:  How to change ttl on linux

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

    В то же время, я (как инженер-конструктор) могу достаточно ясно сформулировать чего хочу. А хотел я (сначала от 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.

    Источник

    Раскладка клавиатуры в Ubuntu

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

    Читайте также:  Windows command multiple commands

    В этой статье мы поговорим о том, как добавить раскладку клавиатуры в Ubuntu, а также как настроить удобное переключение раскладки.

    Как добавить раскладку клавиатуры в Ubuntu

    Обычно после установки уже есть две раскладки клавиатуры Ubuntu — это английская и та, которую вы выбрали во время установки. Вы можете убедится в этом, нажав на значке переключение раскладки клавиатуры Ubuntu:

    Но если вам нужно добавить ещё и третью раскладку, например украинскую, то сделать это не так сложно. Откройте параметры системы:

    Затем выберите пункт Регион и язык. Далее под списком раскладок клавиатуры найдите кнопку со значком «+«:

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

    Далее останется только выбрать нужную раскладку и нажать кнопку Добавить, после этого она появиться в списке:

    Некоторые раскладки не доступны в стандартном списке, чтобы их открыть, выполните в терминале команду:

    gsettings set org.gnome.desktop.input-sources show-all-sources true

    Раскладки можно менять местами, для этого выберите раскладку и используйте соответствующие стрелочки:

    Переключение раскладки клавиатуры Ubuntu

    Ещё во времена Windows XP раскладка клавиатуры переключалась с помощью сочетания клавиш Ctrl+Shift, во времена Windows Vista/7 сочетание клавиш для переключения изменилось на Alt+Shift, а с приходом Windows 8 было добавлено ещё одно сочетание — Super+Пробел, которое в дополнение выводит список раскладок на экран.

    Все эти сочетания клавиш перекочевали в Linux, и сейчас смена раскладки клавиатуры Ubuntu 18.04 может быть выполнена такими способами:

    • Alt+Shift — переключить раскладку на следующую;
    • Super+Пробел — переключить источник ввода на следующий с выводом на экран;
    • Super+Shift+Пробел — переключить источник ввода на предыдущий с выводом на экран;

    Super — это клавиша со значком Windows, это название пошло от название аналогичной кнопки в MacOS. Изменить сочетания клавиш для переключения на следующий и предыдущий источник ввода можно в разделе Устройства -> Клавиатура:

    Выберите нужный пункт и нажмите комбинацию, которую надо установить вместо Super+Пробел. Здесь же можно полностью отключить эти сочетания, нажав в окне выбора комбинации клавишу Backspace.

    Установить вместо Alt+Shift привычную многим Ctrl+Shift не так просто, но возможно, для этого вам понадобится утилита Gnome Tweaks:

    sudo apt install gnome-tweaks

    Откройте утилиту, перейдите на вкладку Клавиатура и мышь, затем выберите Дополнительные настройки раскладки:

    Здесь в разделе Переключение на другую раскладку можно выбрать сочетание клавиш для переключения, доступны не только Ctrl+Shift, но и Win, Caps Lock и многие другие.

    Если же вам нужно изменить раскладку клавиатуры Ubuntu 18.04 именно по сочетанию Ctrl+Shift, и вы не хотите устанавливать никаких утилит, можете воспользоваться командой:

    gsettings set org.gnome.desktop.input-sources xkb-options «[‘grp:ctrl_shift_toggle’]»

    Но обратите внимание, что при выборе сочетания Ctrl+Shift, раскладка будет переключаться каждый раз, когда вы открываете терминал.

    Выводы

    В этой небольшой статье мы рассмотрели, как настраивается раскладка клавиатуры Ubuntu и сочетания клавиш для её изменения. Раньше среди пользователей были популярны флаги вместо индикаторов раскладки, но сейчас эта возможность была удалена из Gnome, вы можете её использовать разве что в Cinnamon или Mate.

    Источник

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