OpenBSD - заметки конечного пользователя
Русификация в первом приближении
Итогом манипуляций, описанных в предыдущих заметках, явилось образование нормальной рабочей атмосферы, царящей как в текстовом, так и в графическом режимах. Казалось бы, можно начинать работу, не так ли?
Ан нет. Вследствие того, что призыв "резинового" Полыхаева о поголовном делопроизводстве на латинский алфавит услышан не был (о чем нынче можно только горько пожалеть), требуется еще одно действо - русификация системы. Каковая преследует три цели - русификацию текстового режима, режима графического и приложений. Начать, по традиции, следует с первой.
Русификация консоли
Русификация консоли достигается решением трех задач - обеспечением вывода русских букв на экран и ввода их с клавиатуры, а также установки системной локали.
В доступных мне источниках относительно русификации консоли указания имелись очень краткие и не вполне внятные. И к тому же, видимо, расчитанные на одну из прежних версий OpenBSD - в моей следование им никакого эффекта не возымело.
Поэтому я принялся размышлять и читать документацию. Все файлы. имеющие отношение к терминалу pcvt (а русификация - лишь один из способов изменения свойств терминала, и для ее выполнения в свойствах этих следовало хоть как-то разобраться) находились в каталоге /usr/share/misc. А программы управления им - в каталоге /usr/sbin. Вносить же изменения, по-видимому, следовало в конфигурационный файл /etc/rc.local, это самое подходящее место.
Решил для начала добиться вывода кириллицы на экран. Кириллические шрифты для консольного режима имелись - в каталоге /usr/share/misc/pcvtfonts. Шрифтов четыре для разных разрешений (то есть количества строк и знаков на экране), и только в кодировке KOI8: koi8-8x16, koi8-8x14, koi8-8x10, koi8-8x8. Никаких указаний на возможность использования шрифтов в альтернативной кодировке я не обнаружил. Впрочем, забегая вперед, замечу, что даже в сочетании с мышью в консольном режиме экранные шрифты KOI8 никаких проблем (имеющих место быть во FreeBSD с ее syscons) не создают.
Разумеется, имеющиеся шрифты следует неким образом считать. В каталоге /usr/sbin обнаруживается программа loadfont, судя по названию, именно для этой цели и предназначенная. Ну и, как я уже говорил, файл rc.local также божьим предначертанием создан для помещения соответствующих директив.
После некторых ползуче-эмпирических упражнений и прочитывания соответствующей man-страницы, прихожу к следующим строкам в rc.local:
#cyrillic fonts added
/usr/sbin/loadfont -c0 -f/usr/share/misc/pcvtfonts/koi8-8x16
/usr/sbin/loadfont -c1 -f/usr/share/misc/pcvtfonts/koi8-8x14
/usr/sbin/loadfont -c2 -f/usr/share/misc/pcvtfonts/koi8-8x8
В данном случае полная форма указания пути весьма желательна, потому что считывание rc.local происходит позже всех прочих файлов ресурсов, но все равно до обращения к профилю командной среды, описывающей пути до исполнимых файлов.
После описанной манипуляции (и перезагрузки, естественно) я обрел способность лицезреть ранее написанные русские тексты на экране. Правда, только в текстовом редакторе (например, в joe), однако на данном этапе этого достаточно - прочее следует отнести уже к русификации приложений.
С вводом кириллицы с клавиатуры дело оказалось похуже. Хотя возможность такая в некотором смысле есть. Она реализуется посредством команды /usr/sbin/kcon, управляющей вообще поведением клавиатуры в pcvt. К слову замечу, что парная ей команды scon отвечает за вывод на экран, позволяя, в частности, переключаться между виртуальными консолями, получать сведения о текущей и т.д.). Так вот, команда вида
kcon -m koi8
запущенная вручную или вписанная в тот же файл rc.local, позволяет вводить с клавиатуры русские буквы. Если, конечно, это можно назвать вводом: кириллические символы получаются нажатием литерной клавиши одновременно с Alt. При этом правый Alt обеспечивает ввод в раскладке "йцукен" (в нижнем регистре), левый - в раскладке "ЯВЕРТЫ" (в верхнем). Одновременное нажатие еще и клавиши Shift дает верхний регистр букв в первом случае и нижний - во втором. Знаки препинания во всех случаях вводятся в латинской раскладке.
Конечно, при некоторой ловкости рук, это не так уж и трудно. Но для тех, кто образование получал не на цыганском факультете - далеко от идеала. Однако, насколько мне удалось понять, такое поведение консоли вытекает из свойств самого терминала pcvt (если я ошибаюсь - буду весьма признателен за разъяснения).
В отличие от программ управления консолью в Linux и FreeBSD, в pcvt не обнаруживается отдельных файлов для разных клавиатурных раскладок (то есть разных keymap). Все они свалены в едином файле /usr/share/misc/keycap.pcvt. Во второй половине которого, после раскладок бельгийских, исландских, шведских и прочих, столь же широко применяемых в узких кругах граждан этих многолюдных стран, можно обнаружить и раскладку под названием
# Simple Cyrillic KOI8-R keymap
созданную, как гласит комментарий, Романом Палагиным (Roman V. Palagin). Вид ее следующий:
koi8:koi8-r:ru-koi8:ru:dummy cyrillic keymap:\
:l1#62:\
:A17=\312:A18=\303:A19=\325:A20=\313:A21=\305:A22=\316:\
:A23=\307:A24=\333:A25=\335:A26=\332:A27=\310:A28=\337:\
:A31=\306:A32=\331:A33=\327:A34=\301:A35=\320:A36=\322:\
:A37=\317:A38=\314:A39=\304:A40=\326:A41=\334:\
:A45=\302:A46=\321:A47=\336:A48=\323:A49=\315:A50=\311:\
:A51=\324:A52=\330:A53=\302:A54=\300:A55=\243:
То есть ввод кириллических символов обеспечивается подменой комбинации Alt+код_латинской_буквы кодом соответствующей ей буквы русской. Ничего лучшего, насколько я смог выяснить, пока никем не придумано. Тем не менее, это лучше, чем ничего - кириллические тексты в консольном режиме можно хотя бы просматривать и, при крайней нужде, поправить в них пару-тройку ошибок - на большее мало у кого хватит терпения.
Завершающий штрих русификации - установка системной локали. Каковая отсутствует в системе как класс - каталог /usr/share/locale просто пуст. Это можно восполнить, скачав какую-либо из существующих (соответствующие ссылки обнаруживаются, например, на http://www.opennet.ru). А затем внести соответствующие изменения в переменные среды. Теоретически это делается двояким способом.
Первый, традиционный, - внесение соответствующих изменений в профильные файлы командной среды пользователя - $HOME/.profile при использовании bash или $HOME/.login - при работе с csh.
В первом случае добавляются строки
LANG=ru_RU.KOI8-R; export LANG
MM_CHARSET=KOI8-R; export MM_CHARSET
устанавливающие соответствующие переменные окружения и обеспечивающие их экспорт для использования внешними программами.
Чтобы добиться того же эффекта для среды csh, в файл $HOME/.login следует вписать строки
seteven LANG=ru_RU.KOI8-R
seteven MM_CHARSET=KOI8-R
поскольку необходимости в экспорте здесь нет.
Второй способ - определение переменных окружения в учетной записи пользователя. Теоретически рассуждая, именно (и в том числе) для этого в ней предназначено поле class. Во FreeBSD в описании классов (в файле /etc/login.conf), как говорят, имеется и класс russian. Каковой отличается от класса default только установкой нужных переменных среды при входе в систему. Этот способ позволяет назначить разным пользователям свои локали, не вмешиваясь в их профильные файлы.
Однако в OpenBSD (в том варианте, что установился у меня) в файле /etc/login.conf ничего подобного классу russian не обнаруживается. Вероятно, с этим можно справиться, но я заниматься этим не стал. Да и вообще отказался от установки русской локали. Что, конечно, идеологически неправильно, но нам-то, советским людям, любая идеология - пофигу. А вот практически...
Практически оказалось, что при установке русской локали в любом ее проявлении проблемы возникают, как ни странно, в X Window. А именно, в оконных средах, собранных на библиотеке Gtk (например, XFce), и во всех Gtk-приложениях. Впрочем, к этому я вернусь в далее в этой же заметке. А пока с русификацией консоли мне хотелось бы покончить.
Русификация X Window
Как ни странно, здесь оказалась своя специфика, хотя в целом положение с русификацией существенно лучше. Но - по порядку.
Вывод русских букв на экран в X Window обеспечивается без труда. В штатный комплект входят русские шрифты имени товарища Cronyx'а, каковые обнаруживаются в каталоге /usr/X11R6/lib/X11/fonts/cyrillic - единой кучей, без разбивки на обычные 100dpi, 75dpi и misc.
Впрочем, на инсталляционном CD, в каталоге ~/2.8/packages/i386 имеется и пакет xcyrillic. После его установки дополнительные кириллические шрифты наблюдаются в каталогах /usr/local/lib/X11/fonts/xcyrillic/100dpi, /usr/local/lib/X11/fonts/xcyrillic/75dpi и /usr/local/lib/X11/fonts/xcyrillic/misc. Прописав соответствующие пути в секции Files файла /etc/XF86Config, можно наслаждаться видом русских букв в X'ах. Причем прописать их нужно обязательно все - среди шрифтов с разрешением 100dpi почему-то отсутствует гарнитура fixed.
С клавиатурой оказывается немного сложнее. Как я уже говорил, X Window приходится настраивать после инсталляции системы. Если для этих целей воспользоваться программой XF86Setup, можно выбрать не только русскую раскладку клавиатуры, но и переключатель с латиницы на кириллицу, например, комбинацию Control+Shift.
К слову сказать, в X'ах следует избегать переключателей с комбинацией клавиш Control+Alt: они блокируют такие часто необходимые действия, как переход на другую виртуальную консоль (Control+Alt+F#) или принудительный выход из графического режима (Control+Alt+Backspace), что иногда создает просто почти безвыходные ситуации.
В результате в файле /etc/XF86Config в секции Keyboard можно созерцать примерно такие строки:
Protocol "Standard"
XkbRules "xfree86"
XkbModel "pc105"
XkbLayout "ru"
XkbOptions "grp:ctrl_shift_toggle"
То есть, как обычно, XF86Setup по умолчанию конфигурирует клавиатуру через описание правил (третий способ описания Xkb, по Ивану Паскалю). Вероятно, нет причин, запрещающих переписать эту секцию по первому (полное описание геометрии, символов и т.д.) или второму (полная keymap) способам), если это кажется лучше.
Разумеется, и переключатель Control+Shift не является обязательным. Я тут же заменил последнюю строку на
XkbOptions "grp:caps_toggle"
в результате чего получил любимый свой переключатель раскладок через CapsLock (первозданная функция этой клавиши при этом достигается комбинацией CapsLock+Shift). Однако - не сразу...
Для начала после запуска X Window никакой из доступных (то есть указанных в секции option файла /usr/X11R6/lib/X11/xkb/rules/xfree86.lst переключателей ничего не переключал: либо ввод с клавиатуры просто блокировался, либо латинские буквы как вводились, так и продолжались вводиться.
Объяснение этому обнаружилось на http://www.openbsd.ru и показалось мне весьма странным: для ввода русских букв требуется обязательное наличие подходящей клавиатурной раскладки Xmodmap в каталоге /usr/X11R6/lib/X11/xinit или в домашнем каталоге пользователя.
Мне всегда казалось, и на основании теоретических соображений, и по личному опыту (в частности, описанному в Саге о Mandrake), что русификация через Xkb и через подмену Xmodmap принципиально несовместимы друг с другом. Ведь в первом наборы символов национальных алфавитов для того и описываются, чтобы трансформировать в них коды стандартной клавиатурной раскладки...
Однако в данном конкретном случае без Xmodmap ничего не получалось. И файла-то такого в штатном комплекте не было вообще. Благо, отыскать его мне удалось по ссылке с того же http://www.openbsd.ru. Скачав соответствующий файл, поместив его в /usr/X11R6/lib/X11/xinit и переименовав, соответственно описанию в файле /usr/X11R6/lib/X11/xinit/xinitrc, в .Xmodmap, я получил, наконец, возможность вводить русские буквы...
Правда, получившаяся при раскладка клавиатуры - из тех DOS-подобных, в которых знаки препинания находятся на нижнем регистре (и не на вполне обычных местах), а цифры - на верхнем. Это мне где-то и нравится - все же знаки препинания набираются чаще, чем цифры в массовом количестве (на предмет чего существует малая цифровая клавиатура, к слову говоря). И если бы мне приходилось работать только на своей машине, или настроить все клавиатуры по своему вкусу, я ничего бы и не менял.
Однако принудительная сила реальности такова, что в окружающей среде почему-то много чаще пользуются Windows-раскладкой. Да и все ныне продающиеся клавиатуры фабрично маркированы именно так (DOS-клавиатуры прочно перешли в разряд раритетов). И, дабы не быть единственным, шагающим в ногу, я решил привести свою раскладку в соответствие с общепринятыми нормами.
Благо, достигается это прямым редактированием файла .Xmodmap - занятие, требующее только минимума внимания и терпения. Устройство файла очень простое, нчало его выглядит примерно так:
! Key Base Shift Caps ShiftCaps
!----------------------------------------------------------------------
keycode 9 = Escape NoSymbol Escape
keycode 10 = 1 exclam exclam 1
keycode 11 = 2 at quotedbl 2
keycode 12 = 3 numbersign grave 3
и так далее. То есть
- первая колонка - это номер кода,
- вторая - соответствующий ему символ без всяких модификаторов,
- третья - соответствующий символ на верхнем регистре,
- четвертая - символ при включенном модификаторе (в моем случае - действительно CapsLock, но в общем - при том, который принят в качестве переключателя раскладок, например, Control+Shift),
- пятая - то же, но при верхнем регистре.
И вся задача сводится к тому, чтобы перетасовать четвертую и пятую колонки в соответствие с маркировкой кириллической раскладки имеющейся в распоряжении клавиатуры, то есть, для стандартной Windows-раскладки получится:
!
! Key Base Shift Caps ShiftCapsM
!----------------------------------------------------------------------
keycode 9 = Escape NoSymbol Escape
keycode 10 = 1 exclam 1 exclam
keycode 11 = 2 at 2 quotedbl
keycode 12 = 3 numbersign 3 numbersign
и далее по всем пунктам. Впрочем, для Windows-раскладки этого можно и не делать. Я столь непосильную работу произвел. Его следует просто разместить в соответствие с описанием в файле /usr/X11R6/lib/X11/xinit/xinitrc, имеющем вид:
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
то есть либо в каталоге /usr/X11R6/lib/X11/xinit/, либо в своем домашнем.
На этом русификацию X Window как системы следует считать законченным. Далее потребуются еще кое-какие действия, но их следует отнести уже к русификации приложений. К чему мы и плавно переходим.
Русификация приложений
Начнем с приложений и утилит для консоли. После всех описанных в первом разделе манипуляций русские буквы можно видеть там, где они больше всего необходимы - в большинстве текстовых редакторов или в браузере Lynx. Правда, в последнем случае, возможно, придется явным образом задать язык и кодировку документа (мне - не пришлось) через меню Options (вызываемое нажатием буквы O, соответственно).
Кроме этого, и ввод с клавиатуры в текстовых редакторах никаких дополнительных действий не требует. Однако непосредственно в командной строке нельзя ни увидеть русских букв (например, имен файлов), ни ввести их.
Ситуация эта требует исправления. Не столько ради файлов с русскими именами - по многим соображениям это занятие нестоящее, - сколько ради просмотра кириллического их содержимого командой cat.
Для этого придется создать еще один профильный файл - .inputrc (речь идет о среде bash, как в других - не знаю) в своем домашнем каталоге (можно скопировать его в корневой каталог, или каталог /root). И вписать в него три строки:
set meta-flag on
set convert-meta off
set output-meta on
После этого можно не только просматривать русские тексты вне текстового редактора, но и создавать их при необходимости командой
cat > имя_файла
содержимое файла
Control+D
Что в некоторых случаях оказывается самым простым способом создания небольших текстовых файлов, не требующим вызова каких бы то ни было внешних программ.
Другая полезная команда, применяемая для просмотра файлов - less (это достижение Linux'овой мысли входит в OpenBSD стандартно), - также в первородном виде воспринимать кириллическое содержимое не желает. При попытке вывести ею на экран файл с русским текстом она не опознает его как текстовый и выскажет предположение о его бинарном характере. Если все же настоять на своем, русский текст будет показан в виде нечленораздельного набора цифровых кодов.
Однако и это - дело поправимое. Для этого всего-то и нужно, что вписать в профильный файл bash (/.profile или $HOME/.profile, по потребностям) следующее:
export LESSCHARSET=latin1
Вот и все, что относится к приложениям консоли. Возможно, в каких-либо еще программах потребуются некие специальные действия по поддержке кириллицы, но я с такими еще не сталкивался.
Русских букв в X Window мы добились в прошлом разделе. Но только - в оконном менеджере, запускаемом по умолчанию, через startx. Так как только в этом случае исполняется сценарий из файла /usr/X11R6/lib/X11/xinit/xinitc и, соответственно, считывается файл .Xmodmap. Если запустить X Window в чистом виде (командой xinit) и в дальнейшем - какой-либо оконный менеджер из командной строки терминала - никаких русских букв ввести с клавиатуры не удасться (хотя созерцать их на экране - это пожалуйста).
Определенная сложность возникнет (вернее, просто потребуются некоторые дополнительные действия) при использовании WindowMaker'а. Как известно, первому его запуску (любым способом) должно предшествовать исполнение инсталляционной программы - wmaker.inst от лица пользователя. Каковая создает в его домашнем каталоге, во-первых, необходимые служебные подкаталоги, и, во-вторых, собственный файл $HOME/.xinitrc.
Файл этот, разумеется, не содержит никаких указаний на размещение Xmpdmap, А поскольку при запуске X'ов командой startx, вместо системного xinitrc исполняется именно он, русские буквы с клавиатуры в WindowMaker загадочным, на первый взгляд, образом исчезают.
Чтобы вернуть их на место, нужно, во-первых, скопировать в свой домашний каталог файл .Xmodmap, во-вторых, явным образом вписать путь к нему в файл $HOME/.xinitrc.
Впрочем, можно поступить и проще - просто вписать в конец системного xinitrc строку
exec wmaker
закрыв комментариями прочие ранее использовавшиеся по умолчанию оконные менеджеры и снеся напрочь пользовательский $HOME/.xinitrc. Я лично поступил именно так - вписал в xinitrc под ремарками все симпатичные мне оконные менеджеры и снимаю комментарии с того из них, который гармонирует с моим сегодняшним настроением.
Проблема иного рода возникает с XFce. Эта оконная среда, основана на библиотеке Gtk и, как и все известные мне Gtk-приложения, относится к категории правильных. То есть сведения, необходимые для поддержки национальных языков (NLS) она берет из системной локали.
Это, конечно, здорово и идеологически правильно. Однако результат получается прискорбным: при запуске XFce с установленной русской локалью в меню, диалоговых панелях и системных сообщениях устанавливается русский язык, но... без кириллических шрифтов. В результате можно иметь удовольствие наблюдать греко-французскую абракадабру, всем хорошо известную как по Linux-, так и Windows-приложениям. Попытки исправить положение (встроенными ли средствами конфигурирования, прямым ли редактированием конфигурационных файлов) никакого эффекта не дают.
Более того, это - общее свойство всех Gtk-приложений для OpenBSD: и Blufish, и GIMP, и прочих. И, что характерно, только их: программы, основанные на библиотеке Qt или вариациях Motif/LessTif/OpenMotif, ничего подобного не обнаруживают, Исправно подставляя кириллические шрифты туда, куда нужно. Если, конечно, знают о существовании русской локали вообще. Замечу также к слову, что в Linux я не замечал за Gtk-приложениями такого безобразия. Хотя, как говорят, во FreeBSD положение с ними то же, что и в OpenBSD.
О причинах этого явления я могу только догадываться. В некоторых из Gtk-приложений (например, в Bluefish) воспроизведения русских букв в меню и прочих интерфейсных элементах можно добиться внутренними средствами конфигурирования. С GIMP'ом же все мои потуги оказались бесплодными. А поскольку GIMP - одно из немногих Gtk-приложений, которое я использую систематически (и замены которому не знаю), пришлось в итоге просто отказаться от установки системной локали. Впрочем, каких-либо отрицательных последствий такой беспринципности я пока не заметил.
В общем, однако, если отрешиться от ситуации с XFce, проблему русских букв в X Window можно считать успешно преодоленной. Осталось немногое - лицезреть, с какой же именно раскладкой, латинской или кириллической, мы имеем дело в данный момент. Для чего необходим какой-никакой идникатор раскладки. А если он при этом будет еще и дополнительным переключателем - так честь ему и хвала.
Индикаторов раскладки клавиатуры мне известно не так много (интересно, а для консоли есть ли они вообще? в DOS, помнится, для этой цели изобретались всякого рода цветные экранные рамки...). Это, во-первых, штатный индикатор из KDE - kikbd, который, правда, мало чего индицирует и ничего не переключает; подчистую подчас уничтожая, зато, все настройки XF86Config на кириллицу. Так что о нем говорить не буду.
Есть еще индикатор переключатель из русской редакции Linux Mandrake - kkb, достаточно удобный, но уж очень, на мой взгляд, маленький. И к тому же требующий библиотеки Qt. Удобен, по слухам, переключатель Ивана Паскаля (xxkb), позволяющий, в частности, запоминать его положение для каждого окна отдельно (как Windows 95 и выше). Но с ним я пока дела не имел.
Самое, однако, простое, а на мой взгляд, и лучшее, решение - индикатор/переключатель fookb Алексея Выскубова. Он был доступен на домашней странице автора, которая последнее время отвечать категорически не желает. Поэтому я взял на себя смелость поместить одну из его версий (далеко не последнюю) в своей маленькой коллекции файлов.
Программа эта существует в исходных текстах и написана под Linux, однако без труда компилируется в под OpenBSD. Все, что для этого нужно - распаковать архив, войти в каталог с исходниками и, если предполагается использовать fookb с WindowMaker, дать команду make. После чего скоприровать образовавшийся исполнимый файл fookb в подходящее место (например, в /usr/local/bin), а все файлы с расширением *.xpm (их четыре) - в каталог /usr/local/share/fookb (предварительно его создав).
Если же требуется применять fookb в иных оконных менеджерах, следует предварительно открыть Makefike, закрыть комментарием строку
#FLAGS=-DWMAKER
и, напротив, раскомментировать строку
#FLAGS=
- именно так, справа от знака равенства ничего быть не должно. Далее надлежит (если необходимо) сделать fookb запускаемым при старте используемого оконного менеджера - и наблюдать, как при нажатии на CapsLock (или иной клавиатурный переключатель) нечто вроде стилизованного звездно-полосатого флага меняется на ностальгические серп и молот советского герба. Или переключать клавиатуру щелчком левой или средней клавиши мыши (но не правой - щелчок ею закрывает программу).
Пора, однако, переходить к русификации приложений X Window. Впрочем, сказать тут особенно нечего: почти все регулярно используемые программы требуют весьма мало дополнительных действий по поддержке кириллицы.
Так, чтобы получить русские буквы в окне терминала xterm, нужно просто запускать его с параметром -fn и явным указанием на какой-либо кириллический шрифт. Например:
xterm -fn -cronyx-courier-*-r-normal-*-20-*-*-*-*-*-*-*
Правда, вводить символы кириллицы непосредственно в командной строке нельзя - вместо них выводятся их коды. Но это, на мой взгляд, и не нужно. А вот для просмотра файла с русским текстом командами less или cat этого более чем достаточно. Как и для броузинга русских html-документов через lynx.
Лучший текстовый редактор всех платформ и народов - NEdit (описанный в одной из моих прежних заметок) прекрасно воспринимает встроенные макросы и сценарии, разработанные мной для его Linux-версии. И единственно, может потребовать смены экранного шрифта (для Linux я последнее время использовал шрифты TTF, которые к OpenBSD пока прикрутить не смог).
Единственная из используемых мной программ, которая потребовала несколько более радикальных телодвижений - это Lyx. Однако и здесь принципиальных сложностей не возникает. Нужно только разжиться файлами koi8-r.kmap и cyrillic.bind (все, нужное для русификации Lyx, также можно взять у меня). Первый помещается в $HOME/.lyx/kbd, второй - в $HOME/.lyx/bind. Подкаталог же $HOME/.lyx/ сам собой образуется при первом запуске программы, если согласиться с ее предложением это сделать (отказываться от чего - решительно не вижу причин).
После этого в подкаталоге $HOME/.lyx файл lyxrc.default переименовывается (хотя и не обязательно, но так - лучше) в lyxrc. И в нем вносится минимальная правка. А именно, строка
\font_encoding "T1"
заменяется на группу строк
\font_encoding "koi8-r"
\screen_font_encoding koi8-r
\bind_file cyrillic
После чего русские буквы как воспроизводятся на экране, так и вводятся с клавиатуры (при использовании системного переключателя раскладок, а отнюдь не Lyx-специфичного ScrollLock). Впрочем, процесс русификации Lyx был описан неоднократно, в том числе и вашим покорным слугой.
Остается добавить немногое. Для полноценной работы с русскоязычными текстами требуется еще и проверка орфографии - что же это за текстовый процессор, который не умеет исправлять наши ошибки в хромающем правильнописании? Да и для любого текстового редактора такая возможность лишней не кажется.
С этой целью в OpenBSD и большинстве ее приложений применяется стандартный ispell, входящий в комплект. Но, естественно, без малейшего намека на русский словарь.
Тем не менее, установить его (стандартным образом, из коллекции пакетов в ~/cdrom/2.8/packages/i386) стоит. И даже согласиться поначалу. что по умолчанию будет использоваться американский английский язык (в дополнение к чему можно применить и английский английский, а также немецкий и французский).
После чего следует озаботиться поисками словаря русского. Его, говорят, можно скачать по ссылке с www.opennet.ru. Мне, однако, это не удалось - пришлось взять исходники с одного из оказавшихся под рукой Linux-диска УрбанСофт, каковые были благополучно скомпилированы обычным образом (через make и make install).
Далее запускается программа ispell-config, предлагающая выбрать новый словарь для использования по умолчанию. В списке доступных отныне присутствует и русский. Выбираем его - и дело в шляпе, русское правильнописание можно проверять теперь и через NEdit, и через Lyx (и непосредственно через ispell, разумеется).
На этом можно было бы поставить точку. Однако мало того, что с легкой руки Кирилла и Мефодия мы пользуемся алфавитом, отличным от латинского. Так еще и символы его кодируются, в силу научно-административных причин, по разному. И потому в повседневной деятельности постоянно возникает вполне материальная потребность перекодировать русские тексты из кодировки Windows или DOS (где, кроме того, принято иное, чем в Unix, обозначение конца строки) в KOI8 и обратно.
Для этого существует несколько известных мне программ-перекодировщиков. Однако останавливаться на них я не буду, поскольку реально пользуюсь только одной - программой rusconv. Не то чтобы остальные хуже (данных для обощений у меня нет), просто так уж склалось исторически. Взять ее можно с сайта автора, где имеются также очень подробные (и русскоязычное) руководство пользовтеля и учебник. Каковые избавляют меня от необходимости описывать процесс установки и использования.
Скажу только, что программа элементарно собирается из исходников (и под Linux, и под OpenBSD). После чего, запущенная из командной строки, позволяет перекодировать тексты между следующими кодировками: DOS, Windows, Unix, Macintosh (с одновременным исправлением символов конца строки). В том числе и для группы файлов, и даже для целого каталога.
Необходимое заключение
Вот и все, что я пока имею сказать о русификации OpenBSD. Правда, за бортом осталось рассмотрение печати русских документов, но к этому вопросу я надеюсь вернуться после изучения системы печати в OpenBSD вообще. Ведь и так заметка моя неприлично разрослась.
Тем не менее, я счел целесообразным столь подробно остановиться на проблемах русификации. Поскольку это - один из краеугольных камней в здании любой системы, могущей или желающей использоваться в качестве настольной. По крайней мере, в нашей стране.
Действительно, чего стоит настольная система, не умеющая обаться с пользовтаелем на его родном языке? И, должен сказать, что положение OpenBSD здесь далеко от идеального. Можно спорить о таких сравнительных достоинствах Linux и OpenBSD, как стабильность, безопсность, качество кода ядра и т.д. Однако представляется бесспорным, что в направлении интернационализации вообще, локализации в особенности и русификации в частности Linux (по крайней мере, хорошие его дистрибутивы) продвинулись много дальше.
Это - отнюдь не в упрек OpenBSD. А скорее призыв к разработчикам - больше внимания уделять таким прозаическим вещам, как поддержка родной (и чужой) речи.
Тем более что и существующее положение - отнюдь не безнадежно. И в первом приближении OpenBSD может использоваться для работы с русским языком. Что я попытался продемонстрировать в этой заметке. Которая к стати, как и все предыдущие на эту тему, написаны именно в этой системе и ее средствами.
[Назад] [Содержание] [Вперед]
©
Алексей Федорчук
При использовании ссылаться:
http://onix.nm.ru