CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
28.03.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: OpenSolaris

OpenSolaris: Как подружиться с тётей Клавой

CITKIT.ru

Страницы: 1 :: 2 :: 3 :: следующая

В одной из первых своих заметок про OpenSolaris я писал, что не всё там благополучно было с вводом кириллицы. Нет, сам по себе русский как язык ввода поддерживается, как говорится, "искаропки". То есть сразу после инсталляции (при выборе в ходе её соответствующих опций) имеются

  • локаль ru_RU.UTF-8, без малейших пережитков ISO'вщины, жалобы на которую мне доводилось слышать от опробователей просто Solaris'а;
  • набор хороших ttf-шрифтов Dejavu с поддержкой символов кириллицы (именно на соответствующие его гарнитуры указывают все alias'ы типа serif, sans и monospace);
  • русская раскладка клавиатуры и возможность переключения на неё (умолчальный переключатель — LControl+LShift);
  • индикатор текущей раскладки на одной из GNOME'вских панелей, служащий также дополнительным переключателем.

Казалось бы чего ещё желать русскоязычному (точнее, кириллопишущему) человеку, вне зависимости от его подданства и пятого пункта анкеты? Согласен, почти нечего, но:

  • раскладка клавиатуры по умолчанию — базовая Иксовая (так называемая basic Russian), совпадающая с DOS-маркировкой старых фабрично-русифицированных клавиатур; ныне изделий с такой маркировкой не найти даже в коллекциях антиквариата;
  • буква ё из этой раскладки почему-то изъята как класс — а какой же русский не любит буквы ё? кроме того, совершенно не задействованным оказался левый backslash;
  • под переключатель латиницы на кириллицу можно задействовать не все клавиши, традиционно используемые для этой цели; в частности, прикручивание этой функции к CapsLock имеет следствием эффект совершенно непредсказуемый;
  • наконец (и это самое главное), умолчальный вариант раскладки — единственно возможный; а ведь по сути своей это самая неудобная из всех раскладок, придуманных творческим гением руссифицирующего народа (все знаки препинания — на верхнем регистре).

Короче говоря, жить с такой раскладкой в пост-советской России категорически не комфортно. И когда я понял, что OpenSolaris для меня — это всерьёз и надолго, то начал искать пути к исправлению положения.

Предварительное Google'ние по теме показало, что путей таких имеется три:

  1. редактирование соответствующей секции файла /etc/X11/xorg.conf,
  2. использование утилиты setxkbmap, и наконец,
  3. детальная разборка с устройством штатного переключателя и его возможностями.

Начать я решил, разумеется, с первого способа, помятуя древний принцип, что Икс — он и в Африке who? — правильно, X, и везде через xorg.conf должен конфигурироваться более или менее одинаково. Однако если на счёт Африки, как показывает пример Ubuntu, это и верно, то за пределы Земли действие этого принципа не распространяется.

Начать с того что в свежеустановленном OpenSolaris файла /etc/X11/xorg.conf нет вообще. Действительно, современный Xorg позволяет, в принципе, запустить сам себя без всякого конфигурационного файла: тип графического чипа и характеристики видеоподсистемы определяются автоматически, управление шрифтами берёт на себя font-сервер, мыши и клавиатуры в базовой "железной" своей части одинаковы. Получается, что только для задания опций xkb он и нужен (а если, как мы увидим ниже, можно обойтись без xkb, то не нужен вообще).

Тем не менее, создать /etc/X11/xorg.conf труда не составляет. Для этого достаточно, подмазав режиссёра командой

$ su -

получить роль root'а, и дать команду

# Xorg -configure

Результатом её будет появление в каталоге /root прототипа Иксового конфига — файла xorg.conf.new с правильно (будем надеяться) определёнными базовыми параметрами — теми же самыми, которые автоматически определяются при запуске X-сервера без конфига. Остаётся только скопировать его куда следует

# cp /root/xorg.conf.new /etc/X11/xorg.conf

и отредактировать желательным образом секцию "InputDevice", которая в первозданном состоянии выглядит так:

        Identifier  "Keyboard0"
        Driver      "kbd"

Например, придать ей следующий вид:

Section "InputDevice"
	Identifier	"Keyboard1"
	Driver		"kbd"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"us,ru"
	Option		"XkbVariant"	",winkeys"
	Option		"XkbOptions"	"grp:lwin_toggle"
EndSection

Здесь для русской раскладки используется вариант winkeys (при котором расположение клавиш совпадает с фабричной маркировкой на всех современных клавиатурах), а под переключатель латиница/кириллица задействуется левая win-клавиша — именно её я пользовал в этом качестве до начала разборок "Солнечной Клавой", ввиду невозможности задействовать ставший привычным CapsLock.

Перезагружаю X-сервер — то есть просто выхожу из сеанса пользователя, себя, любимого, и регистрируюсь в gdm по новой. На первый взгляд, всё стало почти как у Виктора Вагнера:

— Хорошо-то как, Клава...
— Да не Клава я!
— Всё равно хорошо...

Знаки препинания при русской раскладке стали вводиться в соответствие с их обозначением на клавишах, появилась столь любимая нами буква ё (правда говорят, что скоро введут йотированную б, и потребность в ней резко сократится), а левый backslash перестал генерировать нулевой символ. А после того как я скопировал свой неизменный уже ряд лет символьно-раскладочный файл path2/xkb/symbols/ru вместо оригинального /usr/X11R6/lib/X11/xkb/symbols/ru (в нём, в частности, этот самый левый backslash на нижнем регистре генерирует запятую — и какой альтернативно чудаковатый придумал поместить запятую на верхний регистр?), жизнь показалась прекрасной.

Тем не менее, удивительной она быть не перестала, и "Солнечная Клава" не замедлила показать, что она хоть и Клава, но не совсем та. Во-первых, штатный индикатор текущей раскладки перестал что-либо индицировать. Конечно, это не было полной неожиданностью — но, при отсутствии каких-либо световых индикаторов на самой клавиатуре (а таковые нынче становятся реликтами не только на ноутбуках, но и на десктопных моделях), оказалось вполне неприятным.

Во-вторых же, и главных, попытка задействовать в качестве переключателя CapsLock, к которому я привык за последние десять лет (и который исторически имеет полное право считаться наистандартнейшим из стандартных), окончилась провалом. Заменив последнюю строку предыдущего фрагмента конфига на

	Option		"XkbOptions"	"grp:caps_toggle"

завершив сеанс и попытавшись войти снова, я обнаружил что не могу ввести логин и пароль: сообщение gdm гласило, что у меня включён CapsLock, и выдавало ошибку авторизации. Благо, копия предыдущей загрузочной среды у меня имела место быть, и о возможности отката на неё я уже знал.

В результате сочетания этих двух факторов эксперимент с настройкой раскладок через xorg.conf был признан неудачным. Да и в любом случае это было бы лишь временным костылеобразным решением — уж больно оно не укладывалось в стройную системы конфигурирования OpenSolaris. Хотя способ этот годится, если надо на скорую руку подключить привычный вариант кириллической раскладки из числа стандартных для xkb (а это, если исключить base, который есть и так, — winkeys, typewriter, phonetic), не использовать "запрещенные" переключатели (пока в качестве такового я выявил лишь CapsLock) и довольствоваться индикацией текущей раскладки через светодиоды клавиатуры.

Вариант с setxkbmap я оставил на самый крайний случай полной безвыходности. Во-первых, при беглом ознакомлении с его краткой (хотя и вполне восторженной характеристикой, данной Александром Ерёминым) я с лёту не уяснил его сути — то есть требовалось вникать в него путём чтения документации. То есть делать то же самое, что пришлось бы делать и при углублённом знакомстве со штатной переключалкой. А во-вторых, у меня сложилось впечатление, что это такая же подпорка, как и прямое редактирование xorg.conf — так что я решил таки заняться более детальной разборкой третьего варианта. Благо на деле с ним оказалось всё не так страшно, как выглядело поначалу.




Страницы: 1 :: 2 :: 3 :: следующая

Комментарии

Страницы комментариев: 1 :: 2 :: следующая

ANK, Fri Oct 16 21:05:18 2009:
Собрал пакеты xneur0.9.7 gxneur aspell-ru репозиторий тут http://karakuts.aaanet.ru:10000
shevan, Sat Aug 22 10:51:12 2009:
Спасибо большое.
Все понятно изложено, но мне было лень ковыряться, поэтому я нашел следующее.
http://svn.openi18n.org:8081/repos/im-sdk/trunk/lib/kbltrans/data/README - утилита для создания layoutdata.xml
А здесь я скачал уже готовый, для ленивых ;-)
http://osum.sun.com/forum/topic/show?id=2181626%3ATopic%3A490343
Большое спасибо выложившему его Eugene Turkulevich
norge_goth, Mon Apr 20 16:10:25 2009:
Привет, Алексей, прочитал разобрался и настроил себе клавиатуру как надо, за что вам спасибо, только вот тревожит один вопрос -
на правую клавишу Win - не удаеться поставить запятую, или это невозможно?
вот код:

<key sym="RWIN">
<c1>2c</c1>
<c2>2a</c2>
<c3>2c</c3>
<c4>2a</c4>
<code>2c</code>
</key>

Спасибо
аноним, Sat Apr 18 19:04:30 2009:
По поводу графического настройщика: и правда можно выбрать все, но раскладка не winkeys выбирается и это печально.
аноним, Sat Apr 18 19:00:22 2009:
А напрасно отложили на крайний случай. Рецепт следующий: выключаем эту хрень, сняв галочку "Включить способ ввода", а потом даем командочку

setxkbmap -rules /usr/X11/lib/X11/xkb/rules/xorg -layout "us,ru(winkeys)" grp:ctrl_shift_toggle

и все готово. Только буквы Йо нет.
аноним, Fri Mar 6 12:29:24 2009:
Комментарий от санщика.

Через графический интерфейс всё делается элементарно.

1. Удаляем ВСЕ языки/алфавиты ввода.

2. Выбираем два (или больше, сколько нам надо) языка/алфавита на левой панели и добавляем их на правую. ОКОЛО ДОБАВЛЕННЫХ ЯЗЫКОВ СЛЕВА ПОЯВЯТСЯ ЗНАЧКИ КЛАВИАТУРЫ (!!!), означающие, что языки ввода подхвасены механизмом ввода с клавиатуры.

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

Всё готово. До удаления всех языков и установки по новой только нужных мне пришлось доходить опытным путём. То, что переключалка не работает искаропки для тех языков, которые установлены по умолчанию, -- баг, заключающийся скорее всего в том, что механизм переключения изначально не активирован, а активируется он при установке поддерживаемого им языка, в число которых установленные по умолчанию на самом деле НЕ ВХОДЯТ (что можног заметить, ели посмотреть ОЧЕНЬ ВНИМАТЕЛЬО).
аноним, Fri Mar 6 12:21:09 2009:
> Не очень понятно, почему этого не сделала команда русификации Solaris/OpenSolaris — видимо, русский язык они рассматривают менее значимым, нежели, скажем, турецкий.

Команда русификации Соляриса этого не сделала попросту потому, что ЕЁ НЕ СУЩЕСТВУЕТ. Знаю это не понаслышке, а по той простой причине, что знаю человека, который руководит всей локализацией на русский язык в Сане и который не подтвердил, что через его руки проходил этот перевод.

Так вот, во-первых, не надо плохо о ПРОМТе. ПРОМТ переведёт Scripts как "Сценарии", а надо -- "Алфавиты" (!). Переводил это, скорее всего, ЖИВОЙ ПЕРЕВОДЧИК, возможно. нанятый на стороне любимой некоторыми меееенеджерами из Сана за дешевизну "услуг" компанией Й-АНУС (J-Anus), но совершенно вне контекста, очего и напахал по-страшному. Хотя, впрочем, транслитерация "Енжайн" (переводчик-сотона жжот аццки!!!) за пределами возможностей и ПРОМТа, и Й-Ануса.
Долганов, Thu Mar 5 21:09:59 2009:
Всё очень очень хорошо и толково.
engintoo, Wed Jan 28 18:44:03 2009:
менять необходимо тэги <c3> и <c4> это и есть нижний и верхний регистр в русской раскладке ... удобно таблицу символов смотреть тут http://unicode.su/?script=Cyrillic&add_c=0401&page= ... Автору респектище за обзор!
аноним2, Tue Jan 6 11:16:18 2009:
А вам удалось применить изменения в layoutdata.xml?

Т.е. файл layoutdata.xml изменен, но никаких изменений в работе не происходит

Страницы комментариев: 1 :: 2 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds