Все о Linux. LinuxRSP.Ru

[an error occurred while processing this directive]

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

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

      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2024 LinuxRSP