mmonDesktopEnvironment следует иметь в виду две вещи: 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 wi