На днях принесли мне ноут с FreeBSD и попросили сделать так, что бы в консоли можно было писать русскими виндовыми буквами.

Ну и пользуясь случаем, я сразу же написал эту статью.

Сначала я сделал человеку кодировку UTF8, но ему не понравилось и я по быстрому переделал на cp1251.

Итак, что нам нужно? Я буду приводить паралельно для одной и другой кодировки, а вы уж сами решайте какую хотите для себя.

Поехали..

# mcedit /etc/login.conf

Жмём F7, ищем russian.
Здесь копируем и добавляем старый код, доводим его до вида:

russian|Russian Users Accounts:\
        :charset=KOI8-R:\
        :lang=ru_RU.KOI8-R:\
        :lc_all=ru_RU.KOI8-R:\
        :tc=default:
 
utfrus|Russian UTF Accounts:\
            :charset=UTF-8:\
            :lang=ru_RU.UTF-8:\
            :lc_all=ru_RU.UTF-8:\
            :tc=default:
 
winrus|Russian Win Accounts:\
        :charset=CP1251:\
        :lang=ru_RU.CP1251:\
        :lc_all=ru_RU.CP1251:\
        :tc=default:

Теперь нам нужно закачать два файлика и выложить и в соответствующие папки:

# cd /usr/share/syscons/keymaps
# wget http://noted.org.ua/files/ru.cp1251.kbd
# cd /usr/share/syscons/scrnmaps
# wget http://noted.org.ua/files/win2cpp866.scm

Далее для win делаем в /etc/rc.conf:

keymap=ru.cp1251 
scrnmap="win2cpp866" 
font8x16=cp866b-8x16 
font8x14=cp866-8x14 
font8x8=cp866-8x8

А для UTF8:

keymap="ru.koi8-r"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="koi8-r2cp866"

После чего обязательно делаем:

# cap_mkdb /etc/login.conf

И вот тут самое главное. Определяемся какую мы хотим кодировку и далаем следующее:

# pw usermod -n $your_login -L russian

Выше приведенная строчка указывает на то что у пользователя будет KOI8-R кодировка. Для того что бы установить ему UTF-8 кодировку, необходимо выхолнить:

# pw usermod -n $your_login -L utfrus

И для windows cp1251 кодировки, соответственно:

# pw usermod -n $your_login -L winrus

На этом этапе, консоль уже знает что к чему, вам нужно лишь перелогиниться и проверить:

# ^D
$ ^D
$ locale
LANG=ru_RU.CP1251
LC_CTYPE="ru_RU.CP1251"
LC_COLLATE="ru_RU.CP1251"
LC_TIME="ru_RU.CP1251"
LC_NUMERIC="ru_RU.CP1251"
LC_MONETARY="ru_RU.CP1251"
LC_MESSAGES="ru_RU.CP1251"
LC_ALL=ru_RU.CP1251

Как видите у меня сейчас стоит CP1251 — это удобно когда приносят винт с фильмами снятый с windows машины. Нормальное отображение русских имен файлов гарантировано. Можно конечно примонтировать систему по другому, но сейчас речь не об этом.

Теперь остались мелкие штрихи:

# cat /etc/csh.login
##KOI8-R
#setenv LANG ru_RU.KOI8-R
#setenv MM_CHARSET KOI8-R
#setenv LC_ALL=ru_RU.KOI8-R
##UTF-8
#setenv LANG ru_RU.UTF-8
#setenv MM_CHARSET UTF-8
#setenv LC_ALL=ru_RU.UTF-8
##WIN
setenv LANG ru_RU.CP1251
setenv MM_CHARSET CP1251
setenv LC_ALL=ru_RU.CP1251
 
# cat /etc/profile
##KOI8-R
#LANG=ru_RU.KOI8-R; export LANG
#LC_ALL=ru_RU.KOI8-R; export LC_ALL
#MM_CHARSET=ru_RU.KOI8-R; export MM_CHARSET
##UTF-8
#LANG=ru_RU.UTF-8; export LANG
#LC_ALL=ru_RU.UTF-8; export LC_ALL
#MM_CHARSET=ru_RU.UTF-8; export MM_CHARSET
##WIN
LANG=ru_RU.CP1251; export LANG
LC_ALL=ru_RU.CP1251; export LC_ALL
MM_CHARSET=CP1251; export MM_CHARSET

Теперь бонус для Виндузятников. Портируем windows шритфы на FreeBSD.

1. Записываем на флешку или диск содержимое папки C://Windows/Fonts в рабочей windows. Вставляем диск или флешку в комп с FreeBSD.
2. монтируем его и:

# cd /cdrom/fonts
# mkdir /usr/X11R6/lib/X11/fonts/win-ttf
# cp *.ttf /usr/X11R6/lib/X11/fonts/win-ttf
# cd /usr/X11R6/lib/X11/fonts/win-ttf 
# mkfontscale 
# mkfontdir

Теперь в фал /etc/X11/xorg.conf (ваш рабочий, он может быть у вас в другом месте), добавляем в секцию Files строку:

FontPath "/usr/X11R6/lib/X11/fonts/win-ttf"

Теперь что бы не перезагружать ИКСЫ сделаем:

# fc-cache -v -f

И добавим последние штрихи:

# cat ~user/.xsession
##KOI8-R
#export LANG='ru_RU.KOI8-R'
#export LC_ALL='ru_RU.KOI8-R'
##UTF-8
#export LANG='ru_RU.UTF-8'
#export LC_ALL='ru_RU.UTF-8'
##WIN
export LANG='ru_RU.CP1251'
export LC_ALL='ru_RU.CP1251'
#exec fluxbox
exec startkde

Теперь для файла .xinitrc, делаем тоже самое или как сделая я — символическую ссылку:

# ln -s ~user/.xsession ~user/.xinitrc

PS. Еще я рекомендовал бы доставить шрифты /usr/ports/x11-fonts/urwfonts(-ttf) — установятся в:/usr/local/lib/X11/fonts/URW/ и /usr/ports/x11-fonts/webfonts/ — установятся в: /usr/local/lib/X11/fonts/webfonts/. После чего не забыть их добавить в /etc/X11/xorg.conf файл.

После чего необходимо перезалогиниться и ВУАЛЯ!!!..

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/1982


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

Please note: JavaScript is required to post comments.