Переключение раскладки

Довольно долгое время я использовать wm в качестве рабочего окружения. Сначала в иксах убрали нормальное определение раскладки, сделали формат xml, не понятный нормальному человеку, и загружаемый отдельным демоном. Поэтому в качестве средства переключения системной раскладки клавиатуры я использовал SCIM. Были свои проблемы, типа огнелис не определял нажатия клавиш при включении программы, но жить можно было. Преимущества обычно перевешивали:

  1. SCIM запоминает раскладку каждого окна (даже больше, каждой вкладки у Pidgin)
  2. Переключение настраивается непосредственно в окне программы, а не в системе.
  3. Можно одновременно использовать целый набор различных раскладок, переключаясь между ними по горячей клавише или меню.

При этом клавиатуру я настраивал, используя xmodmap. Меняя, к примеру CapsLock на Ctrl или что-нибудь в этом роде.

Когда установил Ubuntu 9.10 обратил внимание на то, что в пункте Система-Параметры присутствует пункт iBus Preferences. Естественно задался вопросом, что это такое???

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

Для того, чтобы установить и использовать SCIM, требовалось прочитать документацию в интернете, провести некоторые изменения и разобраться с настройками. Теперь, при использовании ibus, достаточно выбрать указанный выше пункт меню, на что получим вопрос о запуске демона. Ответив утвердительно, увидим окно со строчками, которые необходимо просто скопировать в свой файл ~/.bashrc:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

После чего необходимо завершить сеанс работы и войти в свою учетную запись повторно. В области уведомления будет располагаться еще один значок в виде клавиатуры, правый щелчок по которому вызывает меню. При использовании русской локали в списке используемых раскладок будут перечислены четыре русских раскладок, которые будут использоваться при использовании горячей клавиши. Выбрав пункт меню «Параметры» можно провести настройку работы ibus, то есть выбрать нужные раскладки клавиатуры и соответственно горячие клавиши для активации и переключения между ними.

Так же, как и в SCIM, можно в системе указать приложения, которые будут игнорироваться ibus. Для этого создаем файл ~/.Xdefaults и прописываем примерно следующее:

Emacs*useXIM:false

для игнорирования переключения раскладки в емаксе (для примера). Точно так же можно указать любую другую программу.Не забывая при этом при старте гнома выполнить команду:

xrdb -load ~/.Xdefaults

К тому же, в Gnome очень просто и быстро отстраивается клавиатура. Достаточно выбрать пункт меню Система-Параметры-Клавиатура и провести соответствующую настройку. Здесь можно и назначать спецклавиши и менять CapsLock на Esc или Ctrl, меняя их местами или просто замещая. Вариантов масса, нужно только выбрать нужный. Настройка упрощается в разы, а удобство работы возрастает.

С каждым днем Ubuntu мне нравиться все больше и больше! Хотя, естественно, данные средства уже доступны не только в ней…

Похожие записи:

  1. ibus – переключение раскладки
  2. Организация переключения раскладок в linux с xorg 1.5.3
  3. XNeur
  4. Коррекция раскладки в Windows
  5. awesome: установка и запуск

Метки: Linux, scim, ubuntu

Отзывов (34) на «Переключение раскладки»

  • Радостно, конечно, что вы с убунтой нашли друг друга. Но читается всё равно как анекдот, почему-то :-)

  • Все таки, почему?

  • А этот ibus по окнам раскладку запоминать умеет?

  • Помнится раньше со SCIM не работал пользовательский .XCompose файл, а как с этим делом у iBus?

  • Я ведь уже написал, что не только по окнам, но даже по отдельным вкладкам пидгина…. =)

  • Не могу проверить, не использую данную возможность…

  • Ну я про ibus спрашивал. У неё те же плюсы, что и у ским? // собирать лень %)

  • Да, теже преимущества, даже больше.

  • мда, так и не увидел я профита от этого костыля над иксовым вводом. В моём xmonad не заработало…

  • Подтверждаю, в xmonad-0.8.1 не работает. приэтом scim работает. Но с одним глюком: urxvt периодически падает, может кто таким встречался?

  • У меня SCIM в xmonad нормально работал, видать демон запустили, но не все выполнили… А вот ibus не пробовал запускать…

  • хмм… надо будет попробовать…

  • а xneur не «вставляет»? =)

  • В автоматическом режиме больше мешает, в ручном – возможностей меньше, чем у ibus, потому можно сказать, что не вставляет…

  • Не сработало на Kubuntu Karmic, или для KDE нужно по-другому настраивать список игнорируемых приложений?
    И можно поподробнее, как именно указывать? Название процесса или окна?
    Мне нужно для KRDC (Remote desktop) запретить переключение и принудительно выставить английский, иначе глючит набор текста в удаленной системе.

  • Каким образом вы настраивали список приложений для игнорирования??
    Указывается обычно класс окна, который нужно игнорировать, класс можно посмотреть, если запустить xprop в консоли и ткнуть на нужно окно. Среди всех значений есть WM_CLASS(STRING), вот это оно и есть…
    Именно это значение указывается в файле .Xdefaults, как описано в статье.
    Если вы пытаетесь загрузить этот файл при старте системы лучше всего использовать строку:
    sh -c ‘xrdb -load ~/.Xdefaults’
    то есть фактически явное указание обработчика данной команды, иначе список не будет загружен.

  • Система – Kubuntu Karmic 9.10 свежепоставленная.
    Ранее указывал заголовок окна, который виден на экране.
    Сейчас через xprop получил класс:
    WM_CLASS(STRING) = «krdc», «Krdc»

    Создал файл и прописал в файле ~/.Xdefaults строку:
    krdc*useXIM:false

    После этого выполнил в консоли:
    sh -c ‘xrdb -load ~/.Xdefaults’

    После этого загружаю krdc и по Alt+Shift там также как и у остальных приложений происходит переключение раскладки ;(

    Поставил в автозапуск, перезапустил комп – всё-равно не помогло.
    Пробовал включать-выключать стандартный KDE Keyboard Layout Switcher – тоже не помогает.
    Может что-то ещё надо сделать?

  • так… во первых системное переключение раскладки должно быть отключено… и при этом должен работать ibus, про который идет описание в статье. при всех остальных вариантах работать не будет.

  • Мда, видимо ibus только для Gnome пока допилили в бубунте.
    Изначально стоял только пакет ibus-qt4 в котором только библиотеки. Нигде в настройках KDE упоминания о ibus не нашёл.
    Поставил пакет ibus, появились команды
    ibus-setup, ibus-daemon
    По ibus-setup выдается сообщение о запуске демона, он запускается, появляется иконка в трее, открывается окно IBus Preferences, в котором кнопка Input Method – Add не работает (видимо не поставилось ни одного метода), «Select input mehtod» тоже пустая.
    Вобщем поковыряюсь ещё, если будут какие успешные результаты – сообщу.

  • Можно попросить скриншоты настроек IBus для русской и английской раскладки и какие пакеты установлены в системе чтобы это всё работало?

  • Собственно вот:
    пакеты
    настройки
    А настраивали именно так, как описано в статье?? Не забыли указать строки в .bashrc??

  • Да, в ~/.bashrc строки добавил, прописал в ~/.kde/Autostart шелл-скрипт который исполняет «sh -c ‘xrdb -load ~/.Xdefaults’».
    Но при автозагрузке так и не запускается. Ну ничего, вручную запускать можно.

    По пакетам – доставил ibus-gtk и ibus-m17n, после чего наконец-то появилась куча способов ввода со всеми языками!

    Но сам индикатор не показывает раскладку, при клике левой кнопкой выводит сообщение «No input window». Поковыряюсь ещё завтра, об успехах отпишусь тут для остальных КДЕ-шников ;)

    А почему у тебя в приведенном выше скриншоте только русский способ ввода стоит? Каким образом английские буквы набираешь? И чем отличаются yawerty phonetic и kbd?

  • Буду ждать результата!
    По поводу раскладок, я уже описывал, когда писал про SCIM. Английская раскладка используется системная, которая по умолчанию всегда присутствует в системе. Когда используешь сочетание клавиш ibus, по сути просто включаешь программу, то есть «включаешь» использование альтернативной раскладки. Именно поэтому нужно перечислять только те раскладки, которые будут использоваться в качестве дополнения к стандартной.
    По умолчанию в русском языке используется йцукен-кодировка, обычная виндовая, и то она имеет целый ряд разновидностей. остальные раскладки отличаются расположением русских букв на клавиатуре.

  • Я установил ibus, и он работает, вот только из русских методов ввода есть лишь транслит. Как получить все остальные? Система — Fedora 12 RC4, установил все пакеты, связанные с ibus.

  • Странно, в последнем посте, связанном с ibus, я описал, какие пакеты использовал для установки в генту, требуется ibus-tables, именно в нем есть все необходимые русские раскладки. Почему у вас их нет – даже предположить не могу.

  • iBus в xmonad работает, .XCompose не читает — использует свой способ кастомизации раскладок. На мой взгляд, весьма удобный, только не в курсе, можно ли добавлять кастомные раскладки не из-под root`а (прописываются в /usr/share).

  • Конечно работает, я только им в xmonad и пользуюсь, а вот на счет XCompose ничего не могу сказать, я им не пользуюсь. И свои раскладки не создавал.

  • Пробовал ibus, но не смог заставить его переключать раскладку таким простым и удобным «cups-ом». :( Пришлось выкинуть нафиг. А жаль. В общем понравился он.

  • Ммм… Если не изменяет память, то в ibus нет возможности использовать системные клавиши для переключения раскладки. Именно поэтому заставил себя в свое время переучиваться на другие комбинации. Порядка недели ушло на окончательный переход.
    На мой взгляд ibus стоит того, чтобы изменить свои привычки…

  • Жаль конечно, но я предпочту отказаться от ibus, чем использовать жутко неудобные всякие там ctrl + shift и иже с ними, вместо так удобного caps. :) Вообще надо исходники глянуть, может пропатчить удастся… Хотя удивляет, неужели ни кто еще этого не сделал? Ведь народу, использующего для переключения лишь одну клавишу, будь то caps, или win key, очень много! В общем удивляет.

  • Я не озадачивался как-то этим вопросом. Посмотри, может удастся что-нить сделать?
    Желаю удачи!

  • У меня caps работает как РУС/ЛАТ, а на ibus

  • навешаны греческий, спецсимволы и т.д.

  • AlexYeCu пишет:
    У меня caps работает как РУС/ЛАТ, а на ibus

    Подозреваю, что оно у вас пашет потому, что сконфигурено еще и стандартным способом в иксах. Так да, так и у меня работает. Но это переключение не средствами ibus. Если же я ошибаюсь – откройте тайну как так сделали. :)

Вы можете оставить свой комментарий...

Имя (required)
Почта (обязательно)
Сайт