xneur: переключение двух раскладок по ctrl
На компьютере я всегда использовал три раскладки Английскую (как основную), Русскую, и Украинскую.
Когда я сидел на винде, то активно использовал punto switcher, и не для того чтобы он мне мог автоматом переключать раскладки, а для быстрой смены двух раскладок по нажатию на левый control а также для переключение раскладки выделенного по хоткею. Смена раскладок в винде у меня была выставлена на Shift+Ctrl, а в настройках Пунто Свитчера стояла галочка "Только Русский/Английский" а под ней "Переключать по..." и со списка был выбран "левый Ctrl". Авто переключение было отключено. Таким образом я всегда мог по нажатия всего одного контрола пометь две раскладки, а когда мне нужны была украинская раскладка то я просто нажимал Shift+Ctrl.
Но вот настало время "пробуждения" и я понял что нужно целиком и полностью переходить на Линук. Поставил я себе Ububntu, и все в ней было супер(не считая дрова на ATI). Я нашел замену всем программам которыми я пользовался. Когда начал искать замену punto switcher то сразу же наткнулся на xneur (gxneur). И все в нем было хорошо, но вот только не было в нем опции "Переключать только русский/английский". С этим я мерится не хотел. Лазил в настройках программы, в настройке Убунту (Меню->Система->Параметры->Клавиатура) но так ничего не нашел по этому поводу.
Но я ведь не ищу легких путей :) Я решил самостоятельно дописать в программу нужную мне функцию (люблю open source). Итак начнем!
В системе у меня установлено три раскладки Английская, Русская и Украинская. Переключение между ними забито на Shift+Ctrl.
Скачаны исходники xneur-0.9.5 c http://www.xneur.ru/. Распакованы в папку /home/xxx/xneur-0.9.5/
Скачаны исходники gxneur-0.9.5 c http://www.xneur.ru/. Распакованы в папку /home/xxx/gxneur-0.9.5/
Открываем файл /home/xxx/xneur-0.9.5/lib/main/program.c
Находи строку "if (type == KeyRelease)"
После нее вставляем:
//druss add
if (strcmp (XKeysymToString(key), "Control_L") == 0)
{
switch (get_cur_lang ())
{
case 0:{ printf ("[DRUSS] Lang is Englishn"); break;}
case 1:{ printf ("[DRUSS] Lang is Russiann"); switch_lang (2); break;}
case 2:{ printf ("[DRUSS] Lang is Ukrainiann"); break;}
default: printf ("[DRUSS] Unknown langn");
}
}
//druss add
Сохраняем файл и выполняем команду:
cd /home/xxx/xneur-0.9.5/
./configure
make
sudo make install
cd /home/xxx/gxneur-0.9.5/
./configure
make
sudo make install
После установки запускаем gxneur, а он автоматом запустит xneur. В трее появится флажок. Тычем на него правой кнопкой мыши и выбираем "Параметры".
Ставим галочку "Включить ручной режим" (отключает авто переключение).
Переходим в раздел раскладки. Так добавляем Украинскую раскладку и ставим ей номер 2. У нас должно выйти Английский - 0, Русский - 1, Украинский - 2.
Переходим в раздел "Комбинации клавиш" и на "Переключение раскладки" ставим Control.
Все готово. Теперь добавляем gxneur в автозагрузку
Меню -> Система -> Параметры -> Запускаемые приложения