В началоGentoo и  KDE → Способы переключения раскладок клавиатуры в KDE (3в1)
Gentoo-doc HOME Пред.: Gentoo и  KDEВ началоУровень выше: Gentoo и  KDEСлед.: Gentoo KDE 4.0 Guide (Рус.)

2. Способы переключения раскладок клавиатуры в KDE (3в1)

Ссылка на оригинал: http://gentoo.blog.ru/3638115.html

Авторы: gentoo

С версии: 1.4

Дата: 18.12.2007

Читая Планету блогов о *NIX (нагло пиарю) наткнулся на несколько постов о настройке переключения раскладок клавиатуры. Кто-то советует править xorg.conf, кто-то - поставить kkbswitch, самые пытливые заставляют завестись встроенное средство переключения раскладок в KDE. Сам использовал в основном kkbswitch (сейчас включил встроенный kxkb), только в SuSE переключался средствами xorg.conf - не нашёл kkbswitch в репах. Недостаток использования переключения из xorg.conf - раскладка для всех окон всегда одна. Встроенная переключалка KDE работает неплохо, если настроить, но... в русской раскладке не срабатывают хоткеи (решено, спасибо комраду Fallen). У kkbswitch изъянов мной замечено не было, с тремя языками работает (кого волнует этот вопрос). Кстати, он читает xorg.conf и соответствующим образом настраивает себя, так что для начала потребуется настроить xorg.conf.

1. /etc/X11/xorg.conf

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
    Option      "XkbRules" "xorg"
    Option      "XkbModel" "pc104"
    Option      "XkbLayout" "us,ru"
    Option      "XkbOptions" "grp:ctrl_shift_toggle"
    Option      "XkbVariant" ",winkeys"
    Option      "AutoRepeat" "250 30"
EndSection

Добавление: Option "XkbOptions" "grp_led:caps"будет включать/выключать индикатор CapsLock'а при переключении языков.

2. Поставить kkbswitch. Берёт инфо о языках и клавишах переключения из xorg.conf. Пример для 3х языков:

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
    Option      "XkbRules" "xorg"
    Option      "XkbModel" "pc104"
    Option      "XkbLayout" "us,de,ru"
    Option      "XkbOptions" "grp:ctrl_shift_toggle"
    Option      "XkbVariant" ",,winkeys"
    Option      "AutoRepeat" "250 30"
EndSection

Перед winkeys в данном случае две запятые (т.к. русский язык теперь третий по счёту). Языки переключаются по-кругу по Ctrl+Shift.Один нюанс - в этом случае при трёх языках у меня почему-то не срабатывает переход в текстовую консоль по Ctrl+Alt+F1-6, хм.

3. Включение встроенного средства переключения раскладок клавиатуры KDE.

Достичь окончательного (?) просветления в этом вопросе помог пост "Переключение раскладок KDE в комиксах". В настройке переключения есть как минимум две неочевидные вещи. Рассмотрю два варианта: настройка для двух языков и для трёх, а в качестве кнопок переключения - Ctrl+Shift (как наиболее популярный вариант у иммигрантов с Windows).

а) Настройка для двух языков (Англ/Рус).

Центр Управления - Региональные и спец. возможности - Раскладка клавиатуры1я закладка (Раскладка):Добавляем две раскладки - Англ и Русскую, причём для русской ставим галку "Включить латинскую раскладку" (иначе в русской раскладке не будут работать хоткеи):

2я закладка (Параметры переключения):по вкусу

3я закладка (Параметры XKB):Выбираем "Ctrl+Shift переключает группу" и, ниже, можно выбрать "ScrollLock показывает альтернативную группу" (учтите, что хоткеи, в которых используется комбинация "Ctrl+Shift+some_key" больше не будут работать).

Первая неочевидная вещь заключается в том, что "Настройка переключения групп" на данной закладке - это отнюдь не переключатель раскладок (!), это переключатель групп языков в конкретной раскладке. Поэтому идём к пункту четыре:

4й шаг: Центр Управления - Региональные и спец. возможности - Комбинации клавиш:В самом низу нужно назначить клавиши для "Переключиться на следующую раскладку клавиатуры" - здесь и задаётся желаемая комбинация, в нашем случае - попробуем задать Ctrl+Shift. Для основной комбинации нажимаем левые Ctrl+Shift, для альтернативной - правые.

Скорей всего вы увидите "Ctrl+ISO_Prev_Group; Ctrl+ISO_Next_Group", проверяем переключаются ли раскладки. Не переключаются? И у меня нет. В справке проблема описана так: "Если kxkb не переключает с помощью комбинации клавиш, когда вы переключаетесь на какую либо раскладку, но переключает при использовании мыши, возможно ваша раскладка не содержит клавишу, назначенную в комбинации".

Можно исправить вручную так:

$ nano ~/.kde/share/config/kdeglobals

Найти строку "Switch to Next Keyboard Layout=..." и изменить её на:

Switch to Next Keyboard Layout=Ctrl+Shift_L;Ctrl+Shift_R

(кстати, для варианта переключения по левой клавише "Win" такие ухищрения не будут нужны, и хоткеи "Ctrl+Shift+some_key" будут работать)

Идём снова в "Раскладка клавиатуры", отключаем и вночь включаем:

[x] Включить переключение раскладок клавиатуры

Всё, теперь должно работать.

б) Настройка для трёх языков (Англ/Рус/Укр). Настраивается практически аналогично:

1я закладка (Раскладка):

Добавляем три раскладки - Англ, Русскую, Украинскую. Для русской и украинской ставится галка "Включить латинскую раскладку" (здесь это важно не столько для отрабатывания хоткеев, сколько для удобства работы с тремя языками).

2я закладка (Параметры переключения):

пока не включаем опцию "Переключение между основными раскладками".

3я закладка (Параметры XKB):

То же самое что и для варианта двух раскладок, без каких-либо изменений (если настраиваете на три раскладки после того, как настраивали для двух, то, возможно придётся отключить и вновь включить здесь "Использовать переключатели XKB").

4й шаг:

$ nano ~/.kde/share/config/kdeglobals

Найти строку "Switch to Next Keyboard Layout=..." и изменить её на:

Switch to Next Keyboard Layout=Ctrl+Shift_L

(заметьте, альтернативная комбинация не задана)

Идём снова в "Раскладка клавиатуры", отключаем и вночь включаем:

[x] Включить переключение раскладок клавиатуры

Смотрим, что получилось. А получиться должно вот что:

При нажатии левых Ctrl+Shift изменяется текущая раскладка (и соотв. флажок в трее изменяется по кругу - Англ-Рус-Укр).

При нажатии правых Ctrl+Shift изменяется текущая группа раскладки (флажок остаётся прежним). Вот так выглядит структура раскладок и групп:

Английская раскладка

   - англ. группа

Русская раскладка

   - русская группа

   - англ. группа

Украинская раскладка

   - украинская группа

   - англ. группа

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

в) Настройка для трёх языков (Англ/Рус/Укр) с использованием опции "Основных раскладок".

Всё то же самое, только:

2я закладка (Параметры переключения):

Включаем опцию [x] "Переключение между основными раскладками".

Количество основных раскладок: 2

При таком варианте по левому Ctrl+Shift будет происходить переключение только между Англ и Рус раскладками. На третий язык (Укр) можно переключиться только выбрав его мышкой. Причём после выбора будет происходить переключение между Англ и Украинскими раскладками (для всей системы или только для текущего окна - в зависимости от настройки).

Вот, наверное, и всё.

Какой вариант удобнее - каждый решает для себя сам.

PS: в Fedora8 по-умолчанию могут отсутствовать флажки языков, можно взять из другого дистрибутива по адресу /usr/share/locale/l10n/ru/flag.png (.../us/flag.png), либо, цитирую: "Небольшое уточнение: в Fedora 8 есть флажки стран, только входят они в пакет wordtrans и находятся в /usr/share/wordtrans/flags/".

PPS: включение этого средства отключает настройки раскладок xorg.conf, при выключении для возрата к использованию настроек xorg.conf необходимо перезапустить X'сы.

Для переключения языков в текстовой консоли в Gentoo редактируется файл /etc/conf.d/keymaps.

Пред.: Gentoo и  KDEВ началоУровень выше: Gentoo и  KDEСлед.: Gentoo KDE 4.0 Guide (Рус.)
В началоGentoo и  KDE → Способы переключения раскладок клавиатуры в KDE (3в1)