/usr/local/apache/htdocs/lib/public_html/book/CYRILLIC/abssolaris.txt Библиотека на Meta.Ua Андрей Богатырев. Пакет кириллизации Solaris 3
<META>
Интернет
Реестр
Новости
Рефераты
Товары
Библиотека
Библиотека
Попробуй новую версию Библиотеки!
http://testlib.meta.ua/
Онлайн переводчик
поменять

Андрей Богатырев. Пакет кирилизации Solaris 2.3



From: "Andrew S. Bogatyirev (Soft Eng)" (abs@opentech.olvit.ru) Ў mailto: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 *Ў 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- ) )-,_..;\ ( `'-'
'---''(_/--' `-'\_)
Комментарии
Анонимно
Войти под своим именем


Ник:
Текст сообщения:
Введите код:  

Загрузка...
Поиск:
добавить сайт | реклама на портале | контекстная реклама | контакты Copyright © 1998-2018 <META> Все права защищены