From: "Andrew S. Bogatyirev (Soft Eng)" (abs@opentech.olvit.ru)


==========
	Данный документ описывает последовательность
	действий системного администратора по установке
	пакета русификации Open Windows для Solaris 2.3 и выше,
	а также функциональные возможности пакета.

	После инсталляции пакета вы можете прочесть эту инструкцию по команде
		man cyrillic

	Пакет поддерживает следующие кодировки:

	o КОИ-8 (RFC-1489) -    которая используется в электронной почте
		(ISO 6937-8)    сети RelCom, а также исторически содержится
		(ГОСТ 19768-74) в ряде русскоязычных программ для UNIX,
		(IBM CP-878)    происходящих из фирмы "Демос".
				Недостаток этой кодировки тот, что буквы
				расположены не в алфавитном порядке
				(что не мешает авторам пакета использовать
				именно эту кодировку :).
		КОИ = Код Обмена Информацией.

		Смотри:
			xv $OPENWINHOME/share/images/cyr/koi8-r.gif

	o ISO 8859-5       -    американский стандарт на русские буквы,
				принятый без какого-либо согласования
				с русскими программистами. Зато это стандарт.

		Смотри:
			xfd -fn timescyr-20

	o Microsoft 1251   -    кодировка, которая используется в Microsoft Windows.
				Де-факто стандарт на русскую кодировку в мире PC.
				Известна также под названием Cyrillic ANSI
				и IBM CP-1251 (Code Page 1251)
				(на самом деле это объединённый корпоративный стандарт
				IBM и Microsoft).

	o Упоминается также кодировка IBM CP-866, известная как
	  "альтернативная кодировка для MS DOS",
	  однако шрифты и раскладка клавиатуры для неё не поддерживаются.

ВНИМАНИЕ!
	Данный пакет НЕ работает с Solaris 1.x, Solaris 2.0, 2.1, 2.2

ВНИМАНИЕ!
	ПОЛНЫЙ набор Adobe фонтов и полный набор всех перечисленных
	программ может быть получен только на специальных условиях.
	Обычный дистрибутив содержит сильно урезанный набор Adobe фонтов
	и программ.
	Автор также соласен выдать бесплатно исходные тексты отдельных утилит.

АДРЕС ДЛЯ КОНТАКТОВ:
	abs@openwin.msk.su    (Андрей Сергеевич Богатырёв - автор)
	balter@lvs.msk.su     (Борис Альтерман            - sales)
	ssc@decart.npi.msu.su (Игорь Лукьянов             - sales)

ОТВЕТСТВЕННОСТЬ:
	Автор не несёт ответственности за работоспособность поставляемого пакета
	в неоттестированных с согласия и с участием автора приложениях.

	Пользователь имеет право тестировать пакет на применимость в
	избранной им прикладной системе, и в случае неудачи ПРОСИТЬ
	автора о достижении совместимости.
	Пользователь не имеет права ТРЕБОВАТЬ этого и предъявлять претензии,
	поскольку:
	- пакет тестирован для Solaris и в нём гарантированно работает;
	- автор не имеет возможности (и желания) тестировать все на свете
	  прикладные системы сам;
	- автор не может нести ответственности за ошибки в чужих системах;
	То есть автор не отвечает за использование пакета или его компонент
	для целей, не предусмотренных при его разработке, и не оговоренных
	специально с автором. Дополнительные возможности или область применения
	могут:
	- быть инициативой пользователя;
	- автор согласен оказать необходимые консультации и дать советы,
	  а также оказать посильную помощь;
	- но не гарантирует этого и не отвечает за успех или неудачу
	  данного мероприятия.


	- Одна лицензия даёт вам право установки пакета
		- фонтов:       на ОДНУ машину.
		- MOWcyrKit:    на все машины в одной локальной сети.

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

	- Шрифты и ряд программ представляют собой собственность их авторов
	  и НЕ МОГУТ раздаваться свободно.
	  Растровые шрифты разработаны Чуфаровским (ударение на 'о').
	  Масштабируемые шрифты разработаны фирмой "Параграф".

	- Ряд программ поставляется в исходных текстах.
	  Вы имеете право модифицировать и улучшать их по своему усмотрению,
	  однако автор выдвигает УСЛОВИЕ: вы должны сообщить ему о том,
	  что вы сделали (а ещё лучше - и как сделали), дабы автор
	  смог внести улучшения в оригинал и тем облагодетельствовать
	  ВСЕХ пользователей этого пакета.

	- Обновлённые версии пакета прежние его покупатели могут получить
	  бесплатно (но на свой носитель). Консультации - бесплатно.
	  Пожелания принимаются с интересом (но нет гарантии, что они будут
	  реализованы НЕМЕДЛЕННО).

				"Я делал этот пакет не для продажи,
				 а для себя. Ежедневно им пользуюсь."

				Успехов!
				Андрей Богатырёв.

===========================================================================


	Пардон.

	Но кодировки КОИ-8 и ISO-8859-5 в области псевдографики
	выполнены не по стандарту.
	Масса неудачных решений принимается по историческим причинам:
	сначала "так было сделано", а после - лень переделывать.

	- Причина историческая: такие фонты и таблицы перекодировки были
	  сделаны ещё до того, как я принял в свои руки весь этот проект.
	  Плюс к тому: всё это было готово ещё до того, как появился RFC-1489.

	- В ISO-8859-5 вообще нет псевдографики.
	  Кроме того, я не расчитывал на Украину и Белоруссию.

	- В PostScript фонтах псевдографики также просто нет.

	- В Relcom новости из FIDO гейтуются с PCшной псевдографикой.
	  Фонты, используемые у нас, сохраняют эту псевдографику,
	  тогда как RFC-1489 портит её.
	  Таким образом, наша таблица перекодировки КОИ-8  <==> CP-866
	  соответствует той, которая стоит на шлюзе Relcom <==> Fido,
	  хотя и не соответствует стандарту.

	- Порядок псевдографических символов в RFC-1489 продуман плохо,
	  точнее говоря, не продуман вовсе. Он не опирается на CP-866,
	  вводит свой собственный порядок, который, однако, весьма плох.
	  Этот порядок соответствует Unicode, и, как обычно, придуман
	  буржуями, которым было лень думать - лишь бы как.

	  Мои соображения о том, как должна была бы выглядеть таблица
	  псевдографики, вы можете увидеть на картинках

		xv $OPENWINHOME/share/images/cyr/idea1.gif
		xv $OPENWINHOME/share/images/cyr/idea2.gif

	- "koi8-r" (RFC-1700) есть неудачное название для codeset,
	  поскольку в Solaris оконная система не в состоянии использовать такие имена.
	  В паре

		...-encoding-registry

	  она требует, чтобы registry было цифрой,
	  в то время как в "koi8-r" буква "r" - это буква, а не цифра!
	  Иначе же этот фонт отвергается.

Если всё это однажды вызовет у кого-нибудь неудобства,
я готов изменить порядок букв в фонтах
и таблицы перекодировки одного codeset в другой.
Изменению подвергнутся:

	- раскладка символов в растровых и Type1 фонтах;

	- таблицы перекодировки из одной кодировки в другую
	  и все программы (make'em), пользующиеся этими таблицами
	  (все, кто создаёт и использует ctables.h);

	- раскладка псевдографики в termcap и terminfo;

	- возможны правки в locale;

	- смена спецсимволов (вроде Номер и Параграф) в groff
	  (так как в фонтах они могут сдвинуться на иные позиции);

	- естественно, произойдёт правка файлов данных,
	  использующих старую раскладку псевдографики;

	- русский NeWSprint kit?

===========================================================================

=================
    Предисловие.
    ------------

	o Дистрибутив содержит несколько пакетов:
		MOWcyrFnt - набор русских растровых шрифтов         1.6 МБ
		MOWcyrKit - пакет руссификации                      3.6 МБ
		MOWcyrMsg - русские сообщения для CDE               0.7 МБ
		MOWcyrPS  - набор русских масштабируемых шрифтов   24.5 МБ
		MOWlocal  - набор дополнительных программ          31.8 МБ
		MNPcyrKit - пакет кириллизации NeWSprint 2.5        0.3 МБ
		GNUroff   - GNU roff (система подготовки текстов)   7.5 МБ
		GNUrofCyr - её кириллизация                        11.6 МБ

	Разделение сделано со следующей целью: пакет со шрифтами довольно велик
	в объёме. Вы можете установить его на ОДИН некий NFS сервер,
	и импортировать его на клиентские машины через сеть.

	Установка пакета MOWcyrKit автоматически экспортирует каталог /usr/openwin.
	На клиентских машинах вы должны поместить в /etc/vfstab строки для монтирования
	через сеть каталогов с сервера

		/usr/openwin/lib/X11/fonts/cyrill
		/usr/openwin/lib/X11/fonts/cyrill-Type1

	к аналогичным каталогам на вашей клиентской машине.
	Ещё лучше использовать для этого automounter.

    Процедура.
    ----------

	На вашем CD ROMе находятся три файла,
	затрагивающие инсталляцию:

		cyrill.img      - кириллизация
		gnukit.img      - gcc
		install.sh      - инсталляционный скрипт

	Инсталляция должна проводиться следующим образом:

	1)      Должны быть уже установлены:
		a) Solaris 2.x          (x >= 3)
		b) CDE (Common Desktop Environment)
		c) Networker (Solstice Backup)     (если требуется)
		d) NeWSprint 2.5                   (если требуется)

		Примечание: если вы однажды переинсталлируете CDE,
		вам необходимо переинсталлировать также пакет MOWcyrKit.
	2)
		pkgadd -d cyrill.img MOWcyrFnt
		pkgadd -d cyrill.img MOWcyrKit
		pkgadd -d cyrill.img MOWcyrMsg
		pkgadd -d cyrill.img MOWcyrPS MOWlocal
		pkgadd -d cyrill.img GNUroff
		pkgadd -d cyrill.img GNUrofCyr

		if [ -d /opt/NeWSprint ] ; then
		     pkgadd -d cyrill.img MNPcyrKit
		fi
		pkgadd -d gnukit.img GNUkit

	Эти команды как раз и помещены в файл install.sh
	и могут быть выполнены при помощи

		sh install.sh

	Указанный порядок инсталляции пакетов СУЩЕСТВЕНЕН!

	На вопросы инсталлятора следует отвечать:

	1) На вопрос об используемой кодировке ответьте
	   - koi      для КОИ-8         (RFC-1489)
	   - iso      для ISO 8859-5
	   - mswcyr   для кодировки ANSI Cyrillic, используемой в Microsoft Windows
					(Microsoft 1251).

	   Кодировка Microsoft 866 используется под именем altdos.

	   Будут проинсталлированы необходимые файлы для всех кодировок,
	   но изначальные настройки будут сделаны для указанной вами.

	2) На запрос о полном имени вашей организации ответьте строкой,
	   которая должна будет появляться в поле
	   Organization: <строка>
	   ваших писем в электронной почте.
	   Чтобы не отвечать на этот вопрос, можно поместить эту строку
	   в файл /etc/organization

	3) На вопрос "запускать ли XDM?"
	   Отвечайте "yes" только если ваша рабочая станция имеет графическую
	   консоль. Отвечайте "no", если у вас сервер без консоли или с
	   зелёным терминалом.

	   Запуск XDM при загрузке системы происходит в том случае,
	   если имеется файл /etc/xdm.run (пустой).

	4) На запрос магического ключа ответьте строкой,
	   которую вам сообщит продавец данного пакета.

	*) На остальные вопросы отвечайте       y (yes).

Пример протокола постановки пакета.
-----------------------------------
Обратите внимание на порядок:
MOWcyrFnt MOWcyrKit MOWcyrMsg MOWcyrPS MOWlocal GNUroff GNUrofCyr

Ответы пользователя обозначены _текст_

	# sh install.sh

	Processing package instance  from 

	OpenWindows Bitmap Cyrillic Fonts
	(SPARC) Version 2.3 for X11r5
	----------------------------------------------------------------
	|                                                              |
	| Copyright (C) 1993,94,95 George Akimoff, Andrew Bogatyirev   |
	| All Rights Reserved.                                         |
	|                                                              |
	| Contains copyrighted software licensed from                  |
	|     Moscow Center for SPARC-technology and                   |
	|     Open Technologies, Ltd.                                  |
	| Unauthorized duplication is strictly prohibited.             |
	|                                                              |
	| Restricted rights of distribution are given to               |
	|     LVS Corporation  and                                     |
	|     DEC Art                                                  |
	|                                                              |
	| Disassembly, decompilation, or other means of reducing       |
	| the object code to human readable form                       |
	| is prohibited by the license agreement under which           |
	| this code is provided to the user or company                 |
	| in possession of this copy.                                  |
	|                                                              |
	----------------------------------------------------------------
	## Processing package information.
	## Processing system information.
	## Verifying disk space requirements.
	## Checking for conflicts with packages already installed.
	## Checking for setuid/setgid programs.

	Installing OpenWindows Bitmap Cyrillic Fonts as 

	## Installing part 1 of 1.
	/usr/openwin/lib/X11/fonts/cyrill/crc5-08.pcf.Z
		................
		................
		................
	/usr/openwin/lib/X11/fonts/cyrill/sscWi-24.pcf.Z
	[ verifying class  ]

	Installation of  was successful.

	Processing package instance  from 

	OpenWindows Cyrillic Kit
	(SPARC) Version 2.4.2 for X11r5
	Using  as the package base directory.
		................
		................
		................
	Which codeset will you use: KOI-8, ISO 8859-5, ANSI Cyrillic (MS Windows) ?
	Please type koi or iso [koi|iso|mswcyr]: _koi_

	Please, enter default timezone or just hit 
	[Russia/Moscow (Samara,Novosibirsk)]: _ENTER_
	Russia/Moscow is to be used in /etc/timezone and /etc/default/init


	Please, enter Full name of your organization (for Email)
	> _Open Technologies, Ltd._
	Organization:  Open Technologies, Ltd.

	Please, enter your maildomain (for NIS/Email), such as hostname.msk.su
	[] > _openwin.msk.su_
	Maildomain: openwin.msk.su

	Do you want to start X Display Manager ? [yes] _yes_
	XDM start enabled

	Please type your magic key> _

	## Processing package information.
	## Processing system information.
	   25 package pathnames are already properly installed.
	## Verifying package dependencies.
	## Verifying disk space requirements.
	## Checking for conflicts with packages already installed.

	The following files are already installed on the system and are being
	used by another package:
		/usr/openwin/lib/Xinitrc

	Do you want to install these conflicting files [y,n,?,q] _y_
	## Checking for setuid/setgid programs.

	This package contains scripts which will be executed with super-user
	permission during the process of installing this package.

	Do you want to continue with the installation of this package [y,n,?] _y_

	Installing OpenWindows Cyrillic Kit as 

	## Executing preinstall script.
		................
		................
		................

		To use Cyrillization You have to

		1) add
			setenv LANG ru.koi_8                    (RFC-1489)
		     OR setenv LANG ru.iso_8859_5
		     OR setenv LANG ru.mswcyr                   (Microsoft 1251)

		   into your .cshrc file (or .login)

		2) check for
			/etc/skel/local.cshrc   -->  $HOME/.cshrc
			/etc/skel/local.login   -->  $HOME/.login
			/etc/skel/local.profile -->  $HOME/.profile

		   and copy them into your $HOME if needed.

		3) Then you have to exit OpenWindows
		   and re-start it again.

		4) cd /etc/skel  and read README* files

		*) You can switch between RUS/LAT by pressing of  key.
							      or  key.

				On Sun X-terminal use             key.



	Installation of  was successful.

	Processing package instance  from 
		................
		................
		................
	Installation of  was successful.

	Processing package instance  from 
		................
		................
		................
	Do you want to start WWW (HTTP) server ? [no] _no_
	Do not start WWW server
		................
		................
	The following files are already installed on the system and are being
	used by another package:
		/usr/local/man/man3 

	Do you want to install these conflicting files [y,n,?,q] _y_
	## Checking for setuid/setgid programs.

	The following files are being installed with setuid and/or setgid
	permissions or are overwriting files which are currently
	setuid/setgid:
		/usr/bin/rbmail 
		/usr/local/bin/le 
		/usr/local/bin/traceroute 
		/usr/local/bin/xwall 
		/usr/local/etc/httpd/httpd 

	Do you want to install these setuid/setgid files [y,n,?,q] _y_

	This package contains scripts which will be executed with super-user
	permission during the process of installing this package.

	Do you want to continue with the installation of this package [y,n,?] _y_

	Installing Set of local programs and sources (includes WWW) as 
		................
		................
		................
	Installation of  was successful.

	Processing package instance  from 

	GNU groff - text to PostScript formatting utility
	(SPARC) 1.09
	-------------------------------------------
	| Copyright (C)                           |
	|                                         |
	|    jjc@jclark.com (James Clark)         |
	|                                         |
	| and Free Software Foundation            |
	-------------------------------------------
	## Processing package information.
	## Processing system information.
	   2 package pathnames are already properly installed.
	## Verifying package dependencies.
	## Verifying disk space requirements.
	## Checking for conflicts with packages already installed.

	The following files are already installed on the system and are being
	used by another package:
		/usr/local/man/man1 

	Do you want to install these conflicting files [y,n,?,q] _y_
	## Checking for setuid/setgid programs.

	Installing GNU groff - text to PostScript formatting utility as 
		................
		................
		................
	Installation of  was successful.

	Processing package instance  from 

	GNU groff Cyrillization
	(SPARC) 1
		................
		................
	The following files are already installed on the system and are being
	used by another package:
		/usr/local/lib/groff/tmac/tmac.gs
		/usr/local/lib/groff/tmac/tmac.pspic
		/usr/local/lib/groff/tmac/troffrc

	Do you want to install these conflicting files [y,n,?,q] _y_
	## Checking for setuid/setgid programs.

	Installing GNU groff Cyrillization as 
		................
		................
		................
	Installation of  was successful.

	Processing package instance  from 
		................
		................
	This package contains scripts which will be executed with super-user
	permission during the process of installing this package.

	Do you want to continue with the installation of this package [y,n,?] _y_

	Installing NeWSprint 2.5 Cyrillic Kit -- KOI-8 codeset as 
		................
		................
	Installation of  was successful.

	Processing package instance  from 
		................
		................
		................
	Installation of  was successful.
	you have mail
	#

	РЕКОМЕНДУЕТСЯ ПЕРЕЗАГРУЗИТЬ СИСТЕМУ В ЭТОМ МЕСТЕ
	  и выставить правильное время командой date.

Удаление пакета.
----------------
	В случае нужды вы можете удалить пакет русификации, выполнив команды

		pkgrm MOWlocal MOWcyrPS MOWcyrMsg MOWcyrKit MOWcyrFnt

    Установили. Что дальше?

----------------------- После того, как установка выполнена, вы должны для каждого пользователя, который будет использовать русский язык (пусть, например, это пользователь user). Скопировать .login .cshrc .profile из /etc/skel в домашний каталог пользователя user (~user), команды ниже написаны для csh cp /etc/skel/local.login ~user/.login cp /etc/skel/local.cshrc ~user/.cshrc cp /etc/skel/local.profile ~user/.profile Если пользователь уже имеет один из этих файлов, то имеет смысл модифицировать его существующие файлы, а не копировать предлагаемые нами. Именно такое копирование осуществляет командный файл /etc/tune_lang (описание приводится ниже). Ключевыми в этих файлах являются строки: В .login setenv LANG ru.koi_8 В .profile LANG=ru.koi_8; export LANG задающие использование русского языка в кодировке КОИ-8. setenv LANG ru.iso_8859_5 для ISO 8859-5 setenv LANG ru.mswcyr для CP1251 setenv LANG ru.altdos для CP866 И строка stty cs8 -istrip erase ^H определяющая восьмибитовый ввод/вывод.

    Состав пакета.

============== Пакет предоставляет вам: 1) Русскую карту клавиатуры. 2) Русские шрифты для X Window System. 3) Ресурсы системы X Window, приспособленные для использования русского языка. 4) locale для русского языка. 5) Включает использование X Display Manager.

    Настройка языка.

================ Для быстрой смены используемой кодировки предлагается командный файл /etc/tune_lang который может использоваться как tune_lang koi список_имен_пользователей или tune_lang iso список_имен_пользователей tune_lang mswcyr список_имен_пользователей Пользователь root в списке задаёт язык "по умолчанию" для всей системы. Не требуется переинсталляция пакета для смены языка. Как правило достаточно просто задания setenv LANG ru.<правильный codeset> в $HOME/.login и LANG=ru.<правильный codeset>; export LANG в $HOME/.profile Частичная отмена локализации. ============================= Иногда бывает необходимо, чтобы дата выдавалась на английском языке. Для этого следует задать переменную окружения setenv LC_TIME C или в файле /etc/default/init LC_TIME=C

    Техническое описание компонент.

===============================

    Русская карта клавиатуры.

------------------------- Существуют ДВЕ схемы переключения русского языка при вводе. Учтите, что в режиме русской клавиатуры, вы не можете вводить управляющие коды вроде CTRL/C или CTRL/U, чтобы их ввести вы ДОЛЖНЫ сначала переключиться в режим латинской клавиатуры. Увы, таково устройство стандартной X Window System. Правка библиотеки Xlib может помочь исправить эту проблему, место известно, но... лучше не нарушать целостность фирменного кода. Желающим автор может подсказать - что надо сделать.

    Схема первая: xmodmap

~~~~~~~~~~~~~~~~~~~~~ Первая схема использует команду xmodmap и файлы $OPENWINHOME/lib/locale/$LANG/Xmodmaprc Она является более экономичной, чем наша вторая схема, ибо карта клавиатуры ОДИН раз загружается в X-server. Обычным пользователям рекомендуется использовать именно эту схему. Зато вторая схема обладает большей общностью. Пользователь может ПРИНУДИТЕЛЬНО использовать схему с xmodmap, создав в домашнем каталоге пустой файл $HOME/.UseXmodmap В этой схеме: ********************************************************* * * * ПЕРЕКЛЮЧЕНИЕ РУССКОГО/ЛАТИНСКОГО ШРИФТА НА ВВОДЕ * * ПРОИЗВОДИТСЯ ПРИ ПОМОЩИ КЛАВИШИ * * * * * * * * (справа от клавиши ПРОБЕЛ) * * * * или при помощи * * * ********************************************************* При переходе в русский режим загорается лампочка на клавише ********************************************************* * На Sun X terminal-ах (вроде SPARCclassic X) * * переключение РУС/ЛАТ производится клавишей * ********************************************************* Карты клавиатуры описаны в файлах $OPENWINHOME/lib/locale/ru.koi_8/Xmodmaprc $OPENWINHOME/lib/locale/ru.iso_8859_5/Xmodmaprc $OPENWINHOME/lib/locale/ru.mswcyr/Xmodmaprc Перераскладка русских клавиш основана на следующей возможности X Window: - функция XLookupString() поддерживает альтернативную таблицу кодов. - Для загрузки этой таблицы применяется команда xmodmap, загружающая четырёхколоночную таблицу: первые две колонки задают первую группу клавиш, вторые две - вторую. В каждой группе первый столбец задаёт код, выдаваемый клавишей при НЕнажатой клавише , второй столбец - при нажатой. ! Key ! KEYBOARD GROUP 0 ! KEYBOARD GROUP 1 ! ! Normal Shift ! Normal Shift !------------------------------------------------------------------------ keysym a = a A 0xe4 0xc4 keysym s = s S 0xeb 0xcb ...... - Для переключения групп используется модификатор mod2, склееный с единственной клавишей, фиксирующей своё состояние - модификатором lock. Модификатор lock исходно соединён с клавишей Caps_Lock и фиксирует Shift. Его использование в данной функции отменяется, mod2 и lock назначаются на клавишу Multi_key (она же Compose). Смотри man xmodmap и раздел H.3.2.7 в томе 1 серии книг O'Reilly по X Window. !---------------------------------------------------------------------- ! Use COMPOSE and CapsLock keys as RUS/LAT switch keys. !---------------------------------------------------------------------- remove lock = Caps_Lock add mod2 = Multi_key add mod2 = Caps_Lock add lock = Multi_key !---------------------------------------------------------------------- ! Use COMPOSE and NumLock keys as RUS/LAT switch keys. !---------------------------------------------------------------------- !remove lock = Num_Lock !add mod2 = Multi_key !add mod2 = Num_Lock !add lock = Multi_key После этого русские буквы включаются/выключаются либо клавишей Compose, либо CapsLock. Как можно видеть, имеется закомментированный второй вариант - переключение РУС/ЛАТ по NumLock. При этом в латинском регистре продолжает работать CapsLock - клавиша для фиксации больших букв. Чтобы выбрать эту версию, следует закомментировать восклицательными знаками первый блок и раскомментировать второй. Это файл /usr/openwin/lib/Xmodmaprc.X-sun Попытка использовать для этой цели предписанную клавишу AltGraph (Mode_switch) к сожалению приводит к зависанию оконной системы при работе МЫШЬЮ, когда включён русский регистр. Пока мышь не трогаем - всё отлично. Есть подозрение, что это поведение не X11 server а OpenLook Window Manager. К сожалению, X имеет только ОДНУ клавишу, помнящую своё состояние: единственный модификатор Lock. Поэтому его использование в качестве переключателя РУС/LAT приводит к потере клавиши фиксации верхнего регистра (CapsLock): её технически невозможно иметь, не модифицируя X Window System в сторону расширения. Новая карта клавиатуры может быть просмотрена командами xmodmap xmodmap -pk

    Схема вторая: монитор ввода xCyrInput

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ В этой схеме переключение кодовых таблиц осуществляет специальная программа - xCyrInput. При каждом (увы) нажатии переключательной клавиши она перезагружает карту клавиатуры в X-server. Это более накладно, но зато: - вы можете выбрать клавишу переключения по своему вкусу (в том числе Shift_L+Shift_R). Переключение РУС/ЛАТ изначально подключено к кнопке Mode_switch, которая на Sun-овских машинах совпадает с AltGraph (в нижнем правом углу). Её нажатие отображается светодиодом на кнопке Compose. - можно держать на экране несколько программ, использующих разные кодовые таблицы ОДНОВРЕМЕННО. - работает клавиша Pseudo CapsLock (на Sun это Caps_Lock <или по желанию Meta_R - правая клавиша с ромбом>), которая позволяет фиксировать верхний регистр в том числе и русских букв. Shift при нажатом PseudoLock даёт маленькие буквы. Нажата ли эта клавиша - отображается светодиодом на ScrollLock и буквой L в окне "модификаторы". - эта программа также отслеживает активность пользователя, и после долгой паузы (нет движений мыши или клавиатуры) запускает программу запирания экрана. ***************************************************************************** * ПРОГРАММА НАПИСАНА ПО МОТИВАМ И С ИСПОЛЬЗОВАНИЕМ ИСХОДНЫХ ТЕКСТОВ * * * * xrus-1.3.4 * * * * Александра Лукьянова * * lav@yars.free.net (Alexander V. Lukyanov) * * * * ftp://ftp.relcom.ru/x11/cyrillic/xrus-1.3.4.tar.gz * * * * РАСПРОСТРАНЯЕТСЯ СВОБОДНО * ***************************************************************************** Автор данной версии (abs@openwin.msk.su - Андрей Богатырёв) выражает глубочайшую признательность А.Лукьянову за плодотворную идею. Исходные тексты программы находятся в /usr/local/src/xCyrInput Использование программы: ------------------------ Основная идея работы этой программы - перехват и отслеживание нажатий ВСЕХ клавиш на клавиатуре. При этом используется та особенность X Window System, что события от окна могут посылаться НЕСКОЛЬКИМ программам одновременно, причем каждой программе - свои события (заказанные ею). Вторая используемая особенность - то, что клиентская программа может заказать получение событий от ЛЮБОГО окна на экране, не только от своего. Таким образом мы можем отслеживать и нажатие клавиш над ЧУЖИМИ окнами. Переключение РУС/ЛАТ изначально подключено к кнопке Mode_switch, которая на Sun-овских машинах совпадает с AltGraph (в нижнем правом углу). Переключение происходит также при нажатии мыши над графической кнопкой РУССКИЙ/LATIN в верхнем правом углу экрана (правая кнопка). Среднее меню позволяет "на лету" менять кодовую таблицу. При нажатии Ctrl программа временно переключается в латинский режим, чтобы правильно отрабатывлись Ctrl/C и Ctrl/U. Нажатие ПРАВОЙ кнопки мыши над окном проявляет меню, в котором содержится строчка "Properties...". Выбор этой строчки приводит к проявке диалога, в котором вы можете настроить очень много разнообразных возможностей, в том числе раскладку клавиш на клавиатуре. Смотрим на Properties: DiskCheckPath - программа следит за свободным местом в нескольких каталогах и предупреждает вас о его исчерпании. Список каталогов - в этом поле, через двоеточие. В окошке в правом верхнем углу экрана отображается количество свободного места, оставшееся в ПЕРВОМ в списке каталоге. Application Codesets Pattern List - программа позволяет ОДНОВРЕМЕННО держать на экране несколько программ-клиентов, использующих РАЗНЫЕ кодовые таблицы. При этом монитор автоматически переключает кодовые таблицы в зависимости от имени программы, класса программы, имени окна, argv[0]. Класс программы можно узнать командой xlsclients -l Список соответствия оформляется в виде шаблон_имени1=имя_таблицы1:шаблон_имени2=имя_таблицы2:... Шаблон имени пишется в силе регулярного выражения Шелл. Пример: шаблон: *866*=altdos Запуск программы: $ LANG=ru.altdos cxterm -T x866 -fn crcA-12 -e /bin/sh & Теперь перемещение фокуса клавиатуры в это окно будет вызывать переключение клавиатуры на 866 кодовую таблицу. Save - сохраняет ресурсы в файл $HOME/.Xdefaults Минусы подхода, использованного в данной программе: --------------------------------------------------- Высокая реактивность на медленных машинах и при большом числе клиентских программ, ибо 1) Каждое переключение - это загрузка 4х колоночной таблицы по 132 кнопки (посылка такого пакета по сети) 2) После этого КАЖДЫЙ КЛИЕНТ делает по MappingNotify event вызов XRefreshKeyboardMapping() и читает такой же пакет с сервера. Необходима библиотека /usr/dt/lib/libDtSvc.so.1 из CDE, без нее не работает. Схема третья: ~~~~~~~~~~~~~ Одновременное использование обеих схем. Можно одновременно использовать оба метода переключения РУС/ЛАТ. Для этого надо: - создать пустой файл $HOME/.UseXmodmap - под CDE не убивать xCyrInput - под Open Look либо запускать его вручную, либо занести команду запуска в файл $HOME/.openwin-init Запуск программы xCyrInput вручную: 1) переключить клавиатуру в ЛАТИНСКИЙ режим и убедиться в этом, попробовав набрать пару-другую букв. 2) в окне terminal (xterm, cxterm) набрать команду xCyrInput -daemon

    Русские фонты.

-------------- Основные фонты: гарнитура начертание bitmap PostScript ========================================================== Courier Roman crc CourierC Bold Italic BoldItalic Helvetica Roman ssc PragmaticaC Bold Oblique BoldOblique Times Roman smc NewtonC Bold Italic BoldItalic Каталоги, где они расположены: $OPENWINHOME/lib/X11/fonts/cyrill - растровые $OPENWINHOME/lib/X11/fonts/cyrill-Type1 - масштабируемые Имена этих каталогов записаны в столбик в файлах $OPENWINHOME/lib/locale/C/OWfontpath $OPENWINHOME/lib/locale/$LANG/OWfontpath откуда скрипты Xinitrc и StartOW их и берут. Имена растровых фонтов сконструированы следующим образом: xxxT-NN xxxTi-NN xxxTb-NN где xxx: crc - courier (CouRier Cyrillic) smc - serif (Serif Monospaced Cyrillic) ssc - sans-serif (Sans Serif Cyrillic) где T: W - шрифты в кодировке CP-1251 для MS Windows. A - шрифты в кодировке CP-866 для MS DOS. K - шрифты в кодировке КОИ-8. 5 - шрифты в кодировке ISO 8859/5. где последняя буква: без - roman, прямой обычный шрифт. i - italic, курсив. b - bold, жирный шрифт. где NN: размер шрифта в точках: 08, 10, 12, 14, 18, 24 Примеры: smcW-08 sscKb-24 XLFD имена (X logical font definition): --------------------------------------- -chu-crcT-medium-r-normal--13-80-96-96-m-70-koi-8 sscT bold o 15-100 90 iso8859-5 smcT 16-120 90 ibm-1251 19-140 120 24-180 170 36-240 220 Для фонтов размеров 80 и 100 есть только версия -medium-r- Для фонтов размеров 120, 140, 180, 240 есть версии -bold-r- и -medium-o- (italic). !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! В файлах ресурсов рекомендуется использовать короткие имена, !!! !!! поскольку XLFD имена могут измениться в следующих версиях. !!! !!! (такое уже было) !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Соответствие растровых шрифтов CDE фонтам.

------------------------------------------ CDE size Chu --------------------------------------------- 1) xxs extra-extra small -нет- 2) xs extra small -08 default 3) s small -10 4) m medium -12 5) l large -14 6) xl extra large -18 7) xxl extra-extra large -24 Проверьте шрифты. ----------------- Удостоверьтесь, что имена каталогов с русскими шрифтами попали в FONT PATH, для чего наберите команду xset -q и убедитесь в наличии имён каталогов /usr/openwin/lib/X11/fonts/cyrill и /usr/openwin/lib/X11/fonts/cyrill-Type1 Для разовой интерактивной смены фонта вы можете использовать команду xrdb (X resources database manager): % xrdb Font.Name: crcK-24 ^D <-- CTRL/D % cxterm & или указать непосредственно команде, какой фонт ей следует использовать: % xterm -fn crcK-24 & Список доступных фонтов и их кратких имён можно получить командой xlsfonts Просмотреть кодовые таблицы - увидеть порядок букв в кодировках - позволяют команды xfd -fn crcK-12 & xfd -fn crc5-12 & xfd -fn crcW-12 &

    Файлы ресурсов.

--------------- То, что программы должны использовать именно русские фонты, задается в системном файле ресурсов $OPENWINHOME/lib/locale/ru.koi_8/Xdefaults $OPENWINHOME/lib/locale/ru.iso_8859_5/Xdefaults $OPENWINHOME/lib/locale/ru.mswcyr/Xdefaults для CDE /etc/dt/config/ru.koi_8/sys.resources /etc/dt/config/ru.iso_8859_5/sys.resources /etc/dt/config/ru.mswcyr/sys.resources Файл ресурсов состоит из строк вида: КлассПрограммы*имяРесурса: значениеРесурса *имяРесурса: значениеРесурса во втором случае ресурс применяется ко ВСЕМ программам. Вот что там написано для КОИ-8: ! Added by Cyrillic Package ! Define Cyrillic fonts (KOI-8) ! OpenWindows.TextFont: smcK-12 OpenWindows.TitleFont: smcKb-14 OpenWindows.ButtonFont: sscKb-12 Font.Name: sscK-12 <- главное это Icon.Font.Name: sscK-10 olwm.TextFont: smcK-12 olwm.ButtonFont: smcK-12 olwm.TitleFont: smcKb-12 Mwm*menu*background: pink Mwm*fontList: -chu-sscK-bold-r-normal-*-*-120-*-*-*-*-koi-8: nptool.Font.Name: fixed *font: crcK-12 !Tuning of OpenLook Virtual Window Manager OpenWindows.VirtualSticky: xclock clock oclock xwall OpenWindows.VirtualForegroundColor: white OpenWindows.VirtualBackgroundColor: yellow OpenWindows.UseImages: UseAll OpenWindows.InputFocusColor: pink OpenWindows.UniqueIconSlots: True OpenWindows.FreeIconSlots: True OpenWindows.ShowResizeGeometry: True OpenWindows.ShowMoveGeometry: True OpenWindows.SelectDisplaysMenu: False ! Trailer Cyrillic Package Убедитесь, что файлы .OWdefaults и .Xdefaults в вашем домашнем каталоге не перекрывают эти определения. Следует удалить старые: ~/.Xdefaults ~/.Xresourses ~/.OWdefaults ~/.openwin-init ~/.keytable ~/.dt (это каталог) Текущие установки ресурсов можно посмотреть командой xrdb -q | more

    Стартовый файл.

--------------- Изучите стартовый файл $OPENWINHOME/lib/Xinitrc содержащий команды загрузки карт клавиатуры Xmodmaprc и файлов ресурсов Xdefaults Системный администратор ОБЯЗАН прочитать этот файл и понять, как всё работает. Обратите внимание на специальный файл-флажок $HOME/.Xmod++ locale для трёх кодировок. -------------------------- locale - это описание множества букв, какие из них печатные, большие, маленькие,... Смотри man setlocale и man ctype Описания расположены в каталогах /usr/lib/locale/ru.koi_8 /usr/lib/locale/ru.iso_8859_5 /usr/lib/locale/ru.mswcyr /usr/lib/locale/ru.altdos (для функции setlocale(LC_ALL, ""); )

    X Display Manager.

------------------ Пакет запускает на вашей машине X Display Manager (xdm). Ознакомьтесь с его конфигурационными файлами, расположенными в /usr/openwin/lib/xdm/* Обратите внимание на Xresources - там задан русский язык сообщений. StartOW - параметры запуска X-serverа. Xsession - скрипт, выполняемый при входе пользователя в систему. Xsetup_0 - запуск программ, сопутствующих окну Xlogin. Смотри также man xdm ВНИМАНИЕ, СИСТЕМНЫЙ АДМИНИСТРАТОР !!! ------------------------------------- Для входа через xdm используется настроечный файл ~/.profile Для входа с консоли - ~/.login Поэтому добавление установки переменных окружения следует производить ПАРАЛЛЕЛЬНО в обоих этих файлах. В качестве образцов используйте файлы из /etc/skel Если у пользователя уже были файлы .login, .cshrc, .profile, то вам придётся посвятить некоторое время приведению их в соответствие с работоспособным образцом. Пардон за причинённые неудобства! Вход через XDM. ~~~~~~~~~~~~~~~ xdm (xlogin) -> Xsession -> $HOME/.profile -> Xinitrc -> xterm -> sh xdm (xlogin) -> Xsession -> $HOME/.profile -> Xinitrc -> xterm -> csh -> $HOME/.cshrc Вход через console login (с белой консоли) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ login -> sh -> $HOME/.profile -> \ -> $OPENWINHOME/bin/openwin -> Xinitrc -> xterm -> sh login -> csh -> $HOME/.cshrc -> $HOME/.login -> \ -> $OPENWINHOME/bin/openwin -> Xinitrc -> xterm -> csh -> $HOME/.cshrc Вход через telnet или rlogin ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ telnet -> login -> sh -> $HOME/.profile telnet -> login -> csh -> $HOME/.cshrc -> $HOME/.login Вход через dtlogin CDE ~~~~~~~~~~~~~~~~~~~~~~ /etc/rc2.d/S99dtlogin -> dtlogin -> ... -> /usr/dt/bin/Xsession -> ... ->\ -> /etc/dt/config/Xsession.d/0055.cyrillic -> $HOME/.profile ->\ -> xterm -> sh -> csh -> $HOME/.cshrc При входе под CommonDesktopEnvironment следует иметь в виду две вещи: 1) Переменную LANG устанавливает программа dtlogin, поэтому её не следует устанавливать в .profile 2) Скрипт /usr/dt/bin/Xsession на время своей работы устанавливает переменную DT=true и уничтожает её после завершения инициализации оконной системы (то есть xterm запускается уже без неё). Поэтому фрагмент в .profile выглядит так: if [ ! "$DT" ] ; then ... stty -istrip cs8 erase "^H" kill "^U" swtch "^-" ... LANG=... ... fi Картинки ~~~~~~~~ Картинки для входной заставки расположены в /etc/dt/backdrops/*.pm и имеют формат XPM. Какую именно картинку следует показать на экране указано в файле /etc/dt/config/Xresources это строки вида Dtlogin*logo*bitmapFile: /etc/dt/backdrops/cat.pm Где искать сообщения об ошибках ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Если пользователь не может войти в систему через xdm, вы должны прочитать файл .xsession-errors в домашнем каталоге этого пользователя. Туда попадают сообщения об ошибках. Сообщения XDM об ошибках, случившихся ДО начала пользовательского сеанса, попадают в /var/tmp/xdm-errors. При запуске из-под CDE ищите сообщения об ошибках в /var/dt/Xerrors $HOME/.dt/startlog $HOME/.dt/errorlog $HOME/.dt/sessionlogs/* Чтобы сообщения записывались в последнее упомянутое место, следует закомментировать следующую строку в файле $HOME/.dtprofile (ниже она написана, как она ДОЛЖНА выглядеть): # export dtstart_sessionlogfile="/dev/null"

    Если у Вас ПРОБЛЕМЫ

~~~~~~~~~~~~~~~~~~~ "Вы забудете о своих проблемах! Когда узнаете о наших." Если вы не можете войти в систему через xlogin: - XDM выдаёт окно login: - вы вводите имя, пароль, жмёте , окно исчезает... - ничего не происходит, и окно xlogin появляется снова. Скорее всего проблема в том, что у вас неправильный ~/.profile (смотри в ~/.xsession-errors). Но чтобы суметь отредактировать его, вам надо хоть как-то войти в систему. Это делается так: - XDM выдаёт окно login: - вы вводите имя, пароль, жмёте вместо . ... и входите в систему с одним единственным окном xterm. 8 бит против 24 бит ~~~~~~~~~~~~~~~~~~~ xdm на SPARCstation 5 с 24-битовым frame buffer-ом S24 запускает по умолчанию X server в режиме defaultdepth=8 бит, а не 24 (defaultdepth = число бит на пиксел). Чтобы вернуться к 24 битам по умолчанию, следует выкинуть (закомментировать) из $OPENWINHOME/lib/xdm/StartOW следующий фрагмент: # Start X server on S24 frame buffer (for SS5) in 8 bit mode, not 24. if [ -c /dev/fbs/tcx0 ] ; then pass="$pass -dev /dev/fbs/tcx0 defdepth 8" fi А чтобы на машинах с графическим ускорителем SX запускать X-server по умолчанию в 24-битовом режиме, следует раскомментировать следующий фрагмент: (КРОМЕ ПЕРВОЙ СТРОКИ-КОММЕНТАРИЯ) # Start X server on SX frame buffer (for SS20) in 24 bit mode. # if [ -c /dev/fbs/cgfourteen0 ] ; then # pass="$pass -dev /dev/fbs/cgfourteen0 defdepth 24" # fi Чтобы узнать текущее состояние depth и много другой информации про X-server, используйте программы: a) xdpyinfo b) ps -ef | fgrep X (смотри на аргументы запуска X-serverа). Смотри man X11 openwin xdm Xserver Xsun Авторизация доступа к экрану ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/openwin/bin/openwin использует /usr/openwin/bin/X $DISPLAY -auth $HOME/.xsun.`uname -n`$DISPLAY xdm использует /usr/openwin/bin/X $DISPLAY -auth /var/tmp/A$DISPLAY-нечто Просто полезные программы ------------------------- xprop - выдаёт свойства и Класс указанного мышью окна xlsclients -l - выдаёт список X-клиентов xdpyinfo - выдаёт параметры вашего экрана и X сервера xev - выдаёт keysym и keycode нажимаемых клавиш. Незаменима при составлении карт клавиатуры.

    Как подменить системные фонты

----------------------------- Иногда встаёт задача заменить некоторый системный фонт подходящим фонтом, содержащим русские буквы, при этом не стирая оригинальный фонт. Такая задача может возникнуть, если имя некоторого нерусского фонта намертво прошито в кодах программы и не задаётся через ресурсы типа Prog*fontList: XLFD-fontname Нам же надо заменить его на русскоязычный фонт. Это делается при помощи такого трюка: Как известно, X-сервер ищет фонты в каталогах в порядке, указанном в переменной FONTPATH (смотри xset -q). В самое начало этого пути при помощи команды ~~~~~~ xset +fp cyrill-aliases мы добавляем каталог, содержащий наши собственные фонты. На самом деле в этом каталоге нет настоящих фонтов, но имеется объявление фонтов: В файле fonts.dir ~~~~~~~~~~~~~~~~~ 0 что означает, что каталог содержит 0 настоящих фонтов. Зато в файле fonts.alias ... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Helvetica "-paragraph-PragmaticaCK-medium-r-normal--0-0-0-0-p-0-koi-8" -b&h-lucida-medium-r-normal--0-0-0-0-p-0-iso8859-1 \ "-paragraph-JournalSansCK-medium-r-normal--0-0-0-0-p-0-koi-8" мы объявляем синонимы имён, которые перекрывают системные имена системных фонтов именами наших собственных фонтов, лежащих в других каталогах. Увы, мы не можем сделать сином=нимы зависимыми от переменной $LANG иначе как каждый раз подсовывая ДРУГОЙ КАТАЛОГ с синонимами. Пример файла fonts.alias для трёх основных начертаний в КОИ-8: -adobe-courier-medium-r-normal--0-0-0-0-m-0-iso8859-1 "-paragraph-CourierCK-medium-r-normal--0-0-0-0-m-0-koi-8" -adobe-courier-medium-o-normal--0-0-0-0-m-0-iso8859-1 "-paragraph-CourierCK-medium-i-normal--0-0-0-0-m-0-koi-8" -adobe-courier-bold-r-normal--0-0-0-0-m-0-iso8859-1 "-paragraph-CourierCK-bold-r-normal--0-0-0-0-m-0-koi-8" -adobe-courier-bold-o-normal--0-0-0-0-m-0-iso8859-1 "-paragraph-CourierCK-bold-i-normal--0-0-0-0-m-0-koi-8" -adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1 "-paragraph-NewtonCK-medium-r-normal--0-0-0-0-p-0-koi-8" -adobe-times-medium-i-normal--0-0-0-0-p-0-iso8859-1 "-paragraph-NewtonCK-medium-i-normal--0-0-0-0-p-0-koi-8" -adobe-times-bold-r-normal--0-0-0-0-p-0-iso8859-1 "-paragraph-NewtonCK-bold-r-normal--0-0-0-0-p-0-koi-8" -adobe-times-bold-i-normal--0-0-0-0-p-0-iso8859-1 "-paragraph-NewtonCK-bold-i-normal--0-0-0-0-p-0-koi-8" -adobe-helvetica-medium-r-normal--0-0-0-0-p-0-iso8859-1 "-paragraph-PragmaticaCK-medium-r-normal--0-0-0-0-p-0-koi-8" -adobe-helvetica-medium-o-normal--0-0-0-0-p-0-iso8859-1 "-paragraph-PragmaticaCK-medium-i-normal--0-0-0-0-p-0-koi-8" -adobe-helvetica-bold-r-normal--0-0-0-0-p-0-iso8859-1 "-paragraph-PragmaticaCK-bold-r-normal--0-0-0-0-p-0-koi-8" -adobe-helvetica-bold-o-normal--0-0-0-0-p-0-iso8859-1 "-paragraph-PragmaticaCK-bold-i-normal--0-0-0-0-p-0-koi-8" Такой файл поставляется вместе с нашим пакетом, но его подстановка ВЫКЛЮЧЕНА (смотри файл /usr/openwin/lib/locale/C/OWfontpath для включения). Каталог $OPENWINHOME/lib/X11/fonts/cyrill-aliases++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Как раз один из двух alias-каталогов, записанных в /usr/openwin/lib/locale/C/OWfontpath Этот каталог предназначен для кириллизации Sun-овского продукта ShowMe. Этот продукт ShowMe запрашивает 4 шрифта по XLFD шаблонам: -*-helvetica-bold-r-*--12-* -*-helvetica-bold-r-*--14-* -*-helvetica-medium-r-*--18-* -*-helvetica-medium-r-*--24-* Им удовлетворяют шрифты -adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1 -adobe-helvetica-bold-r-normal--14-140-75-75-p-82-iso8859-1 -adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1 -adobe-helvetica-medium-r-normal--24-240-75-75-p-130-iso8859-1 Чтобы брались русские шрифты, следует в списке фонтов ПЕРЕД -adobe- шрифтами поместить некие кириллические фонты, удовлетворяющие тем же XLFD шаблонам. Поименуем эти шрифты так: -ada-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1 -ada-helvetica-bold-r-normal--14-140-75-75-p-82-iso8859-1 -ada-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1 -ada-helvetica-medium-r-normal--24-240-75-75-p-130-iso8859-1 Программы, явно указывающие -adobe-* , не будут затронуты этим механизмом синонимов. К сожалению, многие другие продукты используют шаблоны имён фонтов с подобной спецификацией, например Open Vision HA использует *hel*-b*-r-*-14-* *hel*-b*-r-*-18-* которые в итоге отображаются в СЛИШКОМ БОЛЬШИЕ русские шрифты. В этом случает слдует либо: 1) закомментировать первую строку в OWfontpath !$OPENWINHOME/lib/X11/fonts/cyrill-aliases++ В ДАННОЙ ВЕРСИИ ПАКЕТА ЭТА СТРОКА КАК РАЗ ЗАКОММЕНТИРОВАНА (ВЫКЛЮЧЕНА). 2) Перед запуском программы набрать вручную (или из командного файла) % xset -fp $OPENWINHOME/lib/X11/fonts/cyrill-aliases++ (что удаляет этот каталог из пути поиска фонтов)

    Набор PostScript Adobe Type I фонтов.

===================================== Данные фонты лицензированы у компании Paragraph. Их использование: <программа> -fn <имяФонта>-<размер_в_точках> например xfd -fn XeniaExtendedC-Bold-40 xterm -fn AcademyC-14 xfd - программа просмотра фонтов, полезная для того, чтобы узнать как они выглядят. Фонты, помеченные ниже значком '+', не могут быть использованы оконной системой и PostScript принтерами, начиная с HP LaserJet 4 (фонты устарели). Однако NeWSprint в состоянии печатать файлы, сделанные с их использованием. Тем не менее рекомендуется их не использовать. Фонты в альтернативной кодировке для PC: Courier866-normal Courier866-Bold Courier866-BoldItalic Courier866-Italic Фонты в трёх популярных кодировках: MS Windows 1251 ISO 8859/5 КОИ-8 AcademyC-Bold AcademyC5-Bold AcademyCK-Bold + AcademyC-Italic AcademyC5-Italic AcademyCK-Italic AcademyC AcademyC5 AcademyCK AdverGothicC AdverGothicC5 AdverGothicCK AstronC AstronC5 AstronCK + BalticaC-Bold BalticaC5-Bold BalticaCK-Bold + BalticaC-Italic BalticaC5-Italic BalticaCK-Italic + BalticaC BalticaC5 BalticaCK BetinaScriptC-Bold BetinaScriptC5-Bold BetinaScriptCK-Bold BetinaScriptC BetinaScriptC5 BetinaScriptCK + BodoniC-Bold BodoniC5-Bold BodoniCK-Bold + BodoniC-BoldItalic BodoniC5-BoldItalic BodoniCK-BoldItalic + BodoniC-Italic BodoniC5-Italic BodoniCK-Italic + BodoniC BodoniC5 BodoniCK + BodoniCondC BodoniCondC5 BodoniCondCK CompactC-Bold CompactC5-Bold CompactCK-Bold CompactC-BoldItalic CompactC5-BoldItalic CompactCK-BoldItalic CompactC-Italic CompactC5-Italic CompactCK-Italic CompactC CompactC5 CompactCK CorridaC CorridaC5 CorridaCK CourierC-Bold CourierC5-Bold CourierCK-Bold CourierC-BoldItalic CourierC5-BoldItalic CourierCK-BoldItalic CourierC-Italic CourierC5-Italic CourierCK-Italic CourierC CourierC5 CourierCK DecorC DecorC5 DecorCK DidonaC DidonaC5 DidonaCK FreeSetC-Bold FreeSetC5-Bold FreeSetCK-Bold FreeSetC FreeSetC5 FreeSetCK FuturaEugeniaC FuturaEugeniaC5 FuturaEugeniaCK FuturisC FuturisC5 FuturisCK FuturisXC-Bold FuturisXC5-Bold FuturisXCK-Bold FuturisXC FuturisXC5 FuturisXCK FuturisXCondC-Bold FuturisXCondC5-Bold FuturisXCondCK-Bold FuturisXCondC FuturisXCondC5 FuturisXCondCK InformC-Bold InformC5-Bold InformCK-Bold InformC InformC5 InformCK IzhitsaC IzhitsaC5 IzhitsaCK JournalC-Bold JournalC5-Bold JournalCK-Bold JournalC-Italic JournalC5-Italic JournalCK-Italic JournalC JournalC5 JournalCK JournalSansC-Bold JournalSansC5-Bold JournalSansCK-Bold JournalSansC-Italic JournalSansC5-Italic JournalSansCK-Italic JournalSansC JournalSansC5 JournalSansCK LazurskiC-Bold LazurskiC5-Bold LazurskiCK-Bold LazurskiC-BoldItalic LazurskiC5-BoldItalic LazurskiCK-BoldItalic LazurskiC-Italic LazurskiC5-Italic LazurskiCK-Italic LazurskiC LazurskiC5 LazurskiCK MonoCondensedC-Bold MonoCondensedC5-Bold MonoCondensedCK-Bold MonoCondensedC-BoldItalic MonoCondensedC5-BoldItalic MonoCondensedCK-BoldItal MonoCondensedC-Italic MonoCondensedC5-Italic MonoCondensedCK-Italic MonoCondensedC MonoCondensedC5 MonoCondensedCK MyslC-Bold MyslC5-Bold MyslCK-Bold MyslC-BoldItalic MyslC5-BoldItalic MyslCK-BoldItalic MyslC-Italic MyslC5-Italic MyslCK-Italic MyslC MyslC5 MyslCK NewtonC-Bold NewtonC5-Bold NewtonCK-Bold NewtonC-BoldItalic NewtonC5-BoldItalic NewtonCK-BoldItalic NewtonC-Italic NewtonC5-Italic NewtonCK-Italic NewtonC NewtonC5 NewtonCK NewtonXC NewtonXC5 NewtonXCK ParsekC ParsekC5 ParsekCK PetersburgC-Bold PetersburgC5-Bold PetersburgCK-Bold PetersburgC-BoldItalic PetersburgC5-BoldItalic PetersburgCK-BoldItalic PetersburgC-Italic PetersburgC5-Italic PetersburgCK-Italic PetersburgC PetersburgC5 PetersburgCK PragmaticaC-Bold PragmaticaC5-Bold PragmaticaCK-Bold PragmaticaC-BoldItalic PragmaticaC5-BoldItalic PragmaticaCK-BoldItalic PragmaticaC-Italic PragmaticaC5-Italic PragmaticaCK-Italic PragmaticaC PragmaticaC5 PragmaticaCK PragmaticaCondC-Bold PragmaticaCondC5-Bold PragmaticaCondCK-Bold PragmaticaCondC PragmaticaCondC5 PragmaticaCondCK QuantAntiquaC-Bold QuantAntiquaC5-Bold QuantAntiquaCK-Bold QuantAntiquaC-Italic QuantAntiquaC5-Italic QuantAntiquaCK-Italic QuantAntiquaC QuantAntiquaC5 QuantAntiquaCK SchoolBookC-Bold SchoolBookC5-Bold SchoolBookCK-Bold SchoolBookC-BoldItalic SchoolBookC5-BoldItalic SchoolBookCK-BoldItalic SchoolBookC-Italic SchoolBookC5-Italic SchoolBookCK-Italic SchoolBookC SchoolBookC5 SchoolBookCK StandardPosterC StandardPosterC5 StandardPosterCK TextBookC-Bold TextBookC5-Bold TextBookCK-Bold TextBookC-Italic TextBookC5-Italic TextBookCK-Italic TextBookC TextBookC5 TextBookCK XeniaC XeniaC5 XeniaCK XeniaCondensedC XeniaCondensedC5 XeniaCondensedCK XeniaExtendedC-Bold XeniaExtendedC5-Bold XeniaExtendedCK-Bold XeniaExtendedC XeniaExtendedC5 XeniaExtendedCK XeniaWesternC-Italic XeniaWesternC5-Italic XeniaWesternCK-Italic ZhikharevC ZhikharevC5 ZhikharevCK

    Как добавить свою подложку экрана в CDE

======================================= Пусть у вас есть myfile.gif или myfile.jpg Смотрите этот файл при помощи программы /usr/local/bin/xv myfile.gif Нажмите в окне ПРАВОЙ кнопкой мыши. В меню выбираете пункт "Save". В меню форматов выбираете XPM/FullColor/OK. Затем Quit. В итоге вы получаете файл myfile.xpm Далее переименуйте его: mv myfile.xpm myfile.pm Затем посмотрите КОНЕЦ этого файла редактором vi vi myfile.pm Файл должен кончаться так: ......" }; Если ниже есть мусор - удалите его. Теперь проверка: sxpm myfile.pm должно показать этот образ. Теперь поместим этот образ в стандартное место: mv myfile.pm /etc/dt/backdrops/myfile.pm Теперь вы можете выбрать его в мэнеджере оформления вида рабочего стола. Можно задать фон вручную: в файле $HOME/.dt/sessions/home/dt.resources Следует написать строки Dtwm*0*ws4*backdrop*image: myfile где 4 - номер workspace от НУЛЯ начиная. Если вы хотите использовать эту картинку как заставку при входе в систему (для dtlogin), то вам следует задать в файле /etc/dt/config/Xresources строку: Dtlogin*logo*bitmapFile: /etc/dt/backdrops/myfile.pm

    Дополнительные программы.

========================= Всякая всячина помещена в каталог /usr/local, реально размещённый в /opt/local. Обычно в /usr/local размещаются часто используемые, но не стандартные программы, вроде программ из GNU. /usr/local (то есть /opt/local) может требовать до сотен Мегабайт дискового пространства. К примеру, довольно небольшой local на машине автора пакета занимает 18 МБ. Эти программы должны сохраняться при переинсталляции системы, поэтому /usr/local должен быть либо отдельной файловой системой (или разделом диска), либо размещаться на сохраняемой области (каковой обычно является /opt). 1) С пакетом поставляется виртуальный оконный мэнеджер /usr/local/bin/olvwm, подробную инструкцию по которому вы можете найти по команде man olvwm man olvwmrc olvwm позволяет иметь много графических терминалов на одном (виртуальные экраны), а также позволяет работать с окнами размером больше экрана терминала. ------------------------------------------------------------- | Переключение экранов по Meta (клавиша с ромбом) + Fn. | ------------------------------------------------------------- Вы можете задать запуск определённых программ сразу на заданном виртуальном экране при помощи файла $HOME/.olvwmrc, например: Screen 4 { AnswerBook } Screen 5 { Audio } 2) программы перекодировки из одной кодировки в другую, размещённые в /usr/local/bin koi2iso < KOI_file > ISO_file koi2iso -from < ISO_file > KOI_file koi2win [-plain] < KOI_file > MS_Windows_file koi2win [-plain] -from < MS_Windows_file > KOI_file koi2dos - программа перекодировки КОИ-8 в альтернативную кодировку для IBM PC (MS DOS). koi2dos -from - из альтернативной кодировки в КОИ-8 chcode [-replace] files.... chcode [-r] files.... программа перекодировки из любой кодировки в любую. Ключ -replace (или -r) задаёт, что файл в новой кодировке заместит исходный файл на прежнем месте. Без этого ключа перекодированный файл выдаётся в стандартный вывод. В качестве и могут быть использованы: koi_8 mswcyr iso_8859_5 altdos 3) Программа для смены кодировки на клавиатуре на лету: xloadmap - загружает кодировку, которую она выбирает по содержимому переменной окружения $LANG. Если переменная не определена - загружается koi_8. xloadmap - загружает кодировку по имени. В качестве имени допустимы koi_8 iso_8859_5 mswcyr altdos 4) Различные программы: whichlang - пытается определить тип русской кодировки, использованной в данном файле. Использование стандартного ввода: whichlang -- xspy - демон, индицирующий в верхнем правом углу экрана состояние клавиш и модификаторов, а также координаты курсора мыши. Этот демон зажигает лампочку Compose вместо лампочки CapsLock. xfonts - демонстратор русских фонтов. cxterm - цветной X-терминал (смотри man cxterm). Он основан на MITовском xterm и является частью дистрибутива X Window System. Он (в отличие от всех Sun-овских программ) не использует ни OpenLook (XView) ни Motif. Вы можете переключать размер шрифтов в окне при помощи меню, вызываемого по CTRL + ПраваяКнопкаМыши. Это единственная консоль, поддерживающая псевдографику. Запустите команду /usr/local/bin/pseudographics для получения списка кодов псевдографических символов. ВНИМАНИЕ! Единственный Adobe Type1 фонт, поддерживающий псевдографику - это семейство Courier866. Поэтому печать файлов, содержащих псевдографику, следует осуществлять через фильтр ensc (смотри ниже), который перекодирует текст в MS DOS альтернативную кодировку и использует шрифты Courier866-normal Courier866-Bold Courier866-Italic Courier866-BoldItalic Попробуйте команду pseudographics | ensc | dolp cxterm выполняет интерпретатор команд $SHELL, если не указано иначе. Если SHELL=/bin/csh (или vcsh), то csh выполняет командный файл ~/.cshrc Если вызывать cxterm -ls то в окне запускается "login shell", выполняющий последовательно: ~/.cshrc ~/.login для csh или $HOME/.profile для sh, ksh Селекция текста в окне cxterm выполняется так: нажать ЛевуюКнопкуМыши - держа кнопку вести мышь - отпустить кнопку или клик ЛевойКнопкой - поместить мышь в конец - клик ПравойКнопкой Расширение селекции - клик ПравойКнопкой. Снятие селекции - клик ЛевойКнопкой вне окна. xterm.altdos - терминал с CP866 кодировкой (специально для тех несчастных, которые ещё не избавились от тяжёлого наследия MS DOS). gzip и gunzip - GNU архиватор: создаёт *.z файлы. gzip замещает исходный файл закомпрессированным. gunzip замещает исходный файл *.z раскомпрессированным. zcat - программа выдачи *.z файлов в стандартный вывод, например zcat archive.tar.z | tar xvf - vcsh - csh с редактированием строки (смотри man vcsh). wm - window manager для алфавитно-цифровых терминалов (см man wm). less - программа просмотра файлов (аналог more), умеющая прокручивать файл как вперёд, так и назад. sxpm - программа просмотра XPM картинок. xv - версии 3. Распространяется как freeware, автор bradley@cis.upenn.edu программа просмотра растров в различных форматах. xloadimage - аналогичная, но более простая программа. Позовите xloadimage -help. Загрузка красивого фона окна: добавьте в ваш ~/.xinitrc или ~/.openwin-init строку toolwait xloadimage -onroot /usr/openwin/share/images/raster/bg.rs cproto - программа генерации прототипов функций для языка Си стиля Кернингана и Риччи (см. man cproto) mailx - русскоязычный командный интерфейс к электронной почте RelCom. Его настроечные файлы - в /usr/local/lib/mail Смотри man mailx. Системный администратор ОБЯЗАН настроить файл /usr/local/lib/mail/maildomain и /usr/local/lib/mail/Mail.rc записав в него имя вашего почтового домена. Строка From: вашего письма составляется по шаблону headline From '$r <$u@$h>' (смотри файл Mail.rc), где $u - имя пользователя, а $h - имя почтового домена. Если оно не задано в файле - используется краткое имя вашей машины (hostname). Если ваш почтовый адрес user@host.msk.su то запишите в /usr/local/lib/mail/maildomain строку host.msk.su Можно было бы сделать этот процесс конструирования имени более интеллектуальным, но так - по моему опыту - проще. quatro - программа для переформатирования PostScript файлов. К примеру, печать по две страницы на странице бумаги: zcat file.ps.gz | quatro -2z | dolp Смотри список ключей по quatro -h killproc Программа для убивания процесса по имени: killproc xclock strlook Программа для показа стека STREAMS модулей. pcal - программа для печати календарей на языке PostScript pcal -w печатает календарь на весь год Смотри man pcal Вызов: pcal | dolp pcal -w | dolp mosaic - Internet-овский гипертекст. smtpgate - перекодировщик почты для PCшек. Смотри README в /usr/local/src/smtpgate/* pop2d - POP-2 демон с перекодировкой букв. Смотри там же. webcp - программа рекурсивного копирования WEB серверов. Смотри /usr/local/src/webcp/* В качестве полезной для ума пищи рекомендуется чтение документов man vcsh man cbook man mime 5) Программы конвертирования Adobe Type I фонтов в бинарный или текстовый вид. Смотри man t1ascii (1), t1asm (1), t1binary (1), t1disasm (1), unpost (1).

    Временная смена языка.

====================== Как вам уже стало ясно, язык определяется набором трёх компонент: - переменной окружения LANG для locale. - фонтом. - раскладкой клавиатуры. Покажем, как можно запустить cxterm, использующий другую кодировку, к примеру mswcyr. Командный файл для этого должен выглядеть так: #!/bin/sh xloadmap mswcyr LANG=ru.mswcyr cxterm -fn crcW-12 xloadmap # Восстановить предыдущую раскладку клавиатуры по $LANG exit 0

    Настройка временной зоны.

========================= Если вы не в престольном граде Москве или живете не по московскому времени, вам следует настроить файлы относящиеся к TIMEZONE. 1) В каталоге /usr/share/lib/zoneinfo находится файл /usr/share/lib/zoneinfo/Moscow.src Прочитайте man zic и man timezone и по данному образцу составьте свой файл с описанием временной зоны для вашего города, пусть это файл XXX для зоны Russia/Town. Выполните команду zic XXX Она создаст файл /usr/share/lib/zoneinfo/Russia/Town 2) Настройте файлы /etc/timezone -- Russia/Town имя_NIS_домена_вашей_машины /etc/default/init -- TZ=Russia/Town Обратите внимание на файл /etc/default/init - в нем содержатся переменные окружения, выставляемые для ВСЕХ пользователей при их входе в систему.

    Поведение кнопки в верхнем левом углу окон.

=========================================== В Solaris 1.1 нажатие кнопки SELECT (левой) мыши над треугольной кнопкой в верхнем левом углу окна приводило к иконификации окна. В Solaris 2.x по умолчанию проявляется оконное меню. Это поведение задаётся параметром OpenWindows.SelectDisplaysMenu: False или True В файле Xdefaults или ~/.OWdefaults True - соответствует проявке меню. False - выполнению первой команды меню, в данном случае - иконификации окна (Close). Данный пакет устанавливает это значение в False. OpenWindows.SelectDisplaysMenu: False Resize Cursors ============== По умолчанию olwm и olvwm для изменения размеров окна используют курсор в виде кружочка. Вы можете использовать для каждого угла окна свой собственный курсор-уголок, если зададите в файле ~/.OWdefaults или ~/.Xdefaults такой ресурс: OpenWindows*CursorSpecialResize: True

    Описание терминала

================== Цветной X-terminal cxterm поддерживает псевдографику и цвета. Программы vcsh, le, wm пользуются этими возможностями. В файл /etc/termcap (который есть symlink на /usr/share/lib/termcap) заносится описание терминала xterm-Sg для cxterm. Для использования vcsh вам следует описать следующие параметры: f1 f2 ... f9 f0 f. f- описатели для функциональных клавиш F1 F2 F9 F10 F11 F12 kh - клавиша HOME kH - клавиша END kN - клавиша PgDn (Next) kP - клавиша PgUp (Previous) kI - клавиша Insert kD - клавиша Del kb - клавиша BackSpace kB - клавиша BACKTAB (Shift + TAB) kl - клавиша стрелка влево kr - клавиша стрелка вправо ku - клавиша стрелка вверх kd - клавиша стрелка вниз gs - команда включения режима псевдографики ge - команда выключения режима псевдографики g1 - описатели тонких псевдографических рамок g2 - описатели толстых псевдографических рамок g1=HV123456789 H - горизонтальная линия V - вертикальная линия 7--8--9 | | | 4--5--6 | | | 1--2--3

    STREAMS-модуль транслитерации (перекодировки).

============================================== Различные машины, подключённые к станции через последовательные порты или сеть могут иметь различные кодировки. Характерным примером является telnet в PC NFS, где PC имеет кодировку "Альтернативная DOS", а станция к примеру - КОИ-8. При коммуникации с такими абонентами должно происходить преобразование кодировки. Для этого в составе пакета имеется STREAMS-модуль "trcode". ПРОГРАММА ПОЛЬЗОВАТЕЛЯ write() read() системные ioctl() вызовы | A | | |WRITE |READ | | [==========================] ttcompat [==========================] ldterm [==========================] trcode | | V | экран клавиатура драйвер устройства ######### ============ Каждый из потоков: READ и WRITE может находиться в двух состояниях: NORMAL и ALTER. Каждое из состояний имеет свою перекодировочную таблицу, перекодирующее идущий по потоку символ в некий другой. Эти таблицы могут загружаться из программы при помощи вызова ioctl(), либо из некоторого набора стандартных таблиц. Собственно "состояние" и определяет то, через которую из таблиц происходит перекодировка. Имеются также переключательные символы: попадание такого символа в поток вызывает переключение состояния, сам символ при этом вычёркивается из потока. Переключательные символы могут совпадать, тогда повторный ввод переключательного символа меняет состояние на противоположное. Обычно символы-переключатели активированы только на стороне READ (то, что поступает в машину с клавиатуры). По умолчанию же они выключены вовсе ('\0). Символ CTRL/N переключает состояние NORMAL --> ALTER Символ CTRL/O переключает состояние ALTER --> NORMAL Кроме того, модуль "trcode" ведёт подсчёт символов, прошедших через него в обеих направлениях. Эти счётчики могут быть запрошены программой и могут быть использованы для подсчёта траффика. Интерфейс из языка "Си". ------------------------ пока не описан в данном документе. Командный интерфейс. -------------------- В пакете имеются также две программы, позволяющие использовать системные вызовы к модулю "trcode" из командной строки. 1) Программа strlook - выдаёт список модулей, находящихся в STREAMе. strlook - выдаёт информацию про ваш управляющий терминал. strlook ... - выдаёт информацию про перечисленные устройства. strlook -i - про stdin strlook -o - про stdout Эта команда показывает текущие флаги и состояние модуля "trcode", если таковой имеется в stream-е. 2) Программа trload - управление модулем "trcode". trload -i выполняет команды по каналу stdin trload -o stdout (умолчание) trload -e stderr trload -t /dev/tty Эти ключи должны быть ПЕРВЫМИ в командной строке. trload [-v] -query trload [-v] -q Без ключа -v выдаёт код ответа 0, если модуль trcode есть на стеке модулей; 1, если его нет. С ключом -v ещё и распечатывает стек STREAMS модулей. trload [-v] trload -load Загружает модуль trcode в STREAM. Получается следующая конфигурация: <программа> ttcompat - модуль совместимости с BSD ldterm - line discipline, смотри man termio и termios trcode - модуль перекодировки <драйвер_устройства> Ключ -v заставляет напечатать старую и новую конфигурации. trunload [-v] trload -u trload -unload Выгружает модуль trcode из STREAMа. Получается следующая конфигурация: <программа> ttcompat ldterm <драйвер_устройства> trload -push Загружает модуль trcode на вершину STREAMа. trload -pop Выгружает первый сверху модуль trcode из STREAMа. Модули, лежавшие выше него, кладутся обратно на STREAM. trload -tname <имя_таблицы> Загружает в модуль trcode одну из предопределённых таблиц перекодировки. Формат <имени_таблицы> следующий (скобки <> не входят в имя, двоеточие - входит): RN:: RA:: WN:: WA:: R означает загрузку в канал READ W WRITE N означает загрузку таблицы для состояния NORMAL A ALTER и - имена кодировок: koi_8 iso_8859_5 mswcyr altdos Пара ":" задаёт загрузку таблицы, перекодирующей из кодировки в кодировку Есть ещё следующие предопределённые таблицы: I:I - ничего не перекодировать (само в себя) qwerty:koi_8 qwerty:iso_8859_5 qwerty:mswcyr Три последних таблицы предназначены для работы с терминалом, не поддерживающим восьмибитовый ввод с клавиатуры. Эти таблицы позволяют перекодировать коды латинских клавиш qwerty... QWERTY... в соответствующие русские коды йцукен... ЙЦУКЕН... переключаясь между ними по CTRL/N, CTRL/O. trload -tload <файл_с_таблицей> <код_таблицы> Загружает в модуль trcode таблицу из файла. Параметр <код_таблицы> имеет вид: RN:<имя_таблицы> RA:<имя_таблицы> WN:<имя_таблицы> WA:<имя_таблицы> где <имя_таблицы> вы можете придумать произвольно по своему вкусу. Файл с таблицей имеет следующий формат: - пустые строки и строки, начинающиеся с # - это комментарии. - файл состоит из строк вида: # комментарий '1' 200 'A' 201 243 253 0xFF 222 120 'A' 55 0xFE 66 ^G Первая колонка задаёт код символа КОТОРЫЙ надо перекодировать, вторая - код символа В КОТОРЫЙ надо перекодировать. Код символа может задаваться в любой из следующих форм: 'c' - символ представляет сам себя 0xFF - шестнадцатиричное число ^C - CTRL/символ \377 - восьмиричное число 999 - десятичное число Символы, не перечисленные в данном файле, перекодируются сами в себя. trload -rswitchN c trload -rswitchA c trload -wswitchN c trload -wswitchA c Задаёт символы переключения состояний. r - для READ, w - для WRITE. N - из NORMAL в ALTER, A - из ALTER в NORMAL. Символ может быть указан в виде: ^- или NO или none - нулевой байт, выключает символ переключения ^C - CTRL/буква (для csh: "^C" ) c - просто буква trload -rstate N trload -rstate A trload -wstate N trload -wstate A Устанавливает состояние канала: rstate - READ, wstate - WRITE. N - состояние в NORMAL, A - в ALTER. Аргументы (кроме -unload и -pop) могут выступать в комбинации: trload -o -v -push -tname RN:koi_8:altdos strlook Поскольку программные конвееры в UNIX также реализованы через STREAMS, мы можем использовать модуль "trcode" внутри трубы: date | ( trload -i -v -push -tname RN:koi_8:altdos ; cat ) или (trload -o -push -tname WN:koi_8:altdos; date) | cat или (trload -push -tname WN:koi_8:altdos; date) | cat будет получен ответ в альтернативной DOSовской кодировке (при условии, что date выдаёт в КОИ-8). 3) Командный файл dosterm Загружает модуль trcode и соответствующие таблицы для использования с telnet-ом из PC NFS. После входа с PC на станцию через telnet, наберите команду dosterm. Она задаст преобразование из Альтернативной DOSовской кодировки на PC в ту кодировку, которая задана в вашей переменной среды $LANG. 4) Командный файл dumbterm Загружает модуль trcode и соответствующие таблицы для использования с "тупым терминалом" через CTRL/N CTRL/O и QWERTY-раскладку. Ещё пример: ~~~~~~~~~~ trload -tname RA:qwerty:koi_8 -rswitchN ^N -rswitchA ^O -escseq on -esclength 3 В данном случае у нас имеется терминал, функциональные клавиши и клавиши со стрелками которого генерируют ESC-последовательности вида ESC [ A Если мы включили по CTRL/N русский ввод, то подобная последовательность введётся как ESC [ Ф и не будет распознана программой чтения функциональных клавиш (ибо это не соответствует описаниям в terminfo или termcap). Для этого предусмотрены три ключа, обеспечивающие отмену перекодировки в русские буквы ESC-последовательностей. trload -esc c Задаёт символ, обозначающий начало ESC-последовательности. По умолчанию это символ ESC - он же ^[ или '\033' trload -escseq on trload -escseq off Включить/выключить просмотр ESC-последовательностей. По умолчанию включён. trload -esclength N (N обычно 3) Не перекодировать ESC-последовательности длины N. По умолчанию 0 - выключено. То есть, если со ввода поступил символ ESC (указанный в -esc c), то НЕ перекодировать его и последующие N-1 символов. Так для "ESC [ A" длина как раз равна 3. Увы, данная возможность не даёт решения при ESC-последовательностях переменной длины, вроде ESC [ A и ESC [ 2 2 2 z Ещё пример: ~~~~~~~~~~ trload -load -tname RA:qwerty:koi_8 -rswitchN "^N" -rswitchA "^O" -escseq on -esctime 33 trload -esctime N Использует иную стратегию работы с ESC-последовательностями. При получении символа ESC (заданного в -esc C), отменяется перекодировка на вводе на временной интервал N тиков (в секунде содержится 100 тиков - для Solaris 2.x). При этом последовательности вроде ESC [ A ESC [ 2 2 2 z генерируются "компактно во времени" и успевают пройти через модуль перекодировки за это короткое время. Затем перекодировка автоматически восстанавливается. Этот подход решает также проблему одиночного ESC, после которого не следуют никакие иные символы, то есть все последующие символы вводимые пользователем надо перекодировать обычным образом. Проблемой теперь является выбор удачного интервала N. 1) Слишком маленький интервал может оказаться недостаточным для прохождения всей ESC-последовательности. 2) Слишком большой интервал может привести к тому, что вы всё ещё будете иметь выставленный флаг отмены перекодировки, когда её уже пора бы начать выполнять. Интервал этот должен быть явно меньше 1 секунды. На консоли SPARC-станции подходящим является значение 3 тика. Для терминалов, вероятно, пригодно значение 33 = 1/3 секунды. Именно этот метод использован в dumbterm. Ещё пример: ~~~~~~~~~~ Могут быть несколько типов ESC-последовательностей, вроде ESC [ A ^A A Поэтому предусмотрено несколько символов, начинающих ESC-последовательности: trload -esc c trload -esc2 c trload -esc3 c trload -esc4 c

    Как добавлять Adobe Type I фонты в X Window System.

=================================================== 1) Положить файлы контуров и метрик Font.pfa Font.afm Font-Bold.pfa Font-Bold.afm Font-Italic.pfa Font-Italic.afm Font-BoldItalic.pfa Font-BoldItalic.afm в /usr/openwin/lib/X11/fonts/Type1 /usr/openwin/lib/X11/fonts/Type1/afm (далее $DIR) ($DIR/afm) 2) Взять и руками дописать в файл $DIR/fonts.scale Font.pfa -company-fontname-medium-r-normal--0-0-0-0-m-0-koi-8 Font-Bold.pfa -company-fontname-bold-r-normal--0-0-0-0-m-0-koi-8 Font-Italic.pfa -company-fontname-medium-i-normal--0-0-0-0-m-0-koi-8 Font-BoldItalic.pfa -company-fontname-bold-i-normal--0-0-0-0-m-0-koi-8 -p- для пропорциональных шрифтов -m- для fixed width, monospaced где company - название компании-разработчика фонта (например, paragraph), а fontname - название семейства фонтов, к примеру -koi-8 -iso8859-5 -ibm-1251 -ibm-866 3) Выполнить в каталоге $DIR команду mkfontdir которая создаёт файл $DIR/fonts.dir 3.1) Для использования с Dispaly PostScript следует выполнить в каталоге $DIR команду /usr/openwin/bin/makepsres которая создаёт файл PSres.upr 4) Для использования кратких имён фонтов (а не длинных XLFD - X logical font description) следует руками добавить в файл $DIR/fonts.alias следующие определения: Font "-company-fontname-medium-r-normal--0-0-0-0-p-0-koi-8" Font-Bold "-company-fontname-bold-r-normal--0-0-0-0-p-0-koi-8" Font-Italic "-company-fontname-medium-i-normal--0-0-0-0-p-0-koi-8" Font-BoldItalic "-company-fontname-bold-i-normal--0-0-0-0-p-0-koi-8" LAST) Сообщить оконной системе о добавлении нового фонта (фонтов). Либо: xset fp rehash (если добавляли в /usr/openwin/lib/X11/fonts/Type1) Либо: xset fp+ $DIR (если мы СОЗДАЛИ свой каталог $DIR) TEST) Просмотр, появился ли фонт в списке доступных: xset -q xlsfonts | more В списке должны появиться и краткие и полные имена новых фонтов. Просмотр таблицы букв: xfd -fn Font-n xfd -fn Font-Bold-n xfd -fn Font-Italic-n xfd -fn Font-BoldItalic-n где n - число, размер в пикселах.

    Печать на PostScript принтере.

============================== Данный пакет предоставляет поддержку ТОЛЬКО для принтеров, поддерживающих PostScript (и для пакета NeWSprint). Как вообще инсталлировать принтер? ================================== Пусть у нас есть HP LaserJet 4M+ с встроенными русскими шрифтами в альтернативной кодировке (altdos) и вставленным интерпретатором языка PostScript. Мы должны добавить принтер при помощи программы admintool, при этом указав: PrinterPort = /dev/bpp0 PrinterType = PostScript !!! не HewlettPackard Printer !!! FileContents = Both PostScript and ASCII Пусть наш принтер получил имя ИмяПринтера Затем следует скопировать модифицированный интерфейсный файл cp /etc/lp/model/russianPS /etc/lp/interfaces/ИмяПринтера Посмотрите комментарии в начале этого файла! Как печатать красиво и по-русски? ================================= Для печати PostScript-файлов следует использовать фильтры /usr/lib/lp/postscript/findPSfont /usr/lib/lp/postscript/loadPSfont loadPSfont является улучшенной версией системного фильтра /usr/lib/lp/postscript/download Он использует таблицу шрифтов, находящуюся в файле /usr/share/lib/hostfontdir/map и встраивает используемые в *.ps файле шрифты непосредственно в сам файл (см. man download(1)). Использование: /usr/lib/lp/postscript/findPSfont < file.ps | /usr/lib/lp/postscript/loadPSfont | lp Где file.ps должен иметь заголовок вида: %!PS-Adobe-..... %%DocumentFonts: DecorCK %%+ ParsekCK Существенной является строка %%DocumentFonts: <список используемых фонтов через пробел> %!PS-Adobe-3.0 %%Creator: Windows PSCRIPT %%Title: untitled %%BoundingBox: 20 20 555 802 %%Pages: 1 %%DocumentFonts: DecorCK NewtonCK NewtonCK-Bold %%DocumentNeededResources: (atend) %%EndComments %%BeginSetup /Word0 (Аз есмь знать русскiй языкъ) def /DecorCK findfont 60 scalefont setfont /printWord { 0 0 moveto Word0 show } def %%EndSetup %%Page: "one" 1 40 500 translate % move co-ordinate system origin .95 -.05 0 % start, increment, end { % current loop index is on stack setgray printWord -1 .5 translate } for 1 setgray printWord /NewtonCK findfont 60 scalefont setfont 0 setgray 0 150 translate printWord /NewtonCK-Bold findfont 60 scalefont setfont 0 setgray 640 -300 translate -1 1 scale printWord showpage %%Trailer %%DocumentNeededResources: font NewtonCK-Bold %%+ font DecorCK %%+ font NewtonCK %%EOF Для того, чтобы ваши файлы печатались через NeWSprint, вы ОБЯЗАНЫ расставить все структурирующие комментарии %% и добавить комментарий %%DocumentNeededResources: font ..., иначе NeWSprint может не найти используемых вами фонтов. Поскольку ряд документов не содержит указания используемых фонтов, предлагаемая программа findPSfont находит в PostScript-овском файле имена известных ей фонтов и строит комментарий с их списком. Программа findPSfont может также использоваться для замены имён фонтов: findPSfont -rMAPFILE < file.ps (просто ключ -r для использования файла /usr/local/lib/ps/substPSfonts.list) где MAPFILE - файл со строками вида (пара слов) СтароеИмяФонта НовоеИмяФонта Courier CourierCK Courier-Bold CourierCK-Bold Courier-Italic CourierCK-Italic Courier-BoldItalic CourierCK-BoldItalic (пожалуйста НЕ помещайте в этот файл пустых строк !) Все вхождения СтарогоИмениФонта будут в файле file.ps заменены на Новое. То же самое можно получить вызывая findPSfont с ключом -s (одним или многими): findPSfont -s<старое_имя_шрифта>:<новое_имя_шрифта> < file.ps Пример: findPSfont -sEuroRoman-Oblique:Times-Italic -sSansSerif-Bold:Times-Bold < xxx.ps Другой способ подмены PostScript фонтов описан в файле /usr/local/lib/ps/alias.ps Ряд тестов и документации поставляется с нашим пакетом в каталоге /usr/local/lib/ps Формат PostScript файла должен быть примерно таким: %!PS-Adobe-N.n %%Creator: кто и чем создал %%CreationDate: дата создания %%Title: название %%BoundingBox: xu yu xl yl %%Pages: число страниц %%DocumentFonts: список фонтов или слово (atend) %%EndComments %%BeginProlog [необязательный] определения (def), никаких рисующих операторов %%EndProlog [необязательный] %%BeginSetup секция операторов инициализации принтера, выполняемые операторы %%EndSetup %%Page: one 1 выполняемые операторы рисования первой страницы %%Page: two 2 выполняемые операторы рисования второй страницы ..... %%Page: N n выполняемые операторы рисования n-ой страницы %%Trailer операторы деинициализации (очистки) а также комментарии, отосланные сверху словом (atend) %%EOF [необязательный] [и лучше не писать] loadPSfont должна быть частью более общего командного файла, например интерфейсного файла /etc/lp/interfaces/<имя_принтера>, и использоваться как одна из частей конвейера подготовки файла к печати на PostScript принтере. В отличие от download, loadPSfont понимает ещё один формат структурирующих комментариев: %%DocumentNeededResources: font Courier866-Bold %%+ font Courier866-Italic %%+ font Courier866-normal %%+ font DecorC %%+ font IzhitsaC %%+ font MonoCondensedC %%+ font NewtonC %%+ font NewtonC-Bold %%+ font NewtonC-Italic %%+ font PragmaticaC %%+ font PragmaticaC-Bold %%+ font PragmaticaC-Italic %%+ font PragmaticaCondC А также комментарий %%IncludeResource: font NewtonC Командный файл для печати текстовых файлов русскими буквами мог бы выглядеть так (предполагается, что текст - в кодировке КОИ-8): chcode koi_8 altdos $* | \ /usr/lib/lp/postscript/postprint -f Courier866-normal | \ /usr/lib/lp/postscript/findPSfont | \ /usr/lib/lp/postscript/loadPSfont | \ lp -d Здесь: 1) chcode - перекодирует файл в кодировку altdos, которую имеет фонт Courier866 (смотри выше раздел про дополнительные утилиты). 2) postprint - превращает обычный текст в PostScript-программу. В Solaris-ной программе postprint сделаны правки (см. /usr/lib/lp/postscript/postprint.ps), позволяющие печать фонтами с нестандартным Encoding-ом. Смотри man postprint (1). 3) findPSfont - собирает имена фонтов. 4) loadPSfont - встраивает фонты. 5) lp - посылает файл на принтер. Вариант для шрифта MonoCondensedCK (он уже в кодировке КОИ-8): /usr/lib/lp/postscript/postprint -f MonoCondensedCK | \ /usr/lib/lp/postscript/findPSfont | \ /usr/lib/lp/postscript/loadPSfont | \ lp -d По умолчанию postprint задаёт шрифт размером 10 точек. Размер можно изменить явно. Вариант для шрифта MonoCondensedCK размером 5 точек: /usr/lib/lp/postscript/postprint -s 5 -l 0 -f MonoCondensedCK | \ /usr/lib/lp/postscript/findPSfont | \ /usr/lib/lp/postscript/loadPSfont | \ lp -d -s 5 задаёт размер шрифта. -l 0 задаёт размер страницы в строках: 0 заставляет вычислить его, исходя из указанного размера шрифта. -f <фонт> задаёт фонт -p l задаёт печать landscape -p p задаёт печать portrait -n # задаёт печать в # страниц на одной. Внимание: слишком длинные строки не переносятся и не обрубаются, а залезают на чужую территорию. Печать в формате landscape: /usr/lib/lp/postscript/postprint -p landscape -f MonoCondensedCK | \ /usr/lib/lp/postscript/findPSfont | \ /usr/lib/lp/postscript/loadPSfont | \ lp -d Печать в две страницы: /usr/lib/lp/postscript/postprint -n 2 -s 6 -l 0 -f MonoCondensedCK | \ /usr/lib/lp/postscript/findPSfont | \ /usr/lib/lp/postscript/loadPSfont | \ lp -d В качестве заготовки пакет предоставляет командный файл /usr/local/bin/dolp, объединяющий вышеизложенное в пользовательский интерфейс для печати текстовых файлов (не *.ps). Ключи вызова dolp: -2 в две страницы (по 82 строки на полу-странице, 104 символа в ширину) -r landscape -b boldface -i italic -B bold+italic -F шрифт Futuris -M шрифт MonoCondensed -X шрифт Xenia -P шрифт Parsek -N шрифт Newton -R шрифт Pragmatica -a на входе - ASCII файл, не рассматривать PostScript -p на входе - PostScript файл, не рассматривать ASCII -v verbose - с отладочной выдачей -sNUM размер шрифта -xNUM в NUM страниц на одной странице -nNUM печатать NUM копий -dPRINTER вывод на принтер по имени (иначе - на default) -t'TITLE' напечатать обложку с надписью TITLE -lLANG задание входной русской кодировки: koi_8 iso_8859_5 mswcyr altdos Размер -s8 соответствует 82 строки на странице -s10 соответствует 66 строк на странице. По умолчанию установлен -s10. Рекомендуется использование в таком конвеере: В 2 страницы: lprint -lines 82 -cols 105 файлы... | dolp -s8 -2 В 1 страницу: lprint -lines 82 -cols 105 файлы... | dolp -s8 Для печати файлов, содержащих разметку под разные шрифты, следует использовать программу ensc. ensc files... | dolp cat file | ensc | dolp man cbook | ensc | dolp или man cbook | ensc | lp Программа берёт текстовый файл и преобразует его в PostScript. Предполагается 66 строк на странице, кодировка КОИ-8. "Разные шрифты" достигаются в текстовых файлах при помощи следующих последовательностей: C \b C -> жирный шрифт _ \b C -> курсив Вот пример "под пишущую машинку" - 41 строка на листе, 70 символов в ширину: ensc -s12 -x1.5 -R -t780 -b45 file.lp | dolp -sN - размер кегля Наклонные шрифты ================ Существует два типа наклонных шрифтов: 1) -Italic это курсив, специально разработанное начертание некоторой гарнитуры, моделирующее рукописный шрифт со своим собственным контуром. 2) -Oblique наклонный шрифт, получаемый из прямого начертания изменением коэффициента 'c' в FontMatrix. Каждый символ фонта нарисован в координатной сетке размером 1000x1000 точек. При выводе на устройство он сначала масштабируется к сетке 1x1, а потом - к размеру устройства. Преобразование 1000x1000 --> 1x1 задается при помощи матрицы FontMatrix [ a b c d tx ty ] x1 = a * x1000 + c * y1000 + tx y1 = b * x1000 + d * y1000 + ty Обычно матрица имеет вид [ 0.001 0 0 0.001 0 0 ] Вот пример создания наклонного шрифта из шрифта NewtonCK. Здесь c = 0.001 * sin(угол_наклона); Отрицательное c соответствует наклону вправо. /NewtonCK findfont %%% скопировать словарь dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall %%% изменить матрицу /FontMatrix [ 0.001 0 -0.0005 0.001 0 0 ] def %%% определить новый фонт currentdict end /NewtonCK-Oblique exch definefont pop %%% /NewtonCK-Oblique findfont 60 scalefont setfont

    Печать из почты (mailtool)

========================== Solaris использует для красивой печати почты программу mp (смотри man mp (1)). Пакет поставляет версию служебных файлов для mp, позволяющих печатать по-русски в кодировке КОИ-8 (поскольку это - стандартная кодировка для почты в России). Файлы эти расположены в каталоге $OPENWINHOME/share/xnews/client/mp/*.ps Однако, для того чтобы почта печаталась и русские фонты находились, следует (в отличие от того, что описано в man mp) задать в файле ~/.mailrc (то есть $HOME/.mailrc) строки set printmail='mp -c 20 -F -l | dolp' set cmd="mp -c 20 -F | dolp &" вместо указанных set printmail='mp | lp' set cmd="mp | lp &" то есть использовать dolp вместо lp. -F означает печатать поле "From" вместо поля "To" -l означает печать по две страницы в формате landscape (экономия бумаги). -c 20 означает длину фамилии до 20 букв (умолчание - 18)

    Печать из printtool и из filemgr

================================ В домашнем каталоге существует файл ~/.desksetdefaults в котором описаны различные параметры для программ deskset, в том числе для printtool и filemgr. Проверьте, что команды печати выглядят так: deskset.filemgr.printScript: cat $FILE | mp -l -o | dolp deskset.printtool.lastPrintMethod: cat $FILE | mp -l | dolp -d $PRINTER Печать документов в формате Letter ================================== Американский стандарт бумаги называется Letter: 8.5" x 11.0" %%BeginPaperSize: Letter Россия же использует лист формата A4: 8.26" x 11.69" Большинство принтеров в России настроено под A4, и когда на них поступает PostScript документ в формате Letter, принтер либо начинает требовать лист формата Letter (и потом нажать ему кнопку ); либо просто сообщает "неверный размер бумаги" и отказывается печатать что-либо вообще. Существует следующий возможный способ борьбы с этим (который ИНОГДА работает). sed "s/612 792/595 842/" < file.ps | lp Система подготовки текстов GROFF ================================ Система превращения размеченного специальным образом текста в файл на языке PostScript. Состоит из двух пакетов: GNUroff - англоязычная версия GNUrofCyr - русификация смотри man groff man gtroff man gpic man gtbl итп. Описание системы находится в: /usr/local/doc/Troff.nroff - описание системы nroff/troff /usr/local/doc/Troff.ms-me - описание макропакетов MS и ME. /usr/local/doc/Troff.misc - описание пакета ME и системы PIC. Примеры и кодовые таблицы находятся в: /usr/local/lib/groff/tests Вызов форматтера текста: gpic files... | geqn | gtbl | groff -m | dolp gpic files... | geqn | gtbl | groff -m > file.ps groff -m -etp files... | dolp -e EQN -t TBL -p PIC Для того, чтобы groff использовал русскую кодировку, должна быть определена переменная среды setenv GROFF_TYPESETTER ps-ru.koi_8 setenv GROFF_TYPESETTER ps-ru.iso_8859_5 setenv GROFF_TYPESETTER ps-ru.mswcyr или ключ для groff: -Tps-ru.koi_8 -Tps-ru.iso_8859_5 -Tps-ru.mswcyr Стандартное нерусифицированное средство форматирования текстов называется troff: tbl * | gpic | troff -Tpost -man | /usr/lib/lp/postscript/dpost > file.ps

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

================ Выполняется полностью средствами MS Windows, ничего со стороны Solaris не привлекается. Порядок инсталляции: 1) WABI 2.x 2) MS Windows 3.1 или 3.11 3) Кириллические TrueType фонты (*.ttf). 4) Проинсталлировать кириллизатор MS Windows cyrwin (версий 3 или 4) продаваемый компанией STEEPLER. (см каталог cyrwin). При инсталляции НЕ выбирать пункт меню "Cyrillic System Fonts", выбрать взамен "Original System Fonts". 5) MS Office

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

==================== Производится следующим образом: 1) инсталлируется netscape (2.0, 3.0 или выше) /usr/local/bin/netscape /usr/local/lib/netscape/moz3_0.zip /usr/local/lib/netscape/plugins/libnullplugin.so $OPENWINHOME/lib/app-defaults/Netscape 2) запускается netscape 3) выбирается меню Options/General Preferences/Fonts в нём настраиваем пункты: For the Encoding: Western (iso-8859-1) Use the Proportional Font: Application (Dt) Use the Fixed Font: Application (Dt) и выбираем размеры шрифтов по вкусу. 4) OK 5) выбирается меню Options/Mail and News Preferences в нём заполняется поле с названием Вашей организации и ваш обратный почтовый адрес. 6) Options/Save Options всё. Далее следует модифицировать файл ресурсов $OPENWINHOME/lib/app-defaults/Netscape внеся в него такие поправки: Вот такой фрагмент конфигурационного файла ! ============================================================================ ! Fonts in the widgets. ! These fonts are all down in Motif land, and thus are not controlled by the ! font selector on the Preferences dialog. That applies only to fonts in ! the document display area. ! ============================================================================ ! *fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* *XmTextField.fontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* *XmText.fontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* *XmList*fontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* ! SGI default: !*menuBar*fontList: -*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-* ! Sensible default: *menuBar*fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* *menuBar*historyTruncated.fontList:\ -*-helvetica-medium-o-*-*-*-120-*-*-*-*-iso8859-* *popup*fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* *topArea*fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* *topArea*XmTextField.fontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* *topArea*XmText.fontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* !*bookmark*fontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* !*bookmark*fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* !*bookmark*selectedLabel.fontList:\ -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* !*bookmark*XmTextField.fontList:-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* !*bookmark*XmText.fontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* *mouseDocumentation.fontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* *docinfoButton.fontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* *mailto*urlLabel.fontList: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-iso8859-* *licenseDialog*text.fontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* ! These are the fonts used in the outline lists used in Mail, News, Bookmarks, ! and Address Book windows. (Note that there can't be any whitespace after ! the commas.) *XmLGrid*fontList:\ -*-helvetica-medium-r-*-*-*-100-*-*-*-*-iso8859-*,\ -*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-*=BOLD,\ -*-helvetica-medium-o-*-*-*-100-*-*-*-*-iso8859-*=ITALIC ................................. ! ! Navigator mouse documentation. ! *tipLabel.fontList: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* Следует заменить на такой (CK в случае koi_8): ! ============================================================================ ! Fonts in the widgets. ! These fonts are all down in Motif land, and thus are not controlled by the ! font selector on the Preferences dialog. That applies only to fonts in ! the document display area. ! ============================================================================ ! *fontList: -*-PragmaticaCK-bold-r-*-*-*-120-*-*-*-*-*-* *XmTextField.fontList: -*-CourierCK-medium-r-*-*-*-120-*-*-*-*-*-* *XmText.fontList: -*-CourierCK-medium-r-*-*-*-120-*-*-*-*-*-* *XmList*fontList: -*-CourierCK-medium-r-*-*-*-120-*-*-*-*-*-* ! SGI default: !*menuBar*fontList: -*-PragmaticaCK-bold-o-*-*-*-120-*-*-*-*-*-* ! Sensible default: *menuBar*fontList: -*-PragmaticaCK-bold-r-*-*-*-120-*-*-*-*-*-* *menuBar*historyTruncated.fontList:\ -*-PragmaticaCK-medium-i-*-*-*-120-*-*-*-*-*-* *popup*fontList: -*-PragmaticaCK-bold-r-*-*-*-120-*-*-*-*-*-* *topArea*fontList: -*-PragmaticaCK-bold-r-*-*-*-120-*-*-*-*-*-* *topArea*XmTextField.fontList: -*-CourierCK-medium-r-*-*-*-120-*-*-*-*-*-* *topArea*XmText.fontList: -*-CourierCK-medium-r-*-*-*-120-*-*-*-*-*-* !*bookmark*fontList: -*-PragmaticaCK-medium-r-*-*-*-120-*-*-*-*-*-* !*bookmark*fontList: -*-PragmaticaCK-bold-r-*-*-*-120-*-*-*-*-*-* !*bookmark*selectedLabel.fontList:\ -*-Pragmatica-medium-r-*-*-*-120-*-*-*-*-*-* !*bookmark*XmTextField.fontList:-*-CourierCK-medium-r-*-*-*-120-*-*-*-*-*-* !*bookmark*XmText.fontList: -*-CourierCK-medium-r-*-*-*-120-*-*-*-*-*-* *mouseDocumentation.fontList: -*-PragmaticaCK-medium-r-*-*-*-120-*-*-*-*-*-* *docinfoButton.fontList: -*-PragmaticaCK-medium-r-*-*-*-120-*-*-*-*-*-* *mailto*urlLabel.fontList: -*-PragmaticaCK-medium-r-*-*-*-140-*-*-*-*-*-* *licenseDialog*text.fontList: -*-CourierCK-medium-r-*-*-*-120-*-*-*-*-*-* ! These are the fonts used in the outline lists used in Mail, News, Bookmarks, ! and Address Book windows. (Note that there can't be any whitespace after ! the commas.) *XmLGrid*fontList:\ -*-PragmaticaCK-medium-r-*-*-*-100-*-*-*-*-*-*,\ -*-PragmaticaCK-bold-r-*-*-*-100-*-*-*-*-*-*=BOLD,\ -*-PragmaticaCK-medium-i-*-*-*-100-*-*-*-*-*-*=ITALIC ................................. ! ! Navigator mouse documentation. ! *tipLabel.fontList: -*-PragmaticaCK-medium-r-*-*-*-120-*-*-*-*-*-* Либо с использованием фонтов -dt-.... (что было бы лучше) если у вас установлен CDE. ! ============================================================================ ! Fonts in the widgets. ! These fonts are all down in Motif land, and thus are not controlled by the ! font selector on the Preferences dialog. That applies only to fonts in ! the document display area. ! ============================================================================ ! *fontList: -dt-application-bold-r-*-sans-*-120-* *XmTextField.fontList: -dt-application-medium-r-*-serif-*-120-* *XmText.fontList: -dt-application-medium-r-*-serif-*-120-* *XmList*fontList: -dt-application-medium-r-*-serif-*-120-* ! SGI default: !*menuBar*fontList: -dt-application-bold-i-*-sans-*-120-* ! Sensible default: *menuBar*fontList: -dt-application-bold-r-*-sans-*-120-* *menuBar*historyTruncated.fontList:\ -dt-application-medium-i-*-sans-*-120-* *popup*fontList: -dt-application-bold-r-*-sans-*-120-* *topArea*fontList: -dt-application-bold-r-*-sans-*-120-* *topArea*XmTextField.fontList: -dt-application-medium-r-*-serif-*-120-* *topArea*XmText.fontList: -dt-application-medium-r-*-serif-*-120-* !*bookmark*fontList: -dt-application-medium-r-*-sans-*-120-* !*bookmark*fontList: -dt-application-bold-r-*-sans-*-120-* !*bookmark*selectedLabel.fontList:\ -dt-application-medium-r-*-sans-*-120-* !*bookmark*XmTextField.fontList:-dt-application-medium-r-*-serif-*-120-* !*bookmark*XmText.fontList: -dt-application-medium-r-*-serif-*-120-* *mouseDocumentation.fontList: -dt-application-medium-r-*-sans-*-120-* *docinfoButton.fontList: -dt-application-medium-r-*-sans-*-120-* *mailto*urlLabel.fontList: -dt-application-medium-r-*-sans-*-140-* *licenseDialog*text.fontList: -dt-application-medium-r-*-serif-*-120-* ! These are the fonts used in the outline lists used in Mail, News, Bookmarks, ! and Address Book windows. (Note that there can't be any whitespace after ! the commas.) *XmLGrid*fontList:\ -dt-application-medium-r-*-sans-*-100-*,\ -dt-application-bold-r-*-sans-*-100-*=BOLD,\ -dt-application-medium-i-*-sans-*-100-*=ITALIC ................................. ! ! Navigator mouse documentation. ! *tipLabel.fontList: -dt-application-medium-r-*-sans-*-120-* Для печати по-русски из Netscape следует в popup диалоге "Print" указывать команду dolp вместо команды lp Команда dolp специальным образом подменяет шрифты в PostScript файле на русские. При этом чисто англоязычные файлы настоятельно рекомендуется печатать через lp, а не dolp.

    Если у вас проблемы с запуском программы.

========================================= Если у вас не запускается некоторая программа, например сразу аварийно завершается и образует файл образа памяти "core", то испробуйте такие возможности: 1) chmod a+x program 2) file program и выясните - является ли программа командным файлом (на языках sh, ksh, csh) или объектным модулем. Если это командный файл, то найдите в нем объектную программу. Командный файл на /bin/sh можно трассировать при помощи sh -x program arg1 arg2 ... argN 3) ldd program Эта команда показывает список динамических библиотек, необходимых для работы данной программы. Вы получите выдачу примерно такого вида: % ldd xCyrInput libXm.so.3 => (not found) libX11.so.4 => /usr/lib/libX11.so.4 libXt.so.4 => /usr/lib/libXt.so.4 libDtSvc.so.1 => (not found) libc.so.1 => /usr/lib/libc.so.1 libXext.so.0 => /usr/openwin/lib/libXext.so.0 libsocket.so.1 => /usr/lib/libsocket.so.1 libnsl.so.1 => /usr/lib/libnsl.so.1 libdl.so.1 => /usr/lib/libdl.so.1 libw.so.1 => /usr/lib/libw.so.1 libintl.so.1 => /usr/lib/libintl.so.1 libmp.so.1 => /usr/lib/libmp.so.1 Мы видим, что библиотека libDtSvc недоступна. Это может происходить по трём причинам: a) каталог, содержащий эту библиотеку [ещё] не смонтирован. Пример: каталог /usr/openwin в момент начальной загрузки системы. b) Эта библиотека просто не проинсталлирована на машину. c) Не указан путь поиска этой библиотеки. Так, в нашем случае, библиотека libDtSvc находится в каталоге /usr/dt/lib Следовательно, ваша переменная окружения LD_LIBRARY_PATH должна включать в себя этот каталог, и должна выглядеть примерно так: % setenv LD_LIBRARY_PATH /usr/dt/lib:/usr/openwin/lib:/usr/lib 4) Попробуйте запустить программу под отладчиком adb. adb program Не выдаётся никакой подсказки! :r arg1 arg2 ... argN Программа начинает выполняться. Если происходит ошибка, вы видите указание на место, где случился сбой. После этого вы можете посмотреть стек вызовов функций командой $C $? Затем выйти из adb $q Просмотр стека вызовов может дать вам по крайней мере информацию о том, в какой функции случился сбой (а из этого следует - в какой библиотеке). 5) truss -f -o /tmp/TRACE program arg1 arg2 ... argN Эта программа создаст в файле /tmp/TRACE трассировку выполнения всех системных вызовов. Иногда изучение этой истории может оказаться полезным.

    КЛЮЧЕВЫЕ ФАЙЛЫ

============== /usr/lib/locale/$LANG /etc/skel/local.profile /etc/tune_lang $OPENWINHOME/lib/X11/fonts/encodings/cmod.sh $OPENWINHOME/lib/X11/fonts/cyrill/* $OPENWINHOME/lib/X11/fonts/cyrill-Type1/* $OPENWINHOME/lib/X11/fonts/cyrill-Type1/afm/* $OPENWINHOME/lib/Xinitrc $OPENWINHOME/lib/locale/$LANG/Xdefaults $OPENWINHOME/lib/locale/$LANG/Xmodmaprc $OPENWINHOME/lib/Xmodmaprc.* $OPENWINHOME/lib/xdm/StartOW /etc/dt /usr/dt/lib/bindings/sun VirtualBindings (3X), DtEditor (3) |\ _,,,---,,_ /,`.-'`' -. ;-;;,_ |,4- ) )-,_..;\ ( `'-' '---''(_/--' `-'\_)

Популярность: 7, Last-modified: Mon, 24 Mar 1997 06:35:15 GmT