LoLo Switcher - это низкоуровневый локальный переключатель клавиатуры для оконной системы X11. Он способен работать в любых окружениях рабочего стола: в KDE3, в KDE4, GNOME, LXDE и прочих. LLS работает напрямую с устройством ввода, очень компактен и быстр, поддерживает любые модели клавиатур и джойстиков. LLS способен прозрачно работать параллельно с другими переключателями клавиатуры. LLS содержит встроенные средства диагностики кодов, передаваемые из устройства ввода в компьютер.

Основная особенность LoLo Switcher - в нём можно легко запрограммировать смену раскладки на любой тип нажатия любой клавиши (или же комбинации). Например, по умолчанию LoLo Switcher настроен на переключение по короткому нажатию левого Shift на первую раскладку, и правого Shift - на вторую.

Установка на Ubuntu

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

Зато есть скомпилированный бинарный файл для i586, который вполне подойдёт для 32-х разрядных версий Ubuntu.

Скачать бинарник можно на странице программы:

Там же есть исходники, для тех, кто захочет собрать всё самостоятельно.

В архиве с бинарником есть README, и в принципе всё нужно делать по нему. То есть скопировать исполняемый файл loloswitcher в папку /usr/sbin, сделать его владельцем root и поставить на него Sticky-бит:

sudo cp loloswitcher /usr/sbin
sudo chown root:root /usr/sbin/loloswitcher
sudo chmod u+s /usr/sbin/loloswitcher

Дальше надо запустить один раз loloswitcher из-под обычного пользователя. Сделать это можно просто набрав в терминале:

loloswitcher

При первом запуске программа создаст свой конфигурационный файл с именем ~/.config/loloswitcher/config.ini. Но работать, тем не менее, скорее всего ничего не будет. Проблема в том, что нужно в указанном конфигурационном файле поменять устройство, которое нужно опрашивать на предмет нажатия клавиш. По умолчанию там стоит /dev/input/event0, однако в вашей системе это вряд ли клавиатура.

Чтобы найти клавиатуру достаточно выполнить команду

ls -al /dev/input/by-path/

Дальше внимательно посмотреть на вывод и найти в нём файл со словом kbd, который должен ссылаться на eventX. Например:

lrwxrwxrwx 1 root root   9 мая   24 09:15 platform-i8042-serio-0-event-kbd -> ../event4

Вот этот самый eventX (в примере выше - event4) и нужно подставить в конфигурационный файл LoLo Switcher вместо event0 с учетом полного пути (обращаем внимание на две точки в имени ссылки, которые обозначают каталог выше):

InputDevice=/dev/input/event4

А можно указать и так:

InputDevice=/dev/input/by-path/platform-i8042-serio-0-event-kbd

Проблемы с вылетом

Иногда на некоторых системах программа (до версии 0.25 включительно) периодически внезапно прекращает свою работу. Эта проблема была исправлена в версии 0.27:

Исправлен выход из программы в случае получения обрывочного события клавиатуры и джойстика. Такое поведение замечено в OpenSUSE 12.1 и в Debian Testing (Wheezy) в среде KDE 4.8.x

Если у вас появляется эта проблема, её легко обойти. Для этого достаточно сделать такой вот скрипт:

#!/bin/bash
 
# Скрипт запускает loloswitcher в цикле, т.к. он переодически падает.
 
while true; do /usr/sbin/loloswitcher 1>/dev/null 2>/dev/null; done;

И запускать его, а не основной loloswitcher.

Ссылки