Шрифты для Common Desktop Environment (или: Как объединить ваши шрифты)
Автор: Грэхем Дженкинс (Graham Jenkins)
Перевод: Владимир Средних


Ещё одна новая оболочка?

На самом деле, нет. Common Desktop Environment (CDE) существует достаточно давно, чтобы являться ровесником кое-кого из вас. Она была разработана совместными усилиями IBM, Sun, HP и Novell для предоставления единого "вида и взаимодействия" пользователей с системой. (Прим.ред -- имеется ввиду тот факт, что "каждый кулик свой юникс славит" и чтобы привести к общему знаменателю внешний облик графической среды и была разработана CDE.) Решение оказалось настолько удачным, то CDE позаимствовали другие компании (например, Digital Equipment). Об этом вы можете узнать более подробно на сайте компании IBM (см. статью "IBM AIX: What is CDE?")..

[Снимок экрана: типичный экран CDE]

Первые версии KDE, кажется, были основаны на CDE, и более поздние выпуски XFce выглядели и действовали очень похоже на CDE. Однако основное различие между ними заключается в том, что и KDE и XFce -- это Open Source разработки.

DeskTop Terminal (dtterm)

Одним из наиболее используемых CDE-приложений, наверное, является терминал рабочего стола 'dtterm', который основан на 'xterm' с некоторыми расширениями в панели меню; внешним видом он не похож на 'gnome-terminal'. Кроме этого в составе CDE существуют утилиты для просмотра изображений, слежения за производительностью, чтения почты и многого другого.

Зачем мне это надо?

На работе мне приходится администрировать несколько серверов под управлением Solaris и HP-UX. Большая часть работы выполняется в NetBSD с использованием Xterminal. (Прим.ред -- судя по всему, это программа для удалённого доступа к X-серверу.) При подключении к Solaris работа ведётся в среде CDE. Временами приходится подключаться к Linux, при этом работая в GNOME. А бывает так (и довольно часто!), что я подключаюсь к необходимым мне серверам из дома, используя Linux с локальной установленной GNOME.


При этом важно понимать, где и как приходится работать; как только я запускаю одну из утилит CDE, например 'dtterm', то мой X-сервер начинает искать шрифты, специфичные для CDE. Оказывается, что многие утилиты тоже используют эти шрифты.

DeskTop Terminal without Font Support

В случае с 'dtterm', пытаясь выбрать шрифты необходимого размера, получаем список, содержащий 8 шрифтов и 7 из них невозможно найти. Конечно, возможно получить их, указав в Solaris или HP другой путь к шрифтам, которые используются для приложения 'dtterm'. Это можно сделать или для всей системы, или для конкретного пользователя; и тот и другой путь сложно назвать элегантным решением.

Для заставки, показываемой во время загрузки CDE, результат может быть ужасен: пользователь не сможет прочитать приглашение к началу сеанса или сообщение об ошибке! Новые версии Solaris и HP-UX обходят это попыткой добавить запись типа 'tcp/hpmachine:7100' в путь к шрифтам во время загрузки. Это прекрасно, если ваша политика безопасности не запрещает активацию службы шрифта на ваших Solaris и HP серверах.

Почему бы не использовать специальный сервер шрифтов?

Вы можете выделить несколько машин как серверы шрифтов для вашей сети. Это могут быть отдельно стоящие машины, или они могут одновременно использоваться несколькими службами (такими, как DHCP, NTP, и т.п.). Именно по такому пути пошли компании IBM, NCD и HP, создавая технологию 'тонких' X-терминалов.

Но есть несколько проблем. Во-первых, вы должны установить CDE-шрифты на сервере шрифтов; здесь могут быть некоторые проблемы авторского права, если Вы устанавливаете (например) HP CDE-шрифты на Linux.

На практике мы заметили, что X-сервер, который мы используем, кажется недостаточно умным, чтобы сообщить об отказе в случае разрыва связи с сервером. В этом случае пользователь внезапно обнаружит, что его экран пуст.

Если вы работаете из дома через модемное соединение в сети, в которой располагаются ваши шрифт-сервера, запуск 'dtterm' может занять некоторое время для подгрузки шрифтов.

Устанавливать на каждый X-сервер?

Это, конечно, возможно, и, если вас не волнуют вопросы авторского права, это решит большинство проблем, описанных выше. Но это требует дополнительно 10Mb места для каждой системы.

Есть другой путь!

Хорошие новости -- Вы не должны страдать бессонницей из-за проблем с авторским правом. И Вам не надо устанавливать себе странные шрифты.

Всё, что вам понадобится -- определить несколько свободно-доступных шрифтов, которые похожи на CDE-шрифты и создать один 'fonts.alias' файл. Поместите их в соответствующую директорию (например '/usr/X11R6/lib/X11/fonts/local') и запустите утилиту 'mkfontdir' в этой директории. Затем убедитесь, что имя этой директории включено в конфигурационный файл вашего шрифт-сервера (например '/usr/X11R6/lib/X11/fs/config'). Если в вашей версии Linux (или NetBSD, или FreeBSD ..) нет такого термина, как 'unix/:7100' в конфигурационном файле 'XF86Config' (или похожего) вашего сервера, вы должны указать имя выбранной директории со шрифтами в этом конфигурационном файле.

Важные детали

Вот как выглядит файл 'fonts.alias'. Для простоты, ниже я показал только первые два и последний псевдоним, и разделил каждую строку пробелом между названием псевдонима, и соответствующим ему реальным шрифтом. Не нужно быть большим учёным, чтобы создать этот файл, хотя для его создания я использовал несколько простых скриптов. Это был только вопрос подбора для каждого псевдонима шрифта, похожего и соответствующего ему по размерам.

 ! XFree86-cdefonts-1.0-2
! Font Aliases for Common Desktop Environment using XFree86 fonts.
! Graham Jenkins <grahjenk@au1.ibm.com> October 2001.
-dt-application-bold-i-normal-serif-11-80-100-100-m-60-iso8859-1
"-adobe-courier-bold-o-normal--11-80-100-100-m-60-iso8859-1"
-dt-application-bold-i-normal-serif-14-100-100-100-m-90-iso8859-1
"-adobe-courier-bold-o-normal--14-100-100-100-m-90-iso8859-1"
...
"-dt-interface user-medium-r-normal-xxl serif-21-210-72-72-m-140-hp-roman8"
"-b&h-lucidatypewriter-medium-r-normal-sans-24-240-75-75-m-140-iso8859-1"

Читайте по губам

Читая эти строки, вы, возможно, задаётесь вопросом -- "Зачем мне это надо?". Думаю, что 80 процентов из вас никогда не использовали CDE и вряд ли будут использовать его в будущем. Но я могу гарантировать то, что большинство из вас запустит однажды приложение, и удивится тому, что шрифты не отображаются или у них неправильный размер. Надеюсь, в тот момент, когда это случится, вы вспомните то, что прочитали здесь и создадите соответствующий 'fonts.alias' файл как было описано выше.

Грэхем Дженкинс (Graham Jenkins)

Грэхем -- специалист по Unix в Австралийском представительстве IBM Global Services. Он живет в Мельбурне и занимается установкой и сопровождением различных проприетарных и открытых систем на разных аппаратных платформах.


Copyright (с) 2003, Graham Jenkins. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 88 of Linux Gazette, March 2003


Вернуться на главную страницу