Русификация OpenBSD


"Ибо без русификации читать кириллицу невозможно." Лебедев.
--------------------------------------------------------------------------------

Русификация OpenBSD
Русификация консоли
Русификация X Window
Русификация программ
Freeciv
Fvwm (Fvwm2, Fvwm95)
GQmpeg
GTK приложений (GIMP, Sylpheed, X-Chat и т.д.)
LaTeX
Majordomo
Mg
Netscape
Readline приложений (bash, mysql, psql, smbclient и т.д.)
Samba
TWM - Tab Window Manager

--------------------------------------------------------------------------------

Русификация OpenBSD
Русификация консоли
Русификация консоли происходит в две стадии: смена раскладки клавиатуры и настройка русских шрифтов.

Раскладка клавиатуры
Добавьте в файл /etc/wsconsctl.conf раскладку вашей клавиатуры. Если вы указали тип раскладки при установке системы, раскладка уже должна стоять правильно. Также укажите тип переключателя раскладки.

keyboard.encoding=ru
keyboard.map+="keycode 157 = Mode_Lock"

В данном примере настраивается "sticky" переключение раскладок клавишей правый Ctrl.

Отображение кириллицы
Для отображения кириллицы необходимо загрузить шрифт и настроить экраны (консоли).

На созданных ядром экранах кириллица отображаться не будет. Необходимо:

либо удалить созданные по умолчанию экраны, загрузить шрифт и создать их заново;
либо пересобрать ядро с меньшим числом экранов по умолчанию (option WSDISPLAY_DEFAULTSCREENS), загрузить шрифт и создать новые.
Экран ttyC0 создаётся всегда и не может быть удалён, поэтому на нем нельзя отобразить кириллицу.

Исходя из количества экранов по умолчанию (в данном случае два), добавляем в /etc/rc.local следующие строки для создания трёх дополнительных экранов с предварительно загруженным русским шрифтом. При необходимости не забудьте запустить на этих экранах дополнительные процессы getty(8), см. ttys(5).

if [ -x /usr/sbin/wsconscfg -a -x /usr/sbin/wsfontload ]; then
# загружаем русский koi8 шрифт
wsfontload -h 16 /usr/share/misc/pcvtfonts/koi8-r-8x16
# или украинский koi8 шрифт
# wsfontload -h 16 /usr/share/misc/pcvtfonts/koi8-u-8x16

for SCREEN in 2 3 5; do
# удаляем экраны, созданные по умолчанию (для GENERIC)
wsconscfg -d $SCREEN
wsconscfg -t 80x25bf -e vt100 $SCREEN
done
fi

Русификация X Window
В файл конфигурации X Window (/etc/X11/xorg.conf для Xorg или /etc/XF86Config для XFree86 3.x) в раздел Section "Files" добавьте следующую строчку перед ранее написанными директивами FontPath:

FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/"

Последние версии XFree86 а также Xorg дополнительно используют fontconfig для управления шрифтами. Это средство широко используется в программах на основе тулкитов Gtk+ 2.x и Qt. Поэтому рекомендуется установить порт /usr/ports/x11/msttcorefonts или попросту скопировать шрифты из Windows в директорию /usr/local/lib/X11/fonts/mscorefonts. Далее запустите программу обновления кэша fontconfig:

# fc-cache

Результат работы можно посмотреть, вызвав fc-list.

После перезагрузки X Window вы сможете читать тексты на русском языке в кодировке koi8-r. Для ранних версий X Window вам может понадобиться установить дополнительные шрифты, для этого создан порт xcyrillic.

Для русификации клавиатуры в OpenBSD версии 3.8 и старше следует настроить xkb, а для более ранних следует воспользоваться xruskb или использовать патч для libc из набора site.tar.gz.

Настройка xkb
Для того, чтобы настроить xkb:

В Xorg необходимо добавить следующие строки в секцию InputDevice файла /etc/X11/xorg.conf:

Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp_led:scroll,grp:ctrl_shift_toggle"

Эти настройки можно сделать в удобной графической утилите xorgcfg в разделе Keyboard.

В XFree86 3.x необходимо добавить следующие строки в секцию Keyboard файла /etc/XF86Config:

XkbKeycodes "xfree86"
XkbSymbols "us(pc101)"
XkbGeometry "pc"
XkbRules "xfree86"
XkbModel "pc104"
XkbLayout "ru"
XkbOptions "grp:ctrl_shift_toggle"

В данных примерах режим переключается комбинацией клавиш Ctrl+Shift. При переключении раскладки будет загораться Scroll Lock (если задан параметр grp_led).

Также необходимо определить несколько переменных окружения. Этого можно достичь, добавив в файл ~/.xsession:

export LC_COLLATE=C LC_CTYPE=ru_RU.KOI8-R LC_MONETARY=C
LC_NUMERIC=C LC_TIME=C

Более подробную информацию по настройке XKB можно получить здесь.

Настройка xruskb
Установите порт xruskb. Добавьте в ~/.xinitrc или ~/.xsession следующую команду:
[ -x /usr/local/bin/xrus ] && xrus jcuken-koi8.xmm

Замечание
Вполне возможно, вам также потребуется определить вводимые символы с помощью xmodmap(1). Для этого необходимо загрузить соответствующую раскладку. Пример такой раскладки можно найти здесь.

Загрузка раскладки происходит по умолчанию из файла ~/.Xmodmap при запуске startx(1). Если вы используете XDM, добавьте следующую команду в файл ~/.xsession:

[ -x /usr/X11R6/bin/xmodmap ] && /usr/X11R6/bin/xmodmap ~/.Xmodmap

Русификация программ
Freeciv
Для того, чтобы изменить шрифт в freeciv (xaw версии) для русских сообщений, необходимо добавить следующую строку в файл ~/.Xdefaults

Freeciv*font: -cronyx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r

Fvwm (Fvwm2 и Fvwm95)
Чтобы включить поддержку русских букв в менеджерах семейства fvwm, нужно указать шрифты "cronyx" в следующих строчках конфигурационного файла (.fvwmrc, .fvwm2rc, .fvwm95rc):

WindowFont -cronyx-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
MenuFont -cronyx-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
*FvwmPagerFont -cronyx-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmButtonsFont -cronyx-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*MiniButtonsFont -cronyx-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmIdentFont -cronyx-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
*FvwmWinListFont -cronyx-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmTaskBarFont -cronyx-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*
*FvwmTaskBarSelFont -cronyx-helvetica-bold-r-*-*-*-120-*-*-*-*-*-*

GQmpeg
GQmpeg поддерживает перекодировку тегов (win1251 -> koi8). Для этого его необходимо собрать с опцией --enable-russian. Добавьте следующие строчки в файл /etc/mk.conf и пересоберите GQmpeg из портов.

PORTSDIR?= /usr/ports

.if ${.CURDIR} == ${PORTSDIR}/audio/gqmpeg
CONFIGURE_ARGS+= --enable-russian
.endif

В разделе Файлы доступны skin'ы с поддержкой русских букв.

Приложений на базе GTK
Все приложения на базе GTK (GIMP, Sylpheed, X-Chat и другие) можно русифицировать, добавив в ~/.gtkrc следующие строчки:

style "user-font"
{
font = "-cronyx-helvetica-*-r-normal-*-12-*-*-*-*-*-koi8-r"
}

widget_class "*" style "user-font"

LaTeX
Для того, чтобы документы могли содержать русские буквы, необходимо подключить пакет русификации и указать кодировку в преамбуле документа. Например:

documentclass{article}
usepackage[koi8-r]{inputenc}
usepackage[russian]{babel}
egin{document}
LaTeX~--- макропакет, позволяющий авторам верстать и печатать их работы
с высоким типографским качеством при помощи заранее определённых,
профессиональных макетов.
end{document}

Для того, чтобы активизировать переносы в русских словах, запустите утилиту texconfig, выберите раздел hyphenation, далее latex и раскомментируйте строку:

russian ruhyphen.tex

Majordomo
Под русификацией Majordomo мы подразумеваем приведение сообщений, отправляемых Majordomo, в ответ на запросы к такому виду, чтобы почтовый клиент не строил догадок относительно кодировки сообщения, а точно знал её. Патч, который можно взять здесь предназначен для Majordomo 1.94.5 и устанавливает кодировку сообщений в koi8-r.

Mg - emacs-like text editor
Чтобы заставить mg работать с русскими буквами, достаточно создать файл ~/.mg, содержащий строчку:

meta-key-mode

Netscape
Наибольшую проблему при русификации Netscape представляют кнопки и поля ввода. К сожалению, не существует "нормального" способа решить эту проблему, но кое-что все же сделать можно:

Прежде всего следует русифицировать X Window.
Установите порт netscape (navigator или communicator).
Добавьте в файл ~/.Xdefaults следующие строки:
Netscape*fontList: -cronyx-helvetica-medium-r-normal-*-14-*-*-*-*-*-koi8-r
Netscape*documentFonts.charset*iso8859-1: koi8-r
Netscape*toolBar*fontList: -cronyx-helvetica-medium-r-normal-*-14-*-*-*-*-*-koi8-r

Остальные настройки производятся обычным способом из меню Edit/Preferences.

Readline приложений
Приложения на базе readline (bash, mysql, psql, smbclient и т.д.) могут работать с русскими буквами. Для этого необходимо создать файл ~/.inputrc, содержащий следующие строки:

set convert-meta off
set input-meta on
set output-meta on

Samba
Для того, чтобы Windows клиенты видели русские буквы, в файл /etc/samba/smb.conf в секцию [global] необходимо добавить следующие строки:

Если используется samba 3.x:

dos charset = cp866
unix charset = koi8-r

Если используется samba 2.x:

client code page = 866
character set = koi8-r

Для того, чтобы в smbclient можно было вводить русские буквы, необходимо создать файл ~/.inputrc, как это описано в разделе, посвящённом русификации Readline приложений.
Tab Window Manager
Для того, чтобы Menu, Title и IconManager в TWM писали по-русски, необходимо изменить следующие строчки в ~/.twmrc (помимо остальной конфигурации TWM). Пример настройки TWM можно посмотреть тут.

TitleFont "-cronyx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r"
MenuFont "-cronyx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r"
IconManagerFont "-cronyx-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r"

Обновлено: 13.03.2015