2008-12-24
Для начала выяснилось, что настройка раскладок клавиатуры в OpenSolaris независима от подсистемы xkb Иксов — за неё отвечает собственная подсистема, носящая имя IIIM (Intrenet/Intarnet Input Method), точнее, её модуль IIIMF (Internet/Intranet Input Method Framework). Непосредственная же настройка осуществляется с помощью Редактора настроек способа ввода.
Вызвать этот редактор можно двумя способами:

Рис. 1. Вызов Редактора настроек способа ввода

Рис. 2. Редактор настроек способа ввода. Справка

Рис. 3. О программе

Рис. 4. Авторы
В любом случае перед нами появляется панель со вкладками (рис. 5):

Рис. 5. Панель Редактора настроек способа ввода. Вкладка Общие
Во вкладке Общие для начала можно включить или отключить использование IIIMF через переключатель Включить Способ Ввода.
Далее из выпадающего меню можно определить Статус и Параметры Настройки Способа ввода. И тут надо вспомнить, что IIIM используется не только в OpenSolaris, но и в Solaris просто. Где до недавнего времени, помимо GNOME, в качестве стандартных сред использовались также CDE и JDS. Так вот, ряд настроек применим только к одной из них. У нас же речь далее пойдет только о тех параметрах, которые имеют силу в среде GNOME — единственном умолчальном десктопе OpenSolaris. Так вот, в данном случае выбирать не приходится — для него применим только пункт Использовать параметры приложения Способа Ввода. Перевод достаточно коряв, но смысл его уловить можно: значок индикатора/переключателя размещается в трее управляющей панели GNOME.
Переключатель Синхронизировать активацию Способа Ввода для всех приложений предписывает, будет ли переключение раскладки распространяться на все приложения (как это происходит в Иксах при использовании средств xkb) или только на то, в котором оно выполнено, подобно тому, как это по умолчанию принято в Windows и может быть настроено в KDE (при использовании её штатного переключателя kxkbd) и в Xfce (при использовании её штатного апплета).
Что удобнее — сквозная раскладка в сеансе или своя для отдельного приложения, каждый должен решить для себя. Я, будучи раньше твердым приверженцем первой схемы, в последнее время перешёл таки на вторую: по крайней мере, можно быть уверенным, что в окне терминала всегда включена латиница :)
Интересно, что попытка переключения раскладки при "пустом" десктопе, если на данном рабочем столе нет окон открытых приложений или все они свёрнуты, в любом случае не даст никаких результатов.
Секция Когда язык переключён также не имеет для нас особого смысла — в среде GNOME выбор языка интерфейса определяется локалью и распространяется на все приложения. Собственно, во вкладке Общие можно не делать вообще ничего — способ ввода по умолчанию включён, синхронизация раскладок — выключена, а на изменение остальных параметров никакой реакции не последует.
Переходим к вкладке Языки/Скрипты (рис. 6). Здесь в левом верхнем фрейме панели мы видим список всех доступных "языков", в правом — тех, поддержка которых включена в нашей системе. Соответственно, "языки" можно добавлять в список поддерживаемых, удалять из него, а также менять порядок в списке. На рисунке приведён сильно "прореженный" список поддерживаемых "языков" — по умолчанию их было гораздо больше.

Рис. 6. Вкладка Языки/Скрипты — определение списка поддерживаемых раскладок
Почему в предыдущем абзаце слово "языки" я употребил в кавычках? Потому что это не столько языки, сколько раскладки клавиатуры для оных. Обращаем внимание, что некоторые из так называемых "языков" представлены более чем в одном экземпляре. Это обычно как раз и связано с вариантами раскладок — например, США/Английский и США/Дворак, Чешкий просто и Чешский/QWERTY. Хотя есть и локально-зависимые "языки" — например, Канадский и Канадский/Французский. Вообще, номенклатура "языков" достаточно запутана, что еще усугубляется русским переводом — вполне себе ПРОМТовским.
В нижних фреймах приведены списки так называемых engines — модулей, собственно и отвечающих за характер раскладок и переключение между ними. Впрочем, список — это громко сказано: в каждом из них лишь по одному элементу (unitle). В документации указано, что некоторые языки могут иметь более одного engine, но я пока такого не видел. Так что добавлять, удалять или тасовать тут нечего.
Активизированный в текущий момент "язык" индицируется на панели соответствующим символом, например: en — английский, ru — русский, ua — украинский. Выбрать нужный "язык" можно из списка, появляющегося по щелчку левой кнопкой мыши на индикаторе. При этом, однако, в любом случае с клавиатуры вводятся только латинские символы — почему это происходит так, мы сейчас увидим.
Вкладка Пусковые ключи — это, попросту говоря, настройка горячих клавиш или их комбинаций для переключения между раскладками. В примере (рис. 7) таковой выступает левая Win-клавиша.

Рис. 7. Вкладка Пусковые ключи — установка переключения раскладок
Можно определить несколько переключателей. Для добавления нового достаточно нажать кнопку Добавить и в появившейся панельке (рис. 8) нажать желаемую клавишу или их комбинацию.

Рис. 8. Определение нового переключателя
После определения клавиши-переключателя нажатие её, наконец, приводит к переключению раскладок с разными наборами символов — при этом слева от значка-индикатора языка появляется надпись Keyboard. То есть при включённых "языках" русском, английском европейском и украинском, как в примере на рис. 6, в переключенном состоянии будет осуществляться ввод символов чистой кириллицы, набора символов Latin1 и кириллицы в украинском варианте, соответственно.
Что происходит во вкладке Клавиатура — интуитивно понятно из приводимого скриншота (рис. 9): это и есть собственно выбор конкретной раскладки — того самого, что в терминологии xkb называется вариантом. С той только разницей, что здесь аналоги значений опции XkbVariant представлены самостоятельными вариантами :). Например, для американской раскладки это будут US/English и US/Dvorak.

Рис. 9. Вкладка Клавиатура: выбор вариантов
К сожалению, для русской раскладки никаких вариантов, кроме базового, не предусмотрено (рис. 10). Впрочем, на эту тему я уже жаловался.

Рис. 10. Вкладка Клавиатура: русская раскладка без вариантов
В принципе, клавиатуру здесь можно и вовсе не определять, отметив чекбокс Использовать автоматическое распознавание (как это и сделано по умолчанию). В этом случае выбор подходящей раскладки будет произведён в соответствие с системной локалью. Смысл предупреждения в скобках понятен. Ведь мы помним, как расшифровывается аббревиатура IIIM, и догадываемся, что физически описание раскладок клавиатуры может находиться на удалённой машине, локаль которой не обязана совпадать с таковой машины нашей. Однако в условиях десктопа это не имеет значения.
Ну а в части Разное, как обычно, начинается самый охмурёж (рис. 11). Во-первых, здесь можно включить вызов списка доступных "языков" горячими клавишами (по умолчанию — Shift+Control+Spacebar), аналогично тому, как это происходит при щелчке левой кнопкой мыши на индикаторе раскладки.

Рис. 11. Вкладка Разное
Во-вторых, можно включить циклическое переключение "языков" по комбинациям горячих клавиш: по умолчанию Shift+Control+> прокручивает их в направлении от первого до последнего по списку (см. рис.6), Shift+Control+& — в обратном порядке.
Вот, собственно, и всё, что можно настроить в интерактивном режиме Редактора настроек способа ввода: во-первых, не очень много, во-вторых, далеко не самым удобным образом, в-третьих, кое-какие возможности просто оказываются лишними. Так, выбор "языка" в полном объеме к среде GNOME вообще не применим, так что при потребности лишь в двух раскладках достаточно оставить единственный "язык" — русский, гражданам же Украины целесообразно добавить к нему украинский. Зато, если есть необходимость периодического ввода французских, немецкий, испанских, скандинавских или западнославянских вкраплений с их диакритическими знаками, все соответствующие "языки" нужно включить в список и в дальнейшем выбирать нужный из меню или циклическим перебором. А вот способа определить нециклические переключатели не обнаруживается.