Реализация возможности работы в PC-BSD (да и во
многих вариантах БСД- и Линь- семейства) с русской раскладкой клавиатуры
не совсем логична, но достаточно проста. И сейчас мы заставим нашу
PC-BSD с ней работать. Надо сказать, что это одна из самых популярных
проблем при переходе на БСД + КДЕ. Сложно для пользователя, примитивно
для профессионала. Но я всего лишь простой пользователь, посему и
объяснять буду просто. Но долго-о-о...
Сделайте мне красиво.
Жил-был KDE. Но любовь к русскому языку у этого гнусного
русофоба была не привита. Хамил, как только просыпался. Запускаешь его, а
он строчки пишет, но как плюётся - п р о б е л о в в с л о в а х - что
собак нерезанных на зимних московских улицах. Шрифты, те что в комплекте
идут, русские буквы имеют, но не все. И те, что в настройках
установлены, как раз без русских букв рождены были. Однако, в комплекте
есть одно семейство - DejaVu. Симпатично и практично. Его и будем
использовать. Итак, нажимаем "Меню KDE - Настройка - Внешний вид и
темы - Шрифты". Жмём кнопку "Изменить все шрифты". В
появившемся оконце ставим флажок "Шрифт" и во внезапно ставшим
активным списке снизу выбираем DejaVu Sans Condensed. Флажки "Стиль"
и "Размер" устанавливать не стоит. Если хотите поменять стиль
или размер шрифта, то лучше это делать для каждого шрифта отдельно, а не
скопом. Жмём "ОК". Меняем ручками моноширинный шрифт на "DejaVu
Sans Mono". Теперь можем снять флажок "Использовать сглаживание
для шрифтов", ибо блажь сия всё-таки кушает ресурсы и на медленных
машинах может сильно сказаться. Сразу же нажимаем кнопку "Применить",
любуемся результатом, а затем жмём "ОК".
Но это ещё пол-дела. Если мы запустим Справку, то она,
открывшись, как и любой html-документ в Конквероре (Konqueror) -
системном браузере, будет похожа на невесть что - несоразмерные буквы,
межсимвольный интервал в пол-строки. Лечится тоже просто - жмём "Настройка
- Настроить шрифты". Там выбираем в качестве шрифта с засечками "DejaVu
Serif Condensed", моноширинного - "DejaVu Sans Mono", а в
качестве остальных - "DejaVu Sans Condensed". И крайне рекомендую
поставить ползунки размеров в 7 и 10 ("Минимальный..." и "Средний..."
соответственно). Нажимаем "ОК". Вот теперь гораздо приятнее!
О скитаниях вечных и о Земле...
А теперь нам потребуется кофе. Выпейте чашечку, соберитесь,
поборите страх. Консоли боятся многие. Кто-то из-за неполного понимания
её сути,кто-то - из-за неудобства. Да, просто тыкать мышью в кнопки на
экране действительно легче, но попробуйте-ка набрать в текстовом
редакторе хоть один абзац текста с помощью экранной клавиатуры.
Представили? То-то же.
Вообще, интуитивность пиктограммного интерфейса во многом
обманчива, а возможность использования его без подготовки или же для
быстрого изучения свойств любой системы является откровенной ложью.
Система всегда требует познания принципов, лежащих в её основе. А
интерфейс с графикой только отвлекает. С его помощью можно творить
чудеса, когда требуется высокая скорость выполнения однотипных операций
(работа с 3D-графикой, например), когда нужно разок, но быстро поменять
свойства шрифта в редакторе, когда система имеет 5-7 функций (входов,
вызовов системы) и их можно присобачить к картинкам, НО когда диалог с
системой насчитывает более 100 существительных (т.е. команд), графика
становится адом, в котором даже посвящённый ищет нужную команду более
минуты. Повседневный разговорный язык сордержит сотни часто
употребляемых слов и тысячи употребляемых регулярно, но редко.
Вдумайтесь - может слов 20-30 для разговора с машиной запомнить всё-таки
не так уж сложно? Стало быть дело за консолью: она и научит, и покажет,
и выслушает, да и вообще она мать родная.
Честно скажу, в консольную среду я и сам не рвусь, считая,
что если мне нужен VPN, значит мне нужна сия функция от системы. Беру
программу, нажимаю кнопку... Получаю услугу. Это с одной точки зрения.
Но если мне нужен VPN, то не лишне будет знать, как оно работает.
Поэтому я открываю книгу и вижу, что делается это в 4 шага 4-мя
последовательными командами. Теперь я могу сказать системе, что мне до
зарезу нужен VPN, не дожидаясь толмача, которому я скажу "ВПН" и он
переведёт это с нижегородского на машинный.
Ладно, замяли, а то сейчас несговорчивых потянет на
рассуждения о уровнях абстракции, иерархиях и делегировании. Им мы сразу
скажем, что притеснять их не намерены, ибо дома я пользуюсь
DVD-плеером, имеющим 5 кнопок, да и то задействую не более 3-х из них, а
транскомпрессию видео из DVD во всеми любимый DivX провожу на
компьютере в среде, насчитывающей десятки команд и сотню параметров.
Суть в том, что время конечно (читай - "жизнь коротка"), а
абстрагироваться можно в обе стороны и до опупения. Поэтому и нужен
подход с двух сторон. Истина, как говорил Малдер, всегда где-то рядом, и
хрен её за один конец поймаешь.
Учимся писать "Константиницей".
Язык определяет мышление. Так сказал великий. То есть, ежели
мы не имеем возможности писать на родном языке, то мышление наше
распадается. Разрушается сама основа нашего культурного
совершенствования. Начинается аксиоматичное принятие понятий, вводимых
Бивисом и Баттхэдом. Сама перспектива уже пугает. Но не наше дело
отчаиваться. Наше дело - делать. Посему мы будем учить родной компьютер
писать по-русски.
Дело делать будем в консоли. Но для пущего удобства
понадобится широко известный в UNIX-среде файловый менеджер Midnight
Commander. К сожалению, на момент написания статьи он отсутствовал
на официальном скопище готовых пакетов для PC-BSD pbidir.com. Но этот пакет пока можно найти
по адресу http://pcbsd.fastbull.org/Billou/MidnightCommander4.6.1-PV.pbi.
Установите. Затем нам понадобится консоль. Для этого надо её вызвать.
Вызовите. Замечательно. Теперь превратитесь в хозяина компьютера. Это
делается командой su. Введите пароль суперпользователя. В
приглашении появился знак #, отражающий степень нашей
крутизны. Теперь (после установки Midnight Commander'а) дайте
команду mc. Коммандер запустится. Кто видел Нортон
Коммандер или ему подобные, тот знает, что делать дальше. А дальше мы
идём в каталог /etc/X11. Там есть файл XF86Config.
Наводимся на него. Жмём клавишу F4. Вуаля! Мы в редакторе! Мы можем
изменить нашу судьбу! Находим следующую секцию:
| код: |
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbModel" "microsoft"
Option "XkbLayout" "us"
EndSection
|
Нашли. Теперь отредактируйте её до подобного вида:
| код: |
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbModel" "microsoft"
Option "XkbLayout" "us,ru"
Option "XkbOptions"
"grp:ctrl_shift_toggle,grp:lwin_switch,grp_led:scroll"
Option "XkbVariant" ",winkeys"
EndSection
|
Сохраните файл. В KDE отключаем
переключение раскладок и XKB. Перезапустите систему. Готово.
Теперь мы имеем переключение русской и американской раскладок клавишами Ctrl-Shift.
Включение русской раскладки знаменует свечение индикатора Scroll
Lock на клавиатуре. Однако некоторые предпочитают вместо Виндоузной
раскладки русского языка так называемую "машинописную". Этим
пользователям необходимо заменить слово "winkeys" в предыдущем
примере на слово "typewriter" (без кавычек, что логично). Правда,
никсовое понимание "русской пишущей машинки" несколько отлично от
виндоузного, так что имеют место быть досадные несовпадения. А консоль,
Миднайт - уже ведь не страшно?
Задавшись вопросом.
Настоящим приключением является наше продвижение по миру
руссификации UNIX-like системы PC-BSD. И настоящим сюрпризом - попытка
создать на рабочем столе или где бы то ни было ещё файла с именем на
русском языке. При написании названия всё выглядит замечательно, но как
только мы пробуем это название утвердить (например, нажатием клавиши
Enter), происходит волшебная метаморфоза. Осмысленные слова превращаются
в скопище знаков вопроса. Почему это происходит? Может, дьявол пытается
запутать нас? Может, поклонники Ктулху из воскрестного клуба любителей
Лавкрафта оживили своего идола? Может, Марс уже атакует? Нам, по сути,
пока это не важно. Марс, не Марс, а видеть, что ожидает нас в дебрях
родной файловой системы - необходимо.
Но это лирика, а физика в том, что система до сих пор не
знает, кто перед ней. Вернее, знает только то, что "Вася" или "Петя". Но
то, что он русским владеет лучше, чем английским - не знает. Намекнем. А
ну-ка, рванули в консоль! Там представляемся суперпользователем (su,
не забывайте), и пишем следующее "pw usermod
<имя_пользователя> -L russian", где "имя_пользователя" -
имя пользователя. Теперь система знает, что мы находим русский текст
приятнее, нежели аглицкий. Но "знаки вопроса" пока остались. Переходим к
следующему пункту.
В той же консоли набираем "mc". Перед нами Midnight
Commander. Помните, мы всё ещё в режиме суперпользователя! Топаем в
корневой каталог, а оттуда в подкаталог /usr/home. Вы не
поверите, мы здесь живём. Ищем каталог, соответствующий имени нашего
пользователя. Вероятнее всего, он там один, сиротинушка. Если ещё не
забыли как, открываем во встроенном редакторе файл .login_conf.
Начиная со строки "#me:\" удаляем в начале последующих
строк символ решетки - т.н. знак комментария.
Получилось следующее:
| код: |
Section "InputDevice"
# $FreeBSD: src/share/skel/dot.login_conf,v 1.3 2001/06/10
17:08:53 ache Exp $
#
# see login.conf(5)
#
me:\
:charset=iso-8859-1:\
:lang=de_DE.ISO8859-1:
|
Приводим к виду:
| код: |
Section "InputDevice"
# $FreeBSD: src/share/skel/dot.login_conf,v 1.3 2001/06/10
17:08:53 ache Exp $
#
# see login.conf(5)
#
me:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:
|
Сохраняем файл. Переходим в каталог /etc и ищем
файл с тем же именем, что и у предыдущего, только без точки в начале
имени (login.conf). Почти сразу видна секция default:
| код: |
default:\
:passwd_format=md5:\
:copyright=/etc/COPYRIGHT:\
:charset=UTF-8:\
:welcome=/etc/motd:\
|
Напротив стороки ":charset=UTF-8:\" ставим знак решётки
"#". Получается следующее:
| код: |
:copyright=/etc/COPYRIGHT:\
# :charset=UTF-8:\
:welcome=/etc/motd:\
|
Сохраняем файл. Даём команду на перестройку базы данных: "cap_mkdb
/etc/login.conf". Перезагружаемся. Вновь созданные файлы и папки
будут радовать вас нормальным алфавитом, а не какой-то ущербностью из
26-и букв.
|