Fedora: клавиатурные раскладки, простой способ

Автор: Алексей Федорчук

Эта заметка вызвана к жизни обсуждением на форуме проекта Russian Fedora . В ней, без особых деталей, будут приведены пара простых рецептов по быстрой установке раскладки клавиатуры, смене её варианта и переключателя в графических средах GNOME и Xfce, один из которых сработает также в LXDE (подозреваю, что и в большинстве оконноых менеджеров тоже). Рассмотрение основано на RFRemix 11, но думаю, что годится и для оригинальной Fedora.

Для начала — несколько вводных слов. При выборе на стадии инсталляции русского языка и русской раскладки клавиатуры Fedora более или менее русифицируется — и в консольном режиме, и в Иксах. То есть:

  • устанавливается системная локаль ru_RU.UTF-8, что подтверждается выводом соответствующей команды:
    $ locale
    LANG=ru_RU.UTF-8
    LC_CTYPE="ru_RU.UTF-8"
    LC_NUMERIC="ru_RU.UTF-8"
    LC_TIME="ru_RU.UTF-8"
    LC_COLLATE="ru_RU.UTF-8"
    LC_MONETARY="ru_RU.UTF-8"
    LC_MESSAGES="ru_RU.UTF-8"
    LC_PAPER="ru_RU.UTF-8"
    LC_NAME="ru_RU.UTF-8"
    LC_ADDRESS="ru_RU.UTF-8"
    LC_TELEPHONE="ru_RU.UTF-8"
    LC_MEASUREMENT="ru_RU.UTF-8"
    LC_IDENTIFICATION="ru_RU.UTF-8"
    LC_ALL=
  • в консоли для всех виртуальных терминалов подгружается экранный шрифт с поддержкой кириллицы, в чём легко убедиться, например, командой
    $ date
    Пнд Июл 27 12:08:25 MSD 2009
  • русская раскладка клавиатуры (в варианте winkeys) с переключением латиницы на кириллицу посредством комбинации Control+Shift;
  • в Иксах задействуются кириллические ttf-шрифты (Dejavu, liberation) и русская раскладка (вариант winkeys), в оригинальной Fedora — с переключением по Alt+Shift, в RFremix переключатель на стадии инсталляции можно выбрать, хотя не из всех теоретических возможных.

Казалось бы, чего ещё желать? Немногого — возможно, пользователя не устроит вариант раскладки по умолчанию (я, например, полагаю единственно разумным из существующих typewriter, что и попробовал в своё время обосновать). И, что более вероятно, захочется сменить выбранный при установке переключатель.

Ранее это было элементарно сделать редактированием конфига Иксов (о консоли мы сейчас говорить не будем, это отдельная история) — /etc/X11/xorg.conf. Однако ныне такого файла в системе не обнаружится — современный Xorg, начиная по крайней мере, с версии 1.5 (а может, и раньше), спокойно обходится без него, получая все необходимые параметры посредством механизма HAL (о чем говорилось в соответствующей заметке).

Разумеется, /etc/X11/xorg.conf нетрудно создать — например, командой

# Xorg -configure

как это неоднократно описывалось (например, здесь). Однако большого смысла в этом нет: хорошо это или плохо, но похоже, что конфиг Иксов доживает на этом свете последние дни.

Так что в порядке повышения общеобразовательного уровня и с прицелом на будущее полезнее было бы заняться настройкой клавиатуры через HAL. Однако этим можно будет заняться и на досуге, при наличии времени и нас троения. А пока у пользователя есть более простые способы подгонки параметров клавиатуры.

Первый предназначен для среды GNOME. Он сводится к запуску утилиты gnome-keyboard-properties через меню Система -> Параметры -> Клавиатура или просто из командной строки. После чего возникает следующее окно:

fedora-keyb01.png

Переходим во вкладку Раскладки и видим нечто похожее на это:

fedora-keyb02.png

Точнее, вторая строка в списке раскладок будет другой — просто Russia (что, как я уже говорил, соответствует варианту winkeys). И именно это может потребовать изменений. Для чего просто удаляем не устраивающую нас русскую раскладку и жмём на кнопку добавить. После чего из соответствующих списков сначала выбираем раскладку для страны, а затем её вариант:

fedora-keyb03.png

В примере, в соответствие с пожеланиями топикстартера указанного ранее трейда, выбран вариант legacy, бывший ранее в Иксах умолчальным и соответствующей старой DOS’овской раскладке.

Теперь фиксируем мышью новобразованную строку и жмём на кнопку Параметры раскладки, что выводит нам длинный их список, из которого сейчас представляют интерес две позиции:

  1. Key(s) to change layout — выбор переключателя, и
  2. Use keyboard LED to show alternative language — выбор идикатора альтернативной (то есть в нашем случае кириллической) раскладки.

Развернув первый из указанных пунктов, мы увидим всеохватывающий список возможных переключателей, из которого остаётся выбрать подходящий, причём возможен выбор нескольких вариантов, действующих одновременно:

fedora-keyb04.png

А в качестве индикатора раскладки нам предлагается любой из трёх, которые могут иметь место быть на клавиатуре:

fedora-keyb05.png

На этом развлечения с параметрами раскладки в первом приближении можно считать законченными. Прочие, и весьма богатые, возможности их настройки (установка трёх и более раскладок, обеспечение ввода неразрывного пробела и т.д.) оставляю для самостоятельного рассмотрения заинтересованными лицами. А нам остаётся только решить, нужен ли нам сквозной переключатель для всей среды или следует сохранить включённую по умолчанию опцию — Отдельная раскладка для каждого окна.

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

fedora-keyb06.png

Правда, единственный вариант индикации — символьный, USA/Rus. Но зато из контекстного меню его панельной пиктограммы можно и вызвать утилиту настройки, и ознакомиться с текущей раскладкой:

fedora-keyb07.png

Хотя, как уже говорилось, описанный выше способ предназначен в первую очередь для GNOME, и сама утилита gnome-keyboard-properties, и апплет индикации раскладки прекрасно работают, например, в LXDE. Вполне вероятно, что их можно задействовать и во многих более иных оконных менеджерах.

А вот для среды Xfce есть свой, не менее изящный, инструмент — плагин xfce4-xkb-plugin. Ранее в нём имелись некоторые хронические глюки, хотя и вполне преодолимые. Но, начиная с Xfce версии 4.6, он работает безупречно.

Как задействовать этот плагин, и каковы его возможности — описано в одной из заметок про Zenwalk, в Fedora всё точно так же. По сравнению с гномовским, он обеспечивает большую гибкость переключения раскладок — для среды в целом, для каждого приложения и для отдельного окна. А индикация раскладок на панели возможна в двух формах — изображениями соответствующих государственных флагов или символами USA/RUS. Но зато Xfce’шный плагин блокирует индикацию раскладки LED’ами клавиатуры — вне зависиомсти от того, определена она была через xorg.conf или через HAL.

Fedora: клавиатурные раскладки, простой способ: 14 комментариев

  1. Лёш, в панель Gnome можно добавить «Область оповещения» (или что-то в этом роде) — вот в ней-то индикация раскладки будет уже флагом. «Индикатор» в этом случае выглядит излишеством.

    А ещё, с некоторых пор, я предпочитаю не toogle одного переключателя, а switch-и: отдельный «включатель» для каждой группы. Если помнишь, t.t когда-то делился. ЕЕЕ РС заставил: нет там места для индикации раскладки, да и традиционный Caps в нём — далеко не самая доступная клавиша. left-win — US, menu — RU.

    В связи с этим: Debian/Ubuntu порадовал возможностью генерации kbd-map файла для консоли. Или я уже писал об этом где-то… Склероз, блин. Sorry :-)

  2. 2 popov.v.n
    Область оповещения у меня есть — но и в ней буковки.
    Использовать switch вместо toggle есть свои преимущества, особенно если раскладок больше двух, так вообще практически единственный вариант. Но при этом пропадает смысл привязки раскладки к окнам, а это оказалось удобно: я знаю, что в терминале у меня всегда латиница, в редакторе или процессоре — по умолчанию кириллица, ну а в браузере можно и на индикатор посмотреть :)
    А про генерацию консольных раскладок не писал.
    Считай, что это намёк :)

  3. > Область оповещения у меня есть — но и в ней буковки.
    Хм… Зашёл в Ubu — и правда: буковки. А в RH(CentOS) — флажки. Или там у меня KDE… А, фиг с ними. Без разницы :-)

    > Использовать switch вместо toggle есть свои преимущества…
    Ну, я же о EEE :-) Окно у меня там одно. И то — консоль ;-)

    >А про генерацию консольных раскладок не писал.
    Писал, вроде… EEE Финал. Мне так кажется… Сейчас…

  4. 2 popov.v.n
    Флажки будут, если всобачить вместо гномовского индикатора Xfce’шный — но он отменяет индикацию ледами клавиатуры. А я специально (в том числе и) ради этого покупал себе новую клаву :)
    А про уонсольные свитчи — да, писал. Сейчас перечитал специально — просто я подумал, ты не это имел ввиду. Был не прав я.
    В Федоре это тоже есть, кстати — только не работает.
    Вообще в принципах русификации федориной консоли я пока не разобрался.
    Дурят нашему брату голову, как хотят. И всё во имя человека, всё для блага человека, всё для счастья человека.
    Вот только человека того я, в отличие от чукчи на 24-м съезде КПСС, так пока и не видел.

  5. gconf-editor
    имя ключа: /desktop/gnome/peripherals/keyboard/indicator/showFlags
    флаги us.png и ru.png положить в /usr/share/pixmaps
    fedoraproject.org/wiki/Package_Maintainers_Flags_Policy

  6. Да, в общем, понятно: раз в одной сборке есть, а в другой — нет: ищите в конфигах и ресурсах. Ключ с таким именем трудно не заметить (если искать, конечно :-)).

    Не вполне понятно другое: вроде как флажки более соответствуют «духу» панелей. Кому ж они мешали в Canonical? Ну, мне, положим, плевать: я и Х-ы-то не всегда запускаю, а панели, создав однажды скрываемыми, не помню когда последний раз и рассматривал. Но как-то не хочется верить, что тамошним сборщикам так же плевать…

    А про генерацию kbd-map-ов… Я, разумеется, попробовал использовать получаемые раскладки в других инсталляциях: заманчиво ;-). Но: без должного успеха. Хотя и уверен, что сделать это можно. Только «не очень-то и хотелось» :-)

  7. 2 popov.v.n
    >Кому ж они мешали в Canonical?
    ЕМНИП — Правообладателям. :)

  8. 2 Ali
    Beg Your Pardon. Как сетевой «пионер» пустился в размышления, вместо того, чтобы пойти по указанной ссылке :-)
    Такие, значит, у них политики…

  9. Сделал флажки по рецепту Ali. Самих флажков в комплекте не нашёл — вытащил из xfce4-xkb-plugin. Там они в svg, но с конвертацией в png справился gThumb. Png’шки подогнал под один размер — но всё равно на панели звёздный полосатик получается больше. Что это — мания величия американского народа?

  10. А народ-то (хоть и американский) — причём?

    Сам сделал — тебя и характеризует :-). Не иначе, как недостаточный (на подсознательном уровне) патриотизм имеет место. У настоящего патриота всегда один флажок больше прочих получается.

    А, если серьёзно, то как раз в нарочито интернациональном мире open source становится очевидным порочность связки «гос-во — язык». Мало было прорвы англо/франко/порто-язычных, мало было Бельгии, Швейцарии, Австрии, Финляндии, так теперь ещё и продукты распада СССР-ии добавились.

    А нет ли какого иного способа обозначения языка? Эсперантисты, часом, ничего такого не придумали? Нет, наверное. У них, вроде, кроме обычного алфавита, никакие иные семантические средства не используются… Или — заблуждаюсь?

    И хренов utf, по настоящему нужный только «китайцам и иже сними», мог бы наряду с кучей символов, о которых никто, кроме полиграфистов, понятия не имеет, расшириться обозначениями основных языков. А то: обозначение монгольского тугрика — есть, а английского языка — нет.

    Да… Есть ещё над чем подумать разработчикам десктопов.

  11. Кстати, а ведь для индикации можно не только флаги использовать.
    А, например, изображения — статуи свободы для us и, скажем, Юрия Долгорукого — для ru.
    Или ещё лучше — Арлингтонское кладбище и Мавзолей на фоне кремлёвской стены.
    А для любителей природы — белоголового орлана и медведя.
    Простор для воображения богатый — бутылку бурбона и бутылку столичной (или путинки, по вкусу).

    А с пересечением множеств страна — язык вообще всё больше запутывается. Володя Родионов тут рассказал давеча, что в Финляндии есть закон, по которому, если переписью в таком-то районе завифисировано 5 и более %% носителей некоего языка, то все местные органы власти должны принимать официальные телеги на нём. То есть он становится как бы государственным. Следовательно, надо русско-финскую локаль вводить — в некоторых районах Финляндии русскоязыные превысили порог.

  12. Так вот и решение: индикация языка должна быть произвольной. Кнопке, грубо говоря, один хрен: текст на ней или pic какой-то. Тогда, что там пользователь в этом качестве использует — его дело. Раз png-шки лежат отдельно, значит — загружаемы. Раз загружаемы — значит можно указать в конфигурации.

    Кстати, я когда-то класс для школы делал: машинки — убогие, win-manager (поэтому) — icewm. Для индикации раскладки использовал какую-то независимую утилитку (не помню уж). Индикация флажком, но украинского там не было. Ничего не оставалось, как под под именем ru.png «скормить» ей украинский флажок. А мог бы и «вiночок». Или уж сразу — «тризуб».

    «Gnome»-ам всего-то надо дать возможность указывать в конфигурации kbd картинки для обозначения 1..4 групп и уйти от этих политик подальше.

  13. Огромное спасибо за эту статью! Я долго никак не мог настроить раскладку через system-keyboard-config, который по умолчанию стоит и в kde и в xfce4 в Разделе администрирование.
    А благодаря Гномовскому, да такому расширенному) много, что можно сделать!

Обсуждение закрыто.