LINUX.ORG.RU

Easy Switcher - переключатель раскладки клавиатуры

 ,


3

8

Лет 10 у меня на компе жил и работал gxneur. Еще на Ubuntu 20.04 он кое-как работал в ручном режиме, но после недавнего перехода на 22.04 (да, затянул), завести мне его уже не удалось. Пару недель я страдал без переключателя, и в итоге решил написать свой, вот, решил поделиться:

Скачать: https://sourceforge.net/projects/easy-switcher/files/

Реализованы следующие функции:

  • переключение раскладки клавиатуры с корректировкой уже введенного текста.

  • 2 режима корректировки:

      - при нажатии Break корректируется последнее введенное слово.
      - при нажатии Shift + Break корректируется последняя введенная фраза.
    
  • режим настройки.

  • режим отладки.

Программа устанавливается как демон и управляется systemctl. В отличие от xneur, работает не через xkb, а читает устройство ввода с ядра, и поэтому не зависит от графического сервера и рабочего окружения. В теории должна работать на любых ОС с ядром linux, и не будет глючить с выходом обновлений ОС и ДЕ. (время покажет, пока это предположение)

Как работает? Программа ловит нажатия клавиш, а при нажатии Break стирает написанное, меняет раскладку, и пишет заново. Смена раскладки происходит эмуляцией нажатия клавиши, которую нужно прописать в конфиге. Если для смены раскладки вы используете комбинацию клавиш, то нужно в настройках ОС добавить дополнительную клавишу смены раскладки (в kde это можно сделать нативно, а в gnome - например с помощью gnome tweak tool). В моей системе для смены раскладки используется клавиша Win.

Проверялось на Ubuntu 22.04, релиз будем считать альфа, возможны баги.

Устанавливаем пакет, затем:

easy-switcher --configure
easy-switcher --install
systemctl enable easy-switcher
systemctl start easy-switcher

ЗЫ: конфиг лежит здесь: /etc/easy-switcher/default.conf. Пояснения имеются. (первоначально лучше заполнить его с помощью команды easy-switcher –configure)



Последнее исправление: freemind (всего исправлений: 1)
Ответ на: комментарий от athost

А можешь выложить конфигурацию systemd-сервиса от него?

Как-то странно что он на network.target завязан (судя по бинарнику).

Ja-Ja-Hey-Ho ★★★★★
()
Последнее исправление: Ja-Ja-Hey-Ho (всего исправлений: 1)
Ответ на: комментарий от Ja-Ja-Hey-Ho

Да, так и есть.

$ systemctl cat easy-switcher.service     
                                                        
# /usr/lib/systemd/system/easy-switcher.service
[Unit]
Description=Easy Switcher - keyboard layout switcher
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/easy-switcher -r
#User=easy-switcher
Restart=always
RestartSec=3
StartLimitBurst=10

[Install]
WantedBy=multi-user.target
athost ★★★★★
()
Последнее исправление: athost (всего исправлений: 1)
Ответ на: комментарий от athost

принято, поменял на

After=syslog.target

пересоберу и залью в ближайшее время. по сути это порядок загрузки, доступ в сеть он не дает. Сеть не нужна, будем стартовать после syslog

freemind
() автор топика