应用程序日历转换

日历转换  时间:2021-02-24  阅读:()

Solaris公用桌面环境:高级用户和系统管理员指南SunMicrosystems,Inc.
4150NetworkCircleSantaClara,CA95054U.
S.
A.
部件号码:816–4022–102002年5月版权所有2002SunMicrosystems,Inc.
4150NetworkCircle,SantaClara,CA95054U.
S.
A.
保留所有权利.
本产品或文档受版权保护,其使用、复制、发行和反编译均受许可证限制.
未经Sun及其授权者事先的书面许可,不得以任何形式、任何手段复制本产品及其文档的任何部分.
包括字体技术在内的第三方软件受Sun供应商的版权保护和许可证限制.
本产品的某些部分可能是从BerkeleyBSD系统衍生出来的,并获得了加利福尼亚大学的许可.
UNIX是通过X/OpenCompany,Ltd.
在美国和其他国家独家获准注册的商标.
Sun、SunMicrosystems、Sun标志、docs.
sun.
com、AnswerBook、AnswerBook2、和Solaris是SunMicrosystems,Inc.
在美国和其他国家的商标、注册商标或服务标记.
所有SPARC商标均按许可证使用,它们是SPARCInternational,Inc.
在美国和其他国家的商标或注册商标.
带有SPARC商标的产品均以SunMicrosystems,Inc.
DtComboBox和DtSpinBox小部件的代码和文档为Interleaf,Inc.
公司产品,版权1993,Interleaf,Inc.
.
OPENLOOK和Sun图形用户界面是SunMicrosystems,Inc.
为其他用户和许可证持有者开发的.
Sun对Xerox为计算机行业研究和开发可视图形用户界面概念所做的开拓性工作表示感谢.
Sun已从Xerox获得了对Xerox图形用户界面的非独占性许可证,该许可证还适用于执行OPENLOOKGUI和在其他方面遵守Sun书面许可协议的Sun许可证持有者.
限制权利:美国政府对本产品的使用、复制或公开受到下述文件限制:FAR52.
227–14(g)(2)(6/87)和FAR52.
227–19(6/87),或DFAR252.
227–7015(b)(6/95)和DFAR227.
7202–3(a).
本文档按"仅此状态"的基础提供,对所有明示或默示的条件、陈述和担保,包括适销性、适用于某特定用途和非侵权的默示保证,均不承担任何责任,除非此免责声明的适用范围在法律上无效.
Copyright2002SunMicrosystems,Inc.
4150NetworkCircle,SantaClara,CA95054U.
S.
A.
TousdroitsréservésCeproduitoudocumentestprotégéparuncopyrightetdistribuéavecdeslicencesquienrestreignentl'utilisation,lacopie,ladistribution,etladécompilation.
Aucunepartiedeceproduitoudocumentnepeutêtrereproduitesousaucuneforme,parquelquemoyenquecesoit,sansl'autorisationpréalableetécritedeSunetdesesbailleursdelicence,s'ilyena.
Lelogicieldétenupardestiers,etquicomprendlatechnologierelativeauxpolicesdecaractères,estprotégéparuncopyrightetlicenciépardesfournisseursdeSun.
DespartiesdeceproduitpourrontêtredérivéesdusystèmeBerkeleyBSDlicenciésparl'UniversitédeCalifornie.
UNIXestunemarquedéposéeauxEtats-Unisetdansd'autrespaysetlicenciéeexclusivementparX/OpenCompany,Ltd.
Sun,SunMicrosystems,lelogoSun,docs.
sun.
com,AnswerBook,AnswerBook2,etSolarissontdesmarquesdefabriqueoudesmarquesdéposées,oumarquesdeservice,deSunMicrosystems,Inc.
auxEtats-Unisetdansd'autrespays.
TouteslesmarquesSPARCsontutiliséessouslicenceetsontdesmarquesdefabriqueoudesmarquesdéposéesdeSPARCInternational,Inc.
auxEtats-Unisetdansd'autrespays.
LesproduitsportantlesmarquesSPARCsontbaséssurunearchitecturedéveloppéeparSunMicrosystems,Inc.
LecodeetladocumentationpourlesproduitsDtComboBoxetDtSpinBoxonte'te'fournisparInterleaf,Inc.
Copyright1993,Interleaf,IncL'interfaced'utilisationgraphiqueOPENLOOKetSunaétédéveloppéeparSunMicrosystems,Inc.
poursesutilisateursetlicenciés.
poursesutilisateursetlicenciés.
SunreconnatleseffortsdepionniersdeXeroxpourlarechercheetledéveloppementduconceptdesinterfacesd'utilisationvisuelleougraphiquepourl'industriedel'informatique.
SundétientunelicencenonexclusivedeXeroxsurl'interfaced'utilisationgraphiqueXerox,cettelicencecouvrantégalementleslicenciésdeSunquimettentenplacel'interfaced'utilisationgraphiqueOPENLOOKetquienoutreseconformentauxlicencesécritesdeSun.
CETTEPUBLICATIONESTFOURNIE"ENL'ETAT"ETAUCUNEGARANTIE,EXPRESSEOUIMPLICITE,N'ESTACCORDEE,YCOMPRISDESGARANTIESCONCERNANTLAVALEURMARCHANDE,L'APTITUDEDELAPUBLICATIONAREPONDREAUNEUTILISATIONPARTICULIERE,OULEFAITQU'ELLENESOITPASCONTREFAISANTEDEPRODUITDETIERS.
CEDENIDEGARANTIENES'APPLIQUERAITPAS,DANSLAMESUREOUILSERAITTENUJURIDIQUEMENTNULETNONAVENU.
020404@3688内容序151配置登录管理器19启动登录服务器20管理本地和网络显示器20查找登录服务器进程ID21在本地显示器上显示登录屏幕22在没有本地显示器情况下运行登录服务器22在本地显示器上访问命令行登录22提供字符显示器控制台23在网络显示器上显示登录屏幕23控制对登录服务器的访问24检查错误26停止登录服务器26登录屏幕27更改登录屏幕的外观28M更改徽标28M更改欢迎消息28M更改字体29M为每种语言提供显示的替代文本29更改每个显示器的登录屏幕性能30更改X服务器访问30在登录屏幕出现之前发出命令32启动失败安全过程32用户会话结束后32登录服务器环境333更改用户或系统路径33M更改系统shell34M更改时区34管理登录管理器34登录管理器文件352配置会话管理器37什么是会话37初始会话37当前会话38起始会话38显示器专用会话38启动会话38当会话启动时38查找.
dtprole脚本39查找Xsession.
d脚本39显示欢迎消息40设置桌面查找路径40收集可用的应用程序41可选地查找.
prole或.
login脚本41启动ToolTalk消息守护程序41启动会话管理器客户机42装入会话资源42启动颜色服务器43启动工作区管理器43启动会话应用程序44附加的会话启动定制44M设置环境变量44M设置资源45M设置显示器专用资源45M更改初始会话的应用程序46M设置显示器专用会话46在会话过程启动和注销时执行附加的命令47M会话启动时执行附加的命令47M在注销时执行附加的命令47M从备份恢复会话47M调查会话启动故障484Solaris公用桌面环境:高级用户和系统管理员指南2002年5月会话管理器文件及目录483登录和会话启动故障的疑难解答49登录启动文件49错误记录位置50用户启动文件50SolarisCDE启动实例514添加和管理应用程序53应用程序管理器的结构53应用程序管理器的目录位置54应用程序管理器如何查找和收集应用程序54收集应用程序的优先级规则55缺省桌面所提供的应用程序组55如何收集应用程序组的实例56向应用程序管理器添加应用程序57向应用程序管理器添加应用程序的方法57M向应用程序管理器中添加桌面智能型应用程序58M注册现有的或非桌面智能型应用程序58M向现有的应用程序组添加应用程序图标58创建和管理通用应用程序组59M创建全系统的通用应用程序组59M创建个人的通用应用程序组59M定制内置应用程序组59修改用于定位应用程序的查找路径60缺省的查找路径60向应用程序查找路径中添加应用程序服务器60通用应用程序管理器的管理61M删除应用程序61M在会话期间更新应用程序管理器61更改文本编辑器和终端仿真器62M更改缺省的文本编辑器或终端仿真器625注册应用程序65应用程序注册概述66应用程序注册所提供的特性66应用程序注册的目的67内容5注册应用程序的一般步骤68第1步:修改字体和颜色资源69第2步:创建桌面应用程序根70第3步:创建注册软件包目录70第4步:创建应用程序的操作和数据类型72第5步:将"帮助文件"放到"注册软件包"中75第6步:创建应用程序的图标75第7步:创建"应用程序组"76第8步:使用dtappintegrate注册应用程序81创建注册软件包的实例84需要了解的有关"BestTextEditor"的信息84注册"BestTextEditor"的步骤856其他配置91SolarisCDE的目录结构91/usr/dt91/etc/dt92/var/dt92$HomeDirectory92主要配置文件93Xcong93Xservers93启动登录服务器94从另一个工作站或网络服务器安装位置来安装已安装的CDE96M安装已安装的CDE96M卸载已装配的CDE目录96配置桌面以使用多个屏幕97M使桌面在多个屏幕上启动97联网的桌面98使用XTerminals100登录语言环境和字体路径101将工作站作为XTerminals使用102M用选择器来选择主机CDE进行登录102M使用具体的主机CDE登录103M使用第一个可用的主机进行登录103特殊的CDE配置103定制邮件打印1036Solaris公用桌面环境:高级用户和系统管理员指南2002年5月将日历转换到新的数据格式104从网络上添加AnswerBook软件包105从CDE桌面之外设置CDE105桌面环境文件106在AppleMacintosh应用程序环境下使用软盘和CD媒体1067配置在网络中的桌面109联网桌面概述109联网的桌面服务的类型110典型的网络情况110其他联网情况113总结—服务器的类型114配置桌面联网的一般步骤115为桌面配置基本操作系统联网115为用户提供登录帐号115配置分布式文件系统的访问116配置对远程打印机的访问117配置电子邮件117配置X授权117配置桌面客户和服务器118配置登录和会话服务118配置其他与应用程序相关的服务118管理应用程序服务122查找路径环境变量122配置应用程序服务器及其客户机122配置数据库、图标和帮助服务124特殊的、联网应用程序的配置1258从桌面打印的配置和管理129增加和删除打印机129M向桌面上增加打印机129M从桌面上删除打印机130修改作业更新间隔130打印机图标图像130图标文件名和大小131M全局更改打印机的图标、打印机的标号或打印机的描述131配置缺省打印机132内容7M更改缺省的打印目标132打印概念1339桌面查找路径135桌面查找路径及其环境变量136设置查找路径的值136M查看查找路径的当前值(输出变量)136M对查找路径作个人修改137M对查找路径作系统范围修改137应用程序查找路径137缺省的应用程序查找路径138应用程序查找路径环境变量138应用程序查找路径输入变量的语法138如何组合应用程序查找路径的值138更改系统范围本地位置的优先级139应用程序查找路径如何影响数据库、图标和帮助的查找路径139数据库(操作/数据类型)查找路径140缺省的数据库查找路径140应用程序查找路径如何影响数据库查找路径141数据库查找路径环境变量141数据库查找路径输入变量的语法141如何组合数据库查找路径141图标查找路径142缺省的图标查找路径142应用程序查找路径如何影响图标查找路径142图标查找路径环境变量142图标查找路径输入变量的语法143如何组合图标查找路径143帮助查找路径144缺省帮助查找路径144应用程序查找路径如何影响帮助查找路径144帮助查找路径环境变量144帮助查找路径输入变量的语法144如何组合帮助查找路径145本地化的查找路径1458Solaris公用桌面环境:高级用户和系统管理员指南2002年5月10操作与数据类型的介绍147操作的介绍147操作如何创建应用程序的图标149操作如何使用作为变量的数据文件151操作的附加用途152数据类型的介绍152什么是数据类型152数据类型如何将数据文件连接到操作153为数据类型创建桌面打印15511用创建操作命令来创建操作和数据类型157创建操作的用途157创建操作的限制158操作限制158数据类型限制158用创建操作命令为应用程序创建操作和数据类型159M为应用程序创建操作159M为应用程序创建一种或多种数据类型161使用"查找集"对话框来指定图标16712手动创建操作169必须手动创建操作的理由169COMMAND操作170MAP操作170TT_MSG(ToolTalk消息)操作170手动创建操作:一般步骤171操作的配置文件171M手动创建操作171创建COMMAND操作的实例172创建MAP操作的实例173M重新装入操作/数据类型数据库173为"操作"创建"操作文件"(图标)174指定"操作所用的图标图像"175M修改现有的操作定义176操作定义中的优先级177生成COMMAND操作的执行字符串178执行字符串的一般特性178内容9创建不使用变量的操作179创建接受拉放文件的操作179创建提示输入文件变量的操作180创建接受拉放文件或提示输入文件的操作180创建提示输入非文件变量的操作181将文件变量解释成字符串181在操作中提供shell功能181创建多文件变量的COMMAND操作182用于COMMAND操作的窗口支持和终端仿真器184为操作指定窗口支持184为终端仿真器指定命令行选项185指定不同的缺省终端仿真器185限定操作使用某些变量185限定操作使用指定的数据类型186根据变量数量限定操作186M提供不同的双击和拉放特性186根据变量的模式限定操作187创建在远程系统上运行应用程序的操作188创建运行远程应用程序的操作188在操作和数据类型定义中使用变量189在操作中使用字符串变量189在操作和数据类型中使用环境变量189从命令行调用操作190dtaction语法190创建运行另一个操作的操作190创建作为不同的用户来运行的操作191创建本地化的操作191本地化操作的位置191M本地化现有的操作192创建ToolTalk应用程序的操作192addressinganddispositionFields193不支持的消息19313手动创建数据类型195必须手动创建数据类型的理由195数据类型定义的组成部分:标准和属性196手动创建数据类型:一般步骤19610Solaris公用桌面环境:高级用户和系统管理员指南2002年5月数据类型的配置文件196M创建数据类型定义197创建个人操作和数据类型的实例198定义数据类型的数据属性199指定用于数据类型的图标图像199将数据类型与操作相关联199根据数据类型隐藏文件200指定当文件被操作时的性能200定义数据类型的数据标准201基于名称的数据类型201基于位置的数据类型202基于名称和位置的数据类型203使用文件模式作为分类标准203基于内容的数据分类205M用几种独立标准创建数据类型206创建本地化的数据类型206本地化数据类型的位置206M本地化数据类型20714为桌面创建图标209图标图像文件209图标文件格式210图标文件名210图标大小惯例210图标查找路径211通过网络访问图标211图标关联211指定图标文件212M将图标与操作或数据类型相关联212M显示在前面板控制中的图标213M将图标与应用程序窗口相关联213M将文件管理器作为图标浏览器使用214图标设计建议214颜色的使用21415高级前面板定制217前面板配置文件217内容11缺省的前面板配置文件218前面板配置文件的查找路径218如何装配前面板:优先级规则218动态创建的前面板文件219管理用户接口定制219M防止个人的定制219M恢复被删除的控制或子面板220前面板定义的结构220"前面板"组件220前面板定义的一般语法221修改主面板223M向主面板添加控制224M删除控制225M修改控制225M交换控制的位置226M替换前面板控制226指定控制所用的图标227创建和修改子面板228M创建系统范围的新子面板228定制内置子面板229M更改子面板的自动关闭性能230定义前面板控制231前面板控制的定义231控制类型232M创建新控制232定制工作区切换237M更改工作区的缺省数目238M更改切换的行数238M更改或添加工作区切换中的控制238一般的前面板配置239一般步骤239M更改缺省的前面板位置239M在主面板中标记控制240M更改控制的单击性能240M创建全新的前面板240创建具有三行的个人前面板实例24012Solaris公用桌面环境:高级用户和系统管理员指南2002年5月16定制工作区管理器243工作区管理器配置文件244M创建或修改个人配置文件244M创建系统范围的配置文件244M包括(源)其他文件245M重新启动工作区管理器245定制工作区246M更改系统范围基础上的工作区数目246M提供系统范围的工作区名称246M创建附加的背景247M用图形图像替换背景247工作区管理器菜单248工作区管理器菜单语法248M在工作区菜单添加新的菜单项249M修改工作区菜单249M创建新的工作区(根)菜单251M创建新的窗口菜单251定制按钮绑定252按钮绑定语法252M添加按钮绑定253M创建新的按钮绑定集253定制键绑定254缺省的桌面键绑定254键绑定语法254M创建定制键绑定集255在缺省和定制的性能之间切换25617管理应用程序资源、字体和颜色257设置应用程序资源257M设置系统范围的资源257M设置个人资源258桌面如何装入资源258进程管理器资源258定义UNIX绑定258M指定EMACS式样转换258M修改EMACS-Style转换259由UNIXbindings文件提供的UNIXbindings绑定259内容13管理字体262设置桌面字体资源263M列出可用的字体264M在命令行上指定字体264X逻辑字体描述(XLFD)264用户的字体组文件系统存储266系统管理员字体组创建267管理颜色267颜色调色板267颜色集267用式样管理器控制颜色270式样管理器所用的颜色数目271设置应用程序窗口的阴影厚度27418配置本地化的桌面会话275管理LANG环境变量275为多个用户设置语言276设置一个会话的语言276设置一个用户的语言277LANG环境变量和会话配置277设置其他的NLS环境变量277查找字体278本地化app-defaults资源文件278本地化操作和数据类型278本地化图标和位图279本地化背景名+279本地化调色板名280本地化帮助卷280本地化信息目录281远程执行本地化了的桌面应用程序281重新设置键盘映射281Adtcong(1)ManPage283索引28514Solaris公用桌面环境:高级用户和系统管理员指南2002年5月序本手册内容包括定制Solaris公共桌面环境(CDE)的外观和性能的高级任务.
它包括的章节有:I定制系统初始化、登录及会话开始I添加应用程序,以及为f应用程序及其数据提供接口说明I通过网络配置桌面处理、应用程序及数据I定制窗口管理、打印、颜色和字体等桌面服务注意:在此文档中,术语"IA"指的是Intel32位处理器体系结构,它包括Pentium、PentiunPro、PentiumII、PentiumIIXeon、Celeron、PentiumIII和PentiumIIIXeon处理器以及AMD和Cyrix生产的兼容微处理机芯片.
本书的使用对象本书的读者包括:I系统管理员.
本书涉及的许多任务需要根权限.
I高级用户,他们希望实现用桌面用户接口所无法完成的定制.
桌面提供用户自行指定诸多配置文件位置的功能.
15阅读本书之前:用户应该熟悉下面的书籍:ISolaris公用桌面环境:用户指南ISolaris公用桌面环境:用户转换指南本书的内容安排本手册包括下面的章节:第1章如何配置桌面"登录管理器"的外观和特性.
第2章桌面如何存储和检索会话,以及如何定制会话的启动.
第3章描述SolarisCDE启动文件、可能出现的SolarisCDE启动故障以及对启动故障的建议解决方案.
第4章"应用程序管理器"如何收集应用程序,并说明如何添加应用程序.

第5章如何为应用程序创建注册软件包.
第6章阐述诸如定制登录配置、设置多重屏幕、网络化桌面和X终端、修改用户点文件、邮件打印定制、桌面环境设置及错误记录类型的高级配置主题.
第7章如何通过网络分发桌面服务、应用程序及数据.
第8章如何添加及删除桌面打印机,以及如何指定缺省打印机.
第9章桌面如何通过网络查找应用程序、帮助文件、图标及其他桌面数据.

第10章介绍操作和数据类型的概念,并说明如何用它们为应用程序提供用户接口.

第11章如何使用"创建操作"应用程序创建操作和数据类型.
第12章如何使用编辑数据库配置文件来创建操作定义.
第13章如何使用编辑数据库配置文件来创建数据类型定义.
第14章如何使用"图标编辑器",以及桌面图标的命名惯例、大小和查找路径.
第15章创建新的系统范围的控制和子面板以及定制其他面板.
第16章窗口、鼠标器绑定、键盘绑定和"工作区管理器"菜单的定制.
16Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第17章如何设置应用程序源,以及桌面如何使用字体和颜色.
第18章运行国际会话过程的系统管理任务.
附录A是dtcong(1)手册页的副本.
定购Sun文档Fatbrain.
com是一个Internet专业书店,它储有SunMicrosystems,Inc.
公司精选的产品文档.
有关文档清单以及如何定购,请查阅Internet网址http://www1.
fatbrain.
com/documentation/sun的Fatbrain.
com上Sun文档中心.
访问Sun联机文档在docs.
sun.
comSMWeb站点可以访问Sun技术联机文档.
您可以浏览docs.
sun.
com归档或查找特定书标题或主题.
其URL为http://docs.
sun.
com.
印刷惯例的含义下表描述了本书所使用的印刷更改:表P–1印刷惯例字体或符号含义实例AaBbCc123命令、文件及目录的名称;计算机屏幕输出编辑.
login文件.
使用ls-a列出所有文件.
machine_name%您有邮件.
AaBbCc123键入的内容,与计算机屏幕输出相对照machine_name%su口令:序17表P–1印刷惯例(续下)字体或符号含义实例AaBbCc123命令行占位符:用真实的名称或数值替换删除一个文件,请键入rmlename.
.
AaBbCc123书籍的标题、新词或要强调的词.
请参阅用户指南第六章.
这些称为class选项.
执行此操作,必须是超级用户.
命令实例的shell提示下表显示对Cshell、Bourneshell和Kornshell的缺省系统提示及超级用户提示.
表P–2shell提示shell提示Cshell提示machine_name%Cshell超级用户提示machine_name#Bourneshell和Kornshell提示$Bourneshell和Kornshell超级用户提示#18Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第1章配置登录管理器"登录管理器"是负责显示登录屏幕,验证用户以及启动用户会话的服务器.
图形登录因有位图显示而成为传统字符模式登录的有力替代物.
由登录服务器管理的显示器可以直接连接到登录服务器或者连接到网络上的X终端或工作站上.
注意:必须以超级用户身份启动、停止或定制登录服务器.
I第20页"启动登录服务器"I第20页"管理本地和网络显示器"I第26页"检查错误"I第26页"停止登录服务器"I第28页"更改登录屏幕的外观"I第34页"管理登录管理器"I第35页"登录管理器文件"登录服务器:I可以无条件地在位图显示器上,或依照请求,在本地和网络位图显示器上显示登录屏幕I调节直接连接的字符控制台显示I可以显示选择器屏幕,以便用户在网络上其他登录服务器上显示登录屏幕I允许对登录服务器的受控访问I提供对传统的字符模式登录的访问由"登录管理器"管理的显示器可以直接连接到"登录管理器"服务器或者连接到网络上的X终端或工作站.
对于本地显示器,登录服务器会自动启动X服务器并显示登录屏幕.
对于网络显示器,例如X终端,登录服务器支持"X显示器管理器协议"(XDMCP)1.
0,该协议允许显示器请求登录服务器在显示器上显示登录屏幕.
19启动登录服务器登录服务器通常在系统引导时被启动.
它也可以从命令行启动.
I要将登录服务器设置为在系统引导时启动,请键入/usr/dt/bin/dtconfig-e这时登录服务器即可在系统重新引导时自动启动.
有关桌面配置公用程序dtconfig的详细信息,请参阅附录A.
.
它提供了dtconfig.
1的手册页的副本.
I要从命令行启动登录服务器,请键入/usr/dt/bin/dtlogin-daemon;exit注意:虽然从命令行启动登录服务器可用于临时配置测试,但一般应在系统引导时启动登录服务器.
管理本地和网络显示器图1-1显示可供选择的登录服务器配置.
20Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形1–1可供选择的登录服务器配置查找登录服务器进程ID在缺省情况下,登录服务器将其进程ID存储于/var/dt/Xpid中.
要更改它,可以将Dtlogin.
pidFile资源配置在Xconfig文件中.
更改后,登录服务器启动时,指定的目录必须存在.
要修改Xconfig,需将Xconfig从/usr/dt/config复制到/etc/dt/config中.
修改/etc/dt/config/Xconfig之后,键入下面的内容,以告知登录服务器重新读取Xconfig:/usr/dt/bin/dtconfig-reset这样就发出以下命令kill-HUPlogin_server_process_ID.
例如,要将登录服务器进程ID存储于/var/myservers/Dtpid,需将下面的内容放入Xconfig文件:Dtlogin.
pidFile:/var/myservers/Dtpid登录服务器重新启动时,它会将其进程ID存储于/var/myservers/Dtpid中.
登录服务器启动时,/var/myservers目录必须存在.
第1章配置登录管理器21在本地显示器上显示登录屏幕启动后,登录服务器检查Xservers文件来决定是否需要启动X服务器,并决定是否以及如何在本地或网络显示器上显示登录屏幕.
修改Xservers,需将Xservers从/usr/dt/config复制到/etc/dt/config.
修改/etc/dt/config/Xservers之后,请键入下面的命令行以告知登录服务器重新读取Xservers:/usr/dt/bin/dtconfig-reset这样就发出以下命令kill-HUPlogin_server_process_IDXservers行的格式为:display_namedisplay_classdisplay_typeX_server_command其中display_name—当连接X服务器时,将要使用的连接名告知登录服务器(下例中的:0).
*(星号)的值被扩展为主机名:0.
指定的编号必须与X_server_command连接编号中指定的编号相匹配.
display_class—标识该显示器的专用资源(下例中的本地).
display_type—告知登录服务器显示器是本地显示器还是网络显示器,以及如何管理登录屏幕上的"命令行登录"选项(下例中的local@console).
X_server_command—标识登录服务器将要用来启动X服务器的命令行、连接编号及其他选项(下例中的/usr/bin/X11/X:0).
指定的连接编号必须与display_name指定的连接编号一样.
缺省的Xservers行类似于::0Locallocal@console/usr/bin/X11/X:0在没有本地显示器情况下运行登录服务器如果登录服务器系统没有位图显示器,则使用#(磅符号)为本地显示器注释出Xservers行,以便运行不具有本地显示器的登录服务器.
例如,#:0Locallocal@console/usr/bin/X11/X:0登录服务器启动时,它在后台运行,等待来自于网络显示器的请求.
在本地显示器上访问命令行登录当用户在登录屏幕上选择"命令行登录"时,登录服务器临时中断X服务器,以允许访问在位图显示器终端设备上运行的传统命令行登录.
在用户登录及注销完成后,或在指定的超时过后,登录服务器将重新启动X服务器.
22Solaris公用桌面环境:高级用户和系统管理员指南2002年5月注意:"命令行登录"选项在网络显示器上不可用.
display_type控制"命令行登录"的性能.
display_type的格式为:Ilocal@display_terminal_deviceIlocalIforeign指定local@display_terminal_device时,登录服务器假定X服务器和/dev/display_terminal_device在同一个物理设备上,并且命令行登录(通常是getty)正在该设备上运行.
当用户选择"命令行登录"时,X服务器被终止,从而允许访问运行在/dev/display_terminal_device上的命令行登录(getty).
要禁用显示器上的"命令行登录"选项,需将display_terminal_device指定为none.
缺省display_terminal_device的值为console.
指定local时,display_terminal_device缺省为console.
指定foreign时,禁用"命令行登录".
注意:从命令行启动登录服务器时,在本地显示器上禁用"命令行登录"选项.

提供字符显示器控制台如果登录服务器系统有直接连接的字符显示器作为控制台,可能还要将display_terminal_device设置为none,以便禁用位图显示器登录屏幕上的"命令行登录".
或者,如果命令行登录(getty)同时运行在字符显示器控制台和位图显示器上,可以将display_terminal_device更改为位图显示器上的命令行登录(getty)设备.
例如,如果位图显示器命令行登录(getty)在设备/dev/tty01上,则将display_type更改为local@tty01.
在网络显示器上显示登录屏幕登录服务器可以接受来自网络显示器的请求以便在那个特定的显示器上显示登录屏幕.

网络显示器通常是X终端,也可以是工作站.
为了管理来自网络显示器的请求,登录服务器支持"X显示器管理器协议"(XDMCP)1.
0.
该协议可以使登录服务器协商并接受或者拒绝来自网络显示器的请求.
大多数X终端内置XDMCP.
第1章配置登录管理器23来自网络显示器的XDMCP直接请求配置X终端以使用XDMCP直接模式(查询模式)时,将登录服务器主机的主机名告知X终端.
X终端引导时,它自动联络登录服务器,登录服务器便在X终端上显示登录屏幕.
有关讲述如何配置X终端以使用XDMCP直接模式的信息,请参阅X终端文档.
大多数X服务器还支持-query选项.
在此模式中,X服务器就像X终端一样工作,直接联络登录服务器主机并请求它在X服务器上显示登录屏幕.
例如,在工作站bridget上的位图显示器上启动X服务器会使登录服务器anita在X服务器上显示登录屏幕:X-queryanita来自网络显示器的XDMCP间接请求配置X终端来使用XDMCP间接模式时,将登录服务器主机的主机名告知X终端.
X终端引导时,它将联络登录服务器,然后登录服务器将在选择器屏幕上给出网络上其他登录服务器主机的列表.
从该列表中,用户可以选择主机,该主机将在用户的X终端上显示登录屏幕.
有关讲述如何配置X终端以使用XDMCP间接模式的信息,请参阅X终端文档.
与直接模式一样,大多数X服务器支持-indirect选项,该选项使X服务器以XDMCP间接模式联络登录服务器.
管理非XDMCP网络显示器较早的X终端可能不支持XDMCP.
为了使登录服务器在该类型的X终端上显示登录屏幕,要在Xservers文件中列出X终端的名称.
因为显示器在网络上,所以display_name将主机名作为名称的一部分.
显示类可被用来指定特定类的X终端的特定资源.
(X终端文档会告诉您X终端的显示类.
)foreign这个display_type告知登录服务器连接现有的X服务器,而不是启动它自己的X服务器.
在这种情况下,有一个X_server_command没有被指定.
实例Xservers文件中的下面的行指示登录服务器在两个非XDMCPX终端(ruby和wolfie)上显示登录屏幕:ruby.
blackdog.
com:0AcmeXstaforeignwolfie:0PandaCoforeign控制对登录服务器的访问在缺省情况下,网络上对登录服务器主机具有访问权的任何主机都可以请求显示一个登录屏幕.
可以通过修改Xaccess文件来限制对登录服务器的访问.
24Solaris公用桌面环境:高级用户和系统管理员指南2002年5月要修改Xaccess,需将Xaccess从/usr/dt/config复制到/etc/dt/config中.
修改/etc/dt/config/Xaccess之后,键入下面的内容以告知登录服务器重新读取Xaccess:/usr/dt/bin/dtconfig-reset这样就发出以下命令:kill-HUPloginserverprocessID.
XDMCP直接模式当主机试图通过XDMCP-direct连接登录服务器时,该主机名将与Xaccess中的各项进行比较,以决定是否允许该主机访问登录服务器.
每个Xaccess项都是主机名,包括通配符*(星号)和(问号).
一个*(星号)匹配零个或多个字符,而一个(问号)与任何单个字符匹配.
以!
(叹号)开头的项不允许访问;开头没有叹号则允许访问.
例如,Xaccess包括下面的三项:amazon.
waterloo.
com*.
dept5.
waterloo.
com!
*第一项允许从主机amazon.
waterloo.
com访问登录服务器,第二项允许从完全域名是以dept5.
waterloo.
com结尾的所有主机访问登录服务器,最后一项不允许任何其他主机访问登录服务器.
XDMCP间接模式主机试图通过XDMCP-indirect连接登录服务器时,其主机名将与Xaccess中的各项进行比较以决定是否允许该主机访问登录服务器.
每个Xaccess项都类似于XDMCP-direct项,包括通配符,只是各项均标以CHOOSER字符串.
例如:amazon.
waterloo.
comCHOOSERBROADCAST*.
dept5.
waterloo.
comCHOOSERBROADCAST!
*CHOOSERBROADCAST同样,第一项允许从主机amazon.
waterloo.
com访问登录服务器,第二项允许从完全域名是以dept5.
waterloo.
com结尾的所有主机访问登录服务器,最后一项不允许任何其他主机访问登录服务器.
下列之一可以列在CHOOSER之后.
IBROADCASTI主机名列表BROADCAST告知登录服务器向登录服务器子网广播,以生成可用登录服务器主机列表.
主机名列表告知登录服务器将该表用作可用登录服务器主机列表.
例如:amazon.
waterloo.
comCHOOSERshoal.
waterloo.
comalum.
waterloo.
com*.
dept5.
waterloo.
comCHOOSERBROADCAST!
*CHOOSERBROADCAST第1章配置登录管理器25如果amazon.
waterloo.
com通过XDMCP-indirect连接,则提供给它包含shoal和alum的列表.
如果alice.
dept5.
waterloo.
com连接,就会给它提供登录服务器子网上的所有可用登录服务器主机的列表.
其他XDMCP-indirect请求会遭到拒绝.
指定主机名列表的另一方法是定义包括主机名列表的一个或多个宏.
例如:%list1shoal.
waterloo.
comalum.
waterloo.
comamazon.
waterloo.
comCHOOSER%list1检查错误在缺省情况下,登录服务器将错误记录在/var/dt/Xerrors文件中.
要改变这种情况,可以将Dtlogin.
errorLogFile资源放置在Xconfig文件中.
指定的目录在登录服务器启动时必须存在.
例如,要使登录服务器将错误记录在/var/mylogs/Dterrors文件中,需将下面的内容放置在Xconfig文件中:Dtlogin.
errorLogFile:/var/mylogs/Dterrors登录服务器重新启动时,登录服务器会把错误记录在/var/mylogs/Dterrors文件中.
/var/mylogs目录在登录服务器启动时必须存在.
停止登录服务器I要在系统引导时禁用登录服务器启动,需键入:/usr/dt/bin/dtconfig-d这将告知系统在下一次重新引导时不启动登录服务器.
I要通过中止进程ID停止登录服务器,需键入:/usr/dt/bin/dtconfig-kill(这样就发出以下命令:killlogin_server_process_ID)注意:中止登录服务器进程将中断由登录服务器管理的所有用户会话.
也可以通过中止进程ID以停止登录服务器.
登录服务器进程ID存储在/var/dt/Xpid中或者存储在由Dtlogin.
pidFile资源在Xconfig中指定的文件里.
26Solaris公用桌面环境:高级用户和系统管理员指南2002年5月如果在中止登录服务器的同时登录到了桌面,则桌面会话将立即中断.

登录屏幕由登录服务器显示的登录屏幕是传统的字符模式登录屏幕的很有吸收力的替代物,而且它所提供的能力超越了字符模式登录提供的能力.
图形1–2桌面登录屏幕与字符模式登录一样,用户输入用户名后再输入口令.
它们被验证后,登录服务器为用户启动桌面会话.
用户退出桌面会话时,登录服务器显示新的登录屏幕,进程再次开始.
要定制登录屏幕,可以:I更改登录屏幕的外观I配置X服务器权限I更改缺省语言I在登录屏幕显示之前发出命令I更改登录屏幕"语言"菜单的内容I指定命令以启动用户会话I在用户的桌面会话启动之前发出命令I在用户的会话结束后发出命令上述的每一项都可以基于所有显示器或基于每个显示器来进行.
第1章配置登录管理器27更改登录屏幕的外观要定制登录屏幕的外观,可以更改徽标或图形、欢迎消息和字体.
要修改Xresources,需将Xresources从/usr/dt/config/language复制到/etc/dt/config/language中.
登录屏幕将在下一次显示时显现出所有更改.
要强制登录屏幕重新显示,请在登录屏幕"选项"菜单中选择"重置登录屏幕".

可由Xresources文件的资源规范决定的登录屏幕属性包括:Dtlogin*logo*bitmapFile—显示为徽标图像的位图或像素图文件Dtlogin*greeting*persLabelString—个人专用欢迎信息Dtlogin*greeting*labelString—欢迎消息Dtlogin*greeting*fontList欢迎消息的字体Dtlogin*labelFont按钮和标号的字体Dtlogin*textFont帮助及错误信息的字体Dtlogin*language*languageName语言环境名称的替代文本languageM更改徽标G设置Xresources中的Dtlogin*logo*bitmapFile资源.
徽标可以是彩色像素图或位图文件.
下例使用Mylogo位图作为徽标:Dtlogin*logo*bitmapFile:/usr/local/lib/X11/dt/bitmaps/Mylogo.
bmM更改欢迎消息缺省情况下,登录服务器在登录屏幕上显示格式欢迎到主机名消息.
要更改这个消息:G设置Xresources中的Dtlogin*greeting*labelString资源.
labelString资源的值可以包含%LocalHost%(将由登录服务器主机名取代),还包含%DisplayName%(将由X服务器显示器名取代).
下面的实例将欢迎消息更改为"这里是主机名!
":Dtlogin*greeting*labelString:这里是%LocalHost%!
28Solaris公用桌面环境:高级用户和系统管理员指南2002年5月输入用户名后,登录服务器缺省显示信息欢迎用户名的消息.
可以通过设置Xresources中的Dtlogin*greeting*persLabelString资源来更改此消息.
persLabelString的值可以包含%s(将由用户名取代).
下面的实例将个人专用欢迎消息更改为:您好,用户名.
Dtlogin*greeting*persLabelString:您好,%sM更改字体可以通过设置Xresources中的下列的字体资源之一,更改登录屏幕上使用的字体:Dtlogin*greeting*fontList—欢迎消息的字体Dtlogin*labelFont—按钮和标号的字体Dtlogin*textFont—帮助及错误消息的字体要列出可用的字体,请键入:xlsfonts[-options][-fnpattern]下面的实例中欢迎消息使用了大字体(指定的值必须位于同一行中):Dtlogin*greeting*fontList:-dt-interface\system-medium-r-normal-xxl*M为每种语言提供显示的替代文本要在登录屏幕"语言"菜单上显示每个语言环境文本而不是缺省显示语言环境名,请在Xresources中修改Dtlogin*language*languageName资源名的资源:Dtlogin*En_US*languageName:American现在,将显示文本American,而不显示语言环境名En_US.
更改登录屏幕性能要定制登录屏幕性能,可以修改Xconfig文件中指定的资源.
要修改Xconfig,需将Xconfig从/usr/dt/config复制到/etc/dt/config中.
修改/etc/dt/config/Xconfig之后,键入下面的内容,以告知登录服务器重新读取Xconfig:/usr/dt/bin/dtconfig-reset(这样就发出以下命令:kill-HUPloginserverprocessID)第1章配置登录管理器29在Xconfig文件中指定的资源包括:Dtlogin*authorize—Xaccess文件说明Dtlogin*environment—X服务器环境Dtlogin*language—缺省语言Dtlogin*languageList—登录屏幕"语言"菜单的语言列表Dtlogin*resources—Xresources规范Dtlogin*setup—Xsetup文件规范Dtlogin*startup—Xstartup文件规范Dtlogin*session—Xsession文件规范Dtlogin*failsafeClient—Xfailsafe脚本规范Dtlogin*reset—Xreset脚本规范Dtlogin*userPath—Xsession和Xfailsafe的PATHDtlogin*systemPath—Xsetup、Xstartup和Xfailsafe的PATHDtlogin*systemShell—Xsetup、Xstartup和Xfailsafe的SHELLDtlogin.
timeZone—所有脚本的"时区"更改每个显示器的登录屏幕性能在下面的例子中,更改Xconfig资源就会更改所有显示器登录屏幕的性能.
列出的带*(星号)的资源可以基于每个显示器来指定.
这样就能够为某些显示器指定定制的登录屏幕性能.
要为特定显示器指定资源,需将该资源指定为Dtlogin*displayName*resource.
例如,如果要为显示器expo:0关闭基于用户的访问控制,又要为其他显示器保留访问控制,应指定:Dtlogin*expo_0*authorize:False注意:显示器名中的任何特殊字符,例如:(冒号)或.
(句号),都被替换为_(下划线).
更改X服务器访问在缺省情况下,登录服务器允许基于每个用户的X服务器访问控制,并且以在HomeDirectory/.
Xauthority文件中存储并受保护的授权数据为根据.
只允许可读取该文件的用户连接X服务器.
一般来说,这是X服务器访问控制的首选方法.
30Solaris公用桌面环境:高级用户和系统管理员指南2002年5月基于用户的访问控制的一种替代方法是基于主机的访问控制.
使用这种方法时,如果授权主机对X服务器进行访问,那么该主机上的任何用户均可以连接X服务器.
使用基于主机的控制的原因如下:I较早的R2和R3X客户无法使用基于用户的访问控制连接X服务器.
I在无安全保护的网络上,窥探者可能会截取网络上的X客户和X服务器之间传递的授权数据.
XconfigDtlogin*authorize资源告知登录服务器使用基于用户的X服务器访问控制.
要使用基于主机的访问控制,请将授权资源值更改为False,例如:Dtlogin*authorize:FalseM更改X服务器环境在X服务器被登录服务器启动时,如果想为X服务器提供一个或多个环境变量和值,可以使用Xconfig中的Dtlogin*environment资源来指定它们.
例如:Dtlogin*environment:VAR1=fooVAR2=bar将使变量VAR1和VAR2可用于本地X服务器进程.
这些变量还将被输出到Xsession和Xfailsafe脚本中.
M更改缺省语言当用户从登录屏幕登录到桌面时,用户会话在从"选项"菜单的"语言"子菜单中选择的语言环境下运行.
如果用户未选择语言,则使用登录服务器的缺省语言.
可以通过设置在Xconfig中的Dtlogin*language资源来控制缺省语言的值.
例如:Dtlogin*language:Ja_JP检查系统文档以决定在系统中安装的语言.
M更改登录服务器语言菜单的内容在缺省情况下,登录服务器创建包含安装在系统上的所有语言环境的列表的登录屏幕"语言"菜单.
用户从登录屏幕语言列表中选择语言环境后,登录服务器将以选定的语言环境重新显示登录屏幕.
当用户随后登录时,登录服务器将为该语言环境的用户启动桌面会话.
可以通过修改在Xconfig中的Dtlogin*languageList资源来指定自己的语言列表:Dtlogin*languageList:En_USDe_DE此时,登录服务器在登录屏幕"语言"菜单中只显示En_US和De_DE.
第1章配置登录管理器31在登录屏幕出现之前发出命令启动X服务器但登录屏幕尚未出现时,登录服务器运行Xsetup脚本.
Xsetup以超级用户的权限运行并发出需要在登录屏幕显示之前运行的命令.
修改Xsetup,需将Xsetup从/usr/dt/config复制到/etc/dt/config中.
下一次显示登录屏幕时,将运行修改过的Xsetup.
启动用户会话之前发出命令从用户输入了用户名和口令并且它们已通过认证之后到启动用户会话之前,登录服务器运行Xstartup脚本.
Xstartup以超级用户的权限运行并发出需要在用户会话启动之前作为超级用户来运行的命令.
修改Xstartup,需将Xstartup从/usr/dt/config复制到/etc/dt/config中.
用户下一次登录时,将运行修改过的Xstartup.
启动桌面会话在缺省情况下,登录服务器通过运行Xsession脚本来启动用户会话.
Xsession以用户的权限运行并发出启动桌面所需要的命令.
注意:禁止直接更新Xsession脚本.
有关如何定制用户桌面会话的启动,请参阅第2章.
启动失败安全过程如果用户从登录屏幕"选项"菜单的"会话"子菜单中选择"失败安全过程",则登录服务器运行Xfailsafe脚本.
Xfailsafe以用户的权限运行并发出启动最小的开窗口环境(通常是"终端"窗口和可选的窗口管理器)所需要的命令.
修改Xfailsafe,需将Xfailsafe从/usr/dt/config复制到/etc/dt/config中.
用户下一次登录时,将运行修改过的Xfailsafe.
用户会话结束后用户退出桌面或失败安全会话之后,登录服务器运行Xreset脚本.
Xreset以超级用户权限运行并发出需要在用户的会话结束之后作为超级用户来运行的命令.

要修改Xreset,需将Xreset从/usr/dt/config复制到/etc/dt/config中.
用户下一次登录时,将运行修改过的Xreset.
32Solaris公用桌面环境:高级用户和系统管理员指南2002年5月登录服务器环境登录服务器提供一个输出到Xsetup、Xstartup、Xsession、Xfailsafe和Xreset脚本的环境.
此环境在表1–1中讲述.
其他它变量也可由登录服务器输出.
表1–1登录服务器环境环境变量XsetupXstartupXsessionXreset说明LANGXXXX缺省或选定的语言XAUTHORITYXXXX供替换的X权限文件(可选)PATHXXXXDtlogin*userPath资源(Xsession、Xfailsafe)或Dtlogin*systemPath资源(Xsetup、Xstartup、Xreset)的值DISPLAYXXXXX服务器连接编号SHELLXXXX在/etc/passwd(Xsession、Xfailsafe)或Dtlogin*systemShell资源(Xsetup、Xstartup、Xreset)中指定的shellTZXXXXDtlogin.
timeZone资源的或从系统中决定的时区值USERXXX用户名HOMEXXX在/etc/passwd中指定的起始目录LOGNAMEXXX用户名更改用户或系统路径登录服务器在运行Xsession和Xfailsafe脚本时设置PATH环境变量.
可以为这些脚本提供替代路径.
M更改用户路径G设置Xconfig中的Dtlogin*userPath资源.
例如:Dtlogin*userPath:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11第1章配置登录管理器33M更改系统路径G设置Xconfig中的Dtlogin*systemPath资源.
例如:Dtlogin*systemPath:/usr/bin/X11:/etc:/bin:/usr/bin:/usr/ucbM更改系统shell登录服务器在运行Xsetup、Xstartup和Xfailsafe脚本时设置SHELL环境变量.
缺省值为/bin/sh.
如果要为这些脚本提供替代shell,可以设置Xconfig中的Dtlogin*systemShell资源.
例如:Dtlogin*systemShell:/bin/kshM更改时区登录服务器在运行Xsetup、Xstartup、Xsession、Xfailsafe和Xreset时设置TZ(时区)环境变量.
缺省值来自系统,所以通常不需要更改此性能.
要为这些脚本提供替代时区,需设置Xconfig中的Dtlogin.
timeZone资源.
例如:Dtlogin.
timeZone:CST6CDT管理登录管理器登录服务器启动时,就会启动一个dtlogin进程.
dtlogin进程读取Xconfig文件以决定初始的登录服务器配置,并定位其他登录服务器配置文件.
然后,登录服务器读取Xservers文件来查看该文件是否有需要显式管理的显示器,同时读取Xaccess文件以控制对登录服务器的访问.
如果登录服务器从Xservers文件中查找到该文件需要管理的本地显示器,登录服务器将按照Xservers文件中的指令来启动X服务器,然后在该显示器上显示登录屏幕.
如果登录服务器从Xservers文件中查找到该文件需要管理一个网络显示器,它将假定X服务器已经以指定的显示器名在运行着,并将在该显示器上显示登录屏幕.

然后,登录服务器将等待来自网络的XDMCP请求.
对于每个被管理的显示器,登录服务器首先为显示器创建新的dtlogin进程.
这意味着如果登录服务器正在管理n个显示器,就会有n+1个dtlogin进程.
登录服务器将运行Xsetup脚本,装入Xresources文件,然后运行dtgreet来显示登录屏幕.
一旦用户输入用户名和口令并获得认证后,登录服务器将运行Xstartup脚本,然后运行Xsession或Xfailsafe脚本.
用户退出会话时,登录服务器将运行Xreset脚本.
34Solaris公用桌面环境:高级用户和系统管理员指南2002年5月如果登录服务器接到XDMCP-indirect请求,它将运行dtchooser以便在显示器上给出登录服务器主机的列表.
当用户从该列表中选择主机时,该主机上的登录服务器将管理显示器.
对于Xaccess、Xconfig、Xfailsafe、Xreset、language/Xresources、Xservers、Xsetup和Xstartup配置文件,登录服务器按缺省设置地首先在/etc/dt/config中查找,然后在/usr/dt/config中查找,并使用首先查找到的文件.
登录管理器文件登录管理器文件的缺省位置为:/usr/dt/bin/dtlogin—登录服务器和显示器管理器/usr/dt/bin/dtgreet—显示显示器的登录屏幕/usr/dt/bin/dtchooser—显示显示器的选择器屏幕/usr/dt/bin/Xsession—启动桌面会话/usr/dt/config/Xfailsafe—启动失败安全会话进程/usr/dt/config/Xconfig—登录服务器配置文件/usr/dt/config/Xservers—登录服务器显示器说明文件/usr/dt/config/Xaccess—登录服务器访问说明文件/usr/dt/config/language/Xresources—显示器布局资源/usr/dt/config/Xsetup—显示器设置文件/usr/dt/config/Xstartup—会话前启动文件/usr/dt/config/Xreset—会话后重置文件/var/dt/Xpid—登录服务器的进程ID/var/dt/Xerrors—登录服务器的错误记录文件第1章配置登录管理器3536Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第2章配置会话管理器"会话管理器"负责启动桌面并能够自动保存和恢复运行的应用程序、颜色、字体、鼠标性能、音频音量及键盘击键.
I第37页"什么是会话"I第38页"启动会话"I第38页"当会话启动时"I第44页"附加的会话启动定制"I第48页"会话管理器文件及目录"使用"会话管理器"可以:I为所有桌面用户定制初始会话I为所有桌面用户定制环境和资源I更改会话启动消息I更改会话启动工具和守护程序的参数I为所有用户定制桌面颜色用法什么是会话会话是在用户的桌面上所给出的应用程序、设置及资源的集合.
会话管理是一套惯例和协议,它们启用"会话管理器"保存和恢复用户的会话.
用户能够登录到系统,并且提供给用户的处于运行状态的应用程序、设置和资源的集合与用户注销时提供给用户的相同.
用户第一次登录到桌面时,会装入缺省的初始会话.
此后,"会话管理器"便支持当前和起始会话的概念.
初始会话当用户第一次登录到桌面时,"会话管理器"将使用系统缺省值生成该用户的初始会话.
在缺省情况下,"文件管理器"及"桌面介绍"(帮助卷)将启动.
37当前会话无论在登录时是从保存的起始会话、保存的当前会话,还是从系统缺省初始会话恢复,用户正在运行的会话总视为当前会话.
当用户退出会话时,基于用户的"式样管理器启动"设置,"会话管理器"会自动保存当前会话.
用户下次登录到桌面时,"会话管理器"会重新启动先前保存的当前会话,这意味着桌面将恢复到与用户上次注销时相同的状态.

起始会话还可以让桌面在用户每次登录时都恢复为相同的状态,不管用户注销时桌面是什么状态.
用户可以保存当前会话的状态,然后使用"式样管理器启动"设置,使"会话管理器"在用户每次登录时启动该会话.
显示器专用会话要为特定的显示器运行专用会话,用户可以创建显示器专用会话.
若想这样,用户可以将HomeDirectory/.
dt/sessions目录复制到HomeDirectory/.
dt/display中,其中display是实际的、无限定的主机名(例如,pablo:0是有效的,而pablo.
gato.
com:0和unix:0是无效的).
用户在显示器pablo:0上登录时,"会话管理器"将启动该显示器专用会话.
启动会话"会话管理器"是通过/usr/dt/bin/Xsession启动的.
当用户使用"登录管理器"登录时,在缺省情况下,启动Xsession.
或者,用户也可以使用传统的字符模式(getty)登录进行登录,并使用启动X服务器的工具,例如xinit,来手动启动"会话管理器".
例如:xinit/usr/dt/bin/Xsession.
当会话启动时"会话管理器"启动时,它经过下面的步骤启动用户的会话:1.
查找HomeDirectory/.
dtprofile脚本2.
查找Xsession.
d脚本38Solaris公用桌面环境:高级用户和系统管理员指南2002年5月3.
显示欢迎消息4.
设置桌面查找路径5.
收集可用的应用程序6.
随意地查找HomeDirectory/.
profile或HomeDirectory/.
login7.
启动ToolTalk消息传送守护程序8.
装入会话资源9.
启动颜色服务器10.
启动"工作区管理器"11.
启动会话应用程序以下各节讲述上述步骤.
查找.
dtprole脚本会话一启动,Xsession脚本便开始查找用户的HomeDirectory/.
dtprofile脚本.
HomeDirectory/.
dtprofile脚本是一个/bin/sh或/bin/ksh脚本,它使用户可以为自己的会话设置环境变量.
有关设置环境变量的详细信息,请参阅第44页"附加的会话启动定制".
如果HomeDirectory/.
dtprofile脚本不存在,例如当用户第一次登录到桌面时,Xsession将把桌面缺省文件sys.
dtprofile复制到HomeDirectory/.
dtprofile.
桌面缺省值为/usr/dt/config/sys.
dtprofile.
要定制sys.
dtprofile脚本,需将sys.
dtprofile从/usr/dt/config复制到/etc/dt/config中,并编辑新文件.
查找Xsession.
d脚本查找HomeDirectory/.
dtprofile脚本之后,Xsession脚本查找Xsession.
d脚本.
这些脚本用来设置附加的环境变量,并为用户的会话启动可选守护程序.
缺省的Xsession.
d脚本为:0010.
dtpaths—将可定制的桌面查找路径记入文档0020.
dtims—启动可选的输入方法服务器0030.
dttmpdir—创建每个用户、每个会话的临时目录0040.
xmbind—将$XMBINDDIR设置为桌面缺省值第2章配置会话管理器39在Xsession.
d中还可能另外附有一些供应商专用脚本.
Xsession首先查找/etc/dt/config/Xsession.
d目录中的所有文件,然后是/usr/dt/config/Xsession.
d目录中的所有文件.
桌面缺省的Xsession.
d脚本位于/usr/dt/config/Xsession.
d目录.
要定制Xsession.
d脚本,需将脚本从/usr/dt/config/Xsession.
d复制到/etc/dt/config/Xsession.
d中,并编辑新文件.
必须具有执行许可才能执行该任务.
同样,要使Xsession自动查找您自己的脚本,需将该脚本复制到/etc/dt/config/Xsession.
d中.
注意:修改或创建Xsession.
d脚本时,要确保发出的任何前台命令持续时间不长,因为命令所占用的时间将直接影响会话启动时间.
如果前台命令不退出,则会话启动将挂起.
如果想要Xsession.
d脚本中运行的命令在会话期间继续运行,就应该在后台运行它们.
显示欢迎消息查找HomeDirectory/.
dtprofile和Xsession.
d脚本之后,Xsession显示覆盖屏幕的欢迎消息.
可以定制显示的欢迎消息,或完全关闭消息.
dthello客户机被用来显示消息.
要更改信息文本,可以通过修改dtstart_hello[0]变量来更改dthello选项.
要更改dtstart_hello[0],需创建设置新值的/etc/dt/config/Xsession.
d脚本.
要为所有用户显示当日的消息,需创建可执行的sh或ksh脚本(例如/etc/dt/config/Xsession.
d/myvars),并将dtstart_hello[0]设置如下:dtstart_hello[0]="/usr/dt/bin/dthello-file/etc/motd&"类似地,用户可通过设置HomeDirectory/.
dtprofile中的dtstart_hello[0]来更改它们的会话的欢迎消息.
要关闭欢迎消息,需设置dtstart_hello[0]="".
有关dthello的详细内容,请参阅dthello手册页.
设置桌面查找路径桌面查找路径由dtsearchpath在登录时创建.
dtsearchpath使用两类环境变量:输入变量—全系统的及个人的环境变量,它们的值由系统管理员或最终用户设置.

输出变量—由dtsearchpath创建并赋值的变量.
每个变量的值都是桌面会话的查找路径.
40Solaris公用桌面环境:高级用户和系统管理员指南2002年5月要更改dtsearchpath的命令行选项,需修改dtstart_searchpath变量.
要为所有用户更改dtstart_searchpath变量,需创建可执行的sh或ksh脚本(例如/etc/dt/config/Xsession.
d/myvars),并将dtstart_searchpath设置如下:dtstart_searchpath="/usr/dt/bin/dtsearchpath"类似地,用户可以通过设置HomeDirectory/.
dtprofile中的dtstart_searchpath来只为自己的会话更改dtsearchpath选项.
有关dtsearchpath的详细信息,请参阅第9章.
有关dtsearchpath选项的详细信息,请参阅dtsearchpath手册页.
收集可用的应用程序设置桌面查找路径后的下一步是使用dtappgather收集可用的应用程序.
更改dtappgather的命令行选项,需修改dtstart_appgather变量.
要为所有用户更改dtstart_appgather变量,需创建可执行的sh或ksh脚本(例如/etc/dt/config/Xsession.
d/myvars),并将dtstart_appgather设置如下:dtstart_appgather="/usr/dt/bin/dtappgather&"类似地,通过设置HomeDirectory/.
dtprofile中的dtstart_appgather,用户可以仅改变自己会话的dtappgather选项.
有关dtappgather选项的详细信息,请参阅dtappgather(4)手册页.
可选地查找.
prole或.
login脚本Xsession能够查找用户的传统HomeDirectory/.
profile或HomeDirectory/.
login脚本.
在缺省情况下禁用该能力.
要告知Xsession查找.
profile或.
login脚本,需将DTSOURCEPROFILE设置为true.
要为所有用户更改DTSOURCEPROFILE,需创建设置新值的/etc/dt/config/Xsession.
d脚本.
为所有用户将DTSOURCEPROFILE设置为true,需创建可执行的sh或ksh脚本,例如/etc/dt/config/Xsession.
d/myvars,并将DTSOURCEPROFILE设置如下:DTSOURCEPROFILE=true类似地,通过在HomeDirectory/.
dtprofile中将DTSOURCEPROFILE设置为true,用户可以为自己的会话更改DTSOURCEPROFILE.
启动ToolTalk消息守护程序ToolTalk消息传送守护程序,ttsession,使独立的应用程序可以在相互不直接了解的情况下通信.
应用程序创建并发送ToolTalk消息来互相通信.
ttsession在网络上通信以传送消息.
第2章配置会话管理器41要更改ttsession的命令行选项,需更改dtstart_ttsession变量.
要为所有用户更改dtstart_ttsession变量,需创建可执行的sh或ksh脚本(例如/etc/dt/config/Xsession.
d/myvars),并将dtstart_ttsession设置如下:dtstart_ttsession="/usr/dt/bin/ttsession-s"类似地,通过设置HomeDirectory/.
dtprofile中的dtstart_appgather,用户可以仅改变自己会话的dtappgather选项.
有关ttsession选项的详细信息,请参阅ttsession手册页.
有关ttsession的详细信息,请参阅CommonDesktopEnvironment:ToolTalkMessagingOverview.
启动会话管理器客户机此时,Xsession启动/usr/dt/bin/dtsession,使会话启动进程继续下去.
装入会话资源"会话管理器"使用X服务器的RESOURCE_MANAGER属性以使桌面资源可用于所有应用程序.
"会话管理器"通过下面的方法装入RESOURCE_MANAGER:I装入系统缺省资源I合并由系统管理员指定的所有全系统的资源I合并所有用户指定的资源桌面缺省资源可以在/usr/dt/config/language/sys.
resources找到.
通过RESOURCE_MANAGER特性,使这些资源可用于每个用户的会话.
不应编辑此文件,因为它会被后续的桌面安装覆盖.
可以通过创建/etc/dt/config/language/sys.
resources来增加系统缺省资源.
在此文件中,您可以覆盖所有桌面用户的缺省资源或为所有桌面用户指定附加的资源.

因为在会话启动过程中此文件被合并到桌面缺省资源中,所以只有新的或更新过的资源规范才能放到此文件中.
通过RESOURCE_MANAGER特性,该文件中指定的资源可用于每个用户的会话.
该文件中指定的资源优先于桌面缺省资源文件中所指定资源.

用户可以使用其HomeDirectory/.
Xdefaults文件增加桌面缺省的和全系统的资源.
通过RESOURCE_MANAGER特性,将使该文件中指定的资源用于该用户的会话.
该文件中指定的资源优先于桌面缺省资源或系统管理员资源文件中所指定资源.

42Solaris公用桌面环境:高级用户和系统管理员指南2002年5月注意:"X工具包内置工具"公用程序指定将从RESOURCE_MANAGER或者从HomeDirectory/.
Xdefaults为应用程序装入资源,但是不可同时从二者装入资源.
一般,这意味着会忽略用户的HomeDirectory/.
Xdefaults文件.
但是,如上所述,在会话启动时"会话管理器"通过将HomeDirectory/.
Xdefaults合并到RESOURCE_MANAGER中来调整前者.
如果用户更改RESOURCE_MANAGER/.
Xdefaults,那么在用户调用"重新装入资源"操作之前,所做的更改对新的应用程序是看不到的.
"重新装入资源"操作将命令"会话管理器"重新装放带有缺省的、全系统的及用户指定资源的RESOURCE_MANAGER.
这样,对全系统的及个人的资源文件所做的更改就可用于应用程序.
有关详细信息,请参阅:I第257页"设置应用程序资源"Idtresourcesle(4)手册页启动颜色服务器"会话管理器"用作桌面的颜色服务器并提供下面的dtsession资源集,这些资源集可用来配置"会话管理器".
foregroundColor—控制是否为前景颜色分配像素dynamicColor—指定是否分配只读颜色shadowPixmaps—指定是否为顶部阴影或底部阴影分配颜色colorUse—限制颜色的分配writeXrdbColors—指定是否在资源数据库中放置*background和*foreground资源通过创建/etc/dt/config/language/sys.
resources,并在该文件中指定颜色服务器,为所有用户设置颜色服务器资源.
用户也可以类似地通过在HomeDirectory/.
Xdefaults指定颜色服务器资源来为自己的会话设置颜色服务器资源.
有关设置颜色服务器资源的详细信息,请参阅第267页"管理颜色".
启动工作区管理器"会话管理器"负责启动"工作区管理器".
在缺省情况下会启动/usr/dt/bin/dtwm.
可以使用wmStartupCommand资源指定替代窗口服务器.
第2章配置会话管理器43可以通过创建/etc/dt/config/language/sys.
resources,并用该文件中的Dtsession*wmStartupCommand资源为窗口管理器指定全路径名及选项,来为所有用户指定替代窗口管理器.
用户可以类似地通过在HomeDirectory/.
Xdefaults指定Dtsession*wmStartupCommand资源只为自己的会话指定替代窗口管理器.
有关"窗口管理器"的详细信息,请参阅第16章.
启动会话应用程序会话一启动,"会话管理器"将重新启动被保存为会话的一部分的任何应用程序.
即将被恢复为用户初始会话一部分的系统缺省应用程序集可在/usr/dt/config/language/sys.
session中找到.
不应编辑此文件,这是因为在后续的桌面安装过程中,它将被无条件覆盖.
有关详细信息,请参阅dtsessionle(4)手册页.
系统管理员可以将/usr/dt/config/language/sys.
session复制到/etc/dt/config/language/sys.
session,并修改后面这个文件,这样即可替换作为用户初始会话的一部分而启动的应用程序集.
与资源文件不同,该文件将用作桌面缺省文件的完整替换,所以您可以复制一份系统缺省文件,并做任何必要的修改.

附加的会话启动定制本节包括:I设置环境变量I设置资源I使用与显示器相关的会话I在登录时运行脚本I恢复备份会话M设置环境变量G要设置全系统的环境变量,请在/etc/dt/config/Xsession.
d目录中创建用于设置及导出变量的文件.
例如,如果创建可执行的ksh脚本,/etc/dt/config/Xsession.
d/myvars,它包含:exportMYVARIABLE="value"44Solaris公用桌面环境:高级用户和系统管理员指南2002年5月那么变量MYVARIABLE在下次登录时将被设置到每个用户的环境中.
G要设置个人环境变量,请设置HomeDirectory/.
dtprofile中的变量.
例如:exportMYVARIABLE="value"在下次登录时会把变量MYVARIABLE设置到每个用户的环境中.
注意:"会话管理器"不自动读取.
profile或.
login文件.
然而,可以对它进行配置来使用这些文件,参见第41页"可选地查找.
prole或.
login脚本".
M设置资源G要设置全系统的资源,需将资源添加到文件/etc/dt/config/language/sys.
resources中.
(可能必须创建该文件.
)注意:.
dtprofile只支持/bin/sh或/bin/ksh语法.
例如,如果在/etc/dt/config/C/sys.
resources中指定:AnApplication*resource:value那么资源AnApplication*resource在下次登录时,将被设置在每个用户的RESOURCE_MANAGER属性中.
G设置个人资源,请将资源添加到文件HomeDirectory/.
Xdefaults中.
M设置显示器专用资源可为系统上的所有桌面用户设置显示器专用资源.
用户也可设置仅限于自己的会话的显示器专用资源.
这样用户就可以根据用户登录到桌面时使用的显示器来指定资源.

G要为系统上的所有桌面用户设置显示器专用资源,需创建指定显示器专用资源的文件/etc/dt/config/language/sys.
resources.
G要设置个人的显示器专用资源,需在主HomeDirectory/.
Xdefaults中指定此资源.
通过将这些资源放入cpp条件语句中来界定它们.
DISPLAY_displayname宏是根据$DISPLAY变量的值来定义的.
这是通过将所有.
(句点)和:(冒号)字符转换为_(下划线),去掉所有屏幕说明,最后给结果加上DISPLAY_前缀来实现的.
例如:0的$DISPLAY为DISPLAY_0;blanco.
gato.
com:0.
0的$DISPLAY则是DISPLAY_blanco_gato_com_0.
结果值可用作会话资源文件中的cpp测试的一部分.
例如,如果在/etc/dt/config/C/sys.
resources中指定:第2章配置会话管理器45Myapp*resource:value#ifdefDISPLAY_blanco_gato_com_0Myapp*resource:specialvalue1#endif#ifdefDISPLAY_pablo_gato_com_0Myapp*resource:specialvalue2#endif当用户登录到显示器blanco.
gato.
com:0上时,资源MyApp*resource将在RESOURCE_MANAGER中被设置为specialvalue1;当用户登录到显示器pablo.
gato.
com:0上时设置为specialvalue2;当用户登录到另一个显示器上时设置为value.
M更改初始会话的应用程序可以指定替代应用程序,把它作为用户初始会话的一部分来启动.
1.
将/usr/dt/config/language/sys.
session复制为/etc/dt/config/language/sys.
session.
2.
修改新的sys.
session文件.
sys.
session中的每项都显现为:dtsmcmd-cmdcommand_and_options要把附加应用程序作为用户初始会话的一部分来启动,需以全路径名指定新的sys.
session项.
例如,要把/usr/bin/X11/xclock作为用户初始会话的一部分,需将xclock项添加到/etc/dt/config/C/sys.
session中:##Startupxclock.
.
.
#dtsmcmd-cmd"/usr/bin/X11/xclock-digital"M设置显示器专用会话用户可设置显示器专用会话,以便将会话调节到特定的显示器.
G将HomeDirectory/.
dt/sessions目录复制到HomeDirectory/.
dt/display,其中display为实际的、无限定的主机名(pablo:0是有效的,而pablo.
gato.
com:0或unix:0无效).
例如,要为显示器pablo.
gato.
com:0创建显示器专用会话:cp-rHomeDirectory/.
dt/sessionsHomeDirectory/.
dt/pablo:0用户下次登录到显示器pablo.
gato.
com:0上时,"会话管理器"将启动该显示器专用会话.
46Solaris公用桌面环境:高级用户和系统管理员指南2002年5月在会话过程启动和注销时执行附加的命令当用户登录到其桌面会话后,便可指定启动附加的命令.
这对于设置未被"会话管理器"保存的X设置是有用的.
例如,用户可使用xsetroot来定制根(工作区)指针.
另一种使用方法是启动不能被"会话管理器"保存及恢复的应用程序.
另一个用途是启动"会话管理器"不能保存和恢复的应用程序.
如果应用程序在会话恢复时没有重新启动,用户可以使用这种方法启动客户机.
M会话启动时执行附加的命令G创建包含命令HomeDirectory/.
dt/sessions/sessionetc的文件.
该文件通常是脚本而且必须具有执行许可.
应在后台运行在sessionetc中启动的进程.
注意:不要使用sessionetc来启动由"会话管理器"自动恢复的客户机.
这样的操作可能导致启动应用程序的多个副本.
也许不能立即看到副本,因为窗口可能会互相堆叠.
M在注销时执行附加的命令sessionetc的伴侣文件为sessionexit.
在会话退出时使用sessionexit来执行一些不是由"会话管理器"处理的操作.
G创建包含命令的文件HomeDirectory/.
dt/sessions/sessionexit.
类似于sessionetc,该文件通常是具有执行许可的脚本.
M从备份恢复会话当"会话管理器"保存会话时,会话信息被存储在HomeDirectory/.
dt/sessions目录中;如果使用显示器专用会话,则存储在HomeDirectory/.
dt/display目录中.
在这些目录中,"会话管理器"创建名为current或home的子目录来分别为相应的当前或起始的会话存储信息.
在会话信息被存储之前,"会话管理器"以所创建的名称为前会话做备份,并将它存储在current.
old或home.
old中.
1.
从登录屏幕,通过使用"失败安全会话"或"命令行登录"进行登录.
2.
将备份会话目录复制到活动名中.
例如,要恢复备份起始会话:cp-rHomeDirectory/.
dt/sessions/home.
old\HomeDirectory/.
dt/sessions/home第2章配置会话管理器47显示器专用会话可使用相同方式恢复.
M调查会话启动故障G检查文件HomeDirectory/.
dt/startlog.
"会话管理器"在该文件中记录每个用户的会话启动进度.
会话管理器文件及目录I/usr/dt/bin/XsessionI/usr/dt/config/Xsession.
d/*I/usr/dt/bin/dtsessionI/usr/dt/bin/dtsession_resIHomeDirectory/.
dt/sessions/currentIHomeDirectory/.
dt/sessions/homeIHomeDirectory/.
dt/display/currentIHomeDirectory/.
dt/display/home48Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第3章登录和会话启动故障的疑难解答本章讲述SolarisCDE的启动文件和在启动SolarisCDE时可能遇到的故障,并且给出启动故障的相应解决方案.
I第49页"登录启动文件"I第50页"错误记录位置"I第50页"用户启动文件"I第51页"SolarisCDE启动实例"登录启动文件当SolarisCDE登录管理器认证了用户之后,将调用下面的脚本来启动桌面:/usr/dt/bin/XsessionXsession调用的第一个用户特定的文件是HomeDirectory/.
dtprofile.
当新用户第一次登录到SolarisCDE时,.
dtprofile文件将被复制到用户的起始目录中.
在缺省情况下,此文件不起任何作用.
但此文件中的确包含许多如何可以编辑此文件的说明.
用户可以编辑此文件,以便添加指定用户的环境变量.
注意:正如Xsession脚本调用.
dtprofile一样,此文件使用ksh语法.
一种有用的编辑是撤销文件.
dtprofile的最后一行的注释:DTSOURCEPROFILE=true此行允许用户的HomeDirectory/.
login文件(用于csh用户)或HomeDirectory/.
profile文件(用于其他shell用户)作为启动进程的一部分来查找.
49错误记录位置从SolarisCDE登录屏幕的"选项"菜单选择"失败安全过程",以便绕过正常的Xsession启动,来查看错误记录,并且排除可能出现的用户点文件故障.
表3–1显示错误记录及其位置.
表3–1错误记录位置位置错误记录/var/dt/Xerrors在用户登录之前的SolarisCDE登录窗口系统错误HomeDirectory/.
dt/startlog在调用Xsession、.
dtprofile、.
login或.
profile期间发生的SolarisCDE启动错误HomeDirectory/.
dt/errorlog在Xsession启动之后的SolarisCDE错误HomeDirectory/.
dt/sessionlogs"会话管理器"和"窗口管理器"错误的会话记录所在的目录有些错误也显示在"系统控制台"窗口中.
如果"系统控制台"窗口此时并未运行,则应急控制台记录文件名是wscon,并与时间/显示码连在一起.
例如:/usr/tmp/wsconAAAa004EE:0.
0用户启动文件要寻找.
login(对于csh用户)或.
profile(对于sh或ksh用户)文件,需要撤去要读取的文件.
dtprofile的最后一行的注释为:DTSOURCEPROFILE=true在大多数情况下,这就足够了.
但在某些情况下,由于文件.
login或.
profile可能含有不适用于SolarisCDE"登录管理器"的命令,所以您还需要修改该文件.
如果其中一条命令出故障,则通常与期待终端键盘输入源(如stty、tset或者与"waitforinput"命令)的文件有关.
50Solaris公用桌面环境:高级用户和系统管理员指南2002年5月小心:如果.
dtprofile被设置为寻找文件.
login或.
profile,而这些文件中又含有出故障的命令,这些命令将使shell崩溃,那么桌面启动将失败.
结果是不显现任何桌面.
相反,您将看到SolarisCDE登录屏幕重新显示.
.
login或.
profile中的启动错误通常将被记录在文件HomeDirectory/.
dt/startlog中.
可利用失败安全会话或命令行登录方式来调试在.
login或.
profile中出故障的命令.
有关故障及其可能的解决方案的更多信息,请参阅.
dtprofile.
出故障的命令一般与终端信息和控制有关.
SolarisCDE启动实例本节提供了如何编辑下列的用户启动文件的实例:I.
login(用于csh用户)I.
profile(用于sh或ksh用户)I.
XdefaultsSolarisCDE启动进程在.
login或.
profile文件的脚本中定义了名为DT的shell变量,以便在SolarisCDE的启动进程中进行检查.
这就避免了执行像tty和stty这样的与终端有关的命令.
请参阅下面的脚本实例:.
login(Cshell)if(!
${DT})thensttyerase'^h'endif.
profile(shorksh)if[!
"$DT"];thensttyerase'^h'fi围绕DT的外加语法避免了在未定义DT时来自Cshell的警告.
当用户利用传统的基于文本的控制台登录提示符来登录时,DT是未定义的.
有关设置点文件的详细信息,请参阅HomeDirectory/.
dtprofile文件.
注意:在.
Xdefaults中指定SolarisCDEtty设置.
第3章登录和会话启动故障的疑难解答51在SolarisCDE启动时,为用户特定的资源查找用户的.
Xdefaults文件.
例如,ttyModes确保在像dtterm或xterm这样的终端仿真窗口中,可以使用用户最喜爱的tty设置.
下面一行在.
Xdefaults文件中显示典型的ttyModes设置:*ttyModes:erase^Hintr^Ckill^Ustart^Qstop^Ssusp^Z'注意:最喜爱的SolarisCDE资源与缺省的设置不同.
"桌面"的"窗口管理器"的图标放置就是一个缺省设置的实例.
在这种情况下,在文件.
Xdefaults中的下面一行显示了缺省的图标放置设置:Dtwm*iconPlacement:righttop52Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第4章添加和管理应用程序应用程序管理器是用户可用应用程序的桌面容器.
I第53页"应用程序管理器的结构"I第57页"向应用程序管理器添加应用程序"I第59页"创建和管理通用应用程序组"I第60页"修改用于定位应用程序的查找路径"I第61页"通用应用程序管理器的管理"I第62页"更改文本编辑器和终端仿真器"应用程序管理器的结构顶层的"应用程序管理器"通常包含目录.
每个目录及其内容都被称作应用程序组.
53图形4–1应用程序管理器中的应用程序组应用程序组及其内容是从本地以及整个网络上的多个位置收集的.
应用程序管理器的目录位置在文件系统中,"应用程序管理器"是目录/var/dt/appconfig/appmanager/login-hostname-display.
用户每次登录时都动态创建此目录.
例如,如果用户ronv从显示屏wxyz:0登录,就会创建应用程序管理器目录/var/dt/appconfig/appmanager/ronv-wxyz-0.
应用程序管理器如何查找和收集应用程序"应用程序管理器"是通过收集本地和远程的应用程序组而建立的.
应用程序组是从位于应用程序查找路径上的目录中收集的.
缺省的应用程序查找路径由表4–1中所显示的位置组成.
表4–1缺省的应用程序查找路径的位置范围位置内置/usr/dt/appconfig/appmanager/language54Solaris公用桌面环境:高级用户和系统管理员指南2002年5月表4–1缺省的应用程序查找路径的位置(续下)范围位置全系统/etc/dt/appconfig/appmanager/language个人HomeDirectory/.
dt/appmanager要创建顶层的"应用程序管理器",登录时会创建从位于应用程序查找路径上的目录中的应用程序组(目录)到应用程序管理器目录/var/dt/appconfig/appmanager/login-hostname-display之间的链接.
收集操作是由桌面公用程序dtappgather进行的,该公用程序在用户成功登录后由"登录管理器"自动运行.
例如,桌面提供内置应用程序组:/usr/dt/appconfig/appmanager/language/Desktop_Tools登录时,符号链接创建到:/var/dt/appconfig/appmanager/login-hostname-display/Desktop_Tools应用程序查找路径可以包括远程目录.
这就提供了从位于整个网络上的系统中收集应用程序组的方法.
有关详细信息,请参阅第60页"向应用程序查找路径中添加应用程序服务器".
收集应用程序的优先级规则如果查找路径上存在有复制,则个人应用程序组具有高于全系统组的优先级,全系统组具有高于内置组的优先级.
例如,如果/usr/dt/appconfig/appmanager/C/Desktop_Tools和/etc/dt/appconfig/appmanager/C/Desktop_Tools都存在,要使用的将是/etc下的应用程序组.
缺省桌面所提供的应用程序组非定制的桌面提供四个应用程序组.
IDesktop_AppsIDesktop_ToolsIDesktop_ControlsIInformationISystem_Admin第4章添加和管理应用程序55如何收集应用程序组的实例图形4–2显示包含若干不同的应用程序组的应用程序管理器窗口.
表4–2显示这些应用程序组来自的目录.
图形4–2典型的"应用程序管理器"窗口表4–2应用程序组来源名称所收集的目录CAD_App/net/ApServA/etc/dt/appconfig/appmanager/C/CAD_AppDrawingApp/etc/dt/appconfig/appmanager/C/DrawingAppDesktop_Apps/usr/dt/appconfig/appmanager/C/Desktop_AppsDesktop_Tools/usr/dt/appconfig/appmanager/C/Desktop_ToolsInformation/usr/dt/appconfig/appmanager/C/InformationOpenWindows/usr/dt/appconfig/appmanager/C/InformationSystem_Admin/etc/dt/appconfig/appmanager/C/System_AdminMySpreadSheet/users/anna/.
dt/appmanager/MySpreadSheetMedia_Tools/etc/dt/appconfig/appmanager/C/Media_Tools如果已经定制了Information或System_Admin应用程序组,则将另从/etc/dt/appconfig/appmanager/C收集它们.
CAD_App组之所以被收集,是因为名为ApServA的系统已经添加到应用程序查找路径(见第60页"向应用程序查找路径中添加应用程序服务器").
MySpreadSheet是个人应用程序组,仅供用户anna使用.
56Solaris公用桌面环境:高级用户和系统管理员指南2002年5月向应用程序管理器添加应用程序应用程序添加到应用程序管理器后,应用程序组中会出现一图标,用以启动该应用程序.
许多应用程序提供应用程序组.
应用程序组是位于应用程序管理器顶层中的目录,它包含了应用程序的图标以及其他与应用程序有关的文件.
有些应用程序可能没有自己的应用程序组.
而是将启动应用程序的图标放置在一个通用应用程序组中.
例如,可创建名为"Games"的空应用程序组,用作系统安装的所有游戏的容器.
向应用程序管理器添加应用程序的方法将应用程序添加到应用程序管理器的方法有两种:I注册应用程序I添加应用程序图标而不注册该应用程序注册应用程序应用程序注册提供完整的应用程序集成.
经过注册的应用程序:I拥有自己的应用程序组.
I其桌面配置文件收集在单独一个位置.
此组桌面配置文件称作登记软件包.

I可能拥有已注册的帮助卷.
注册应用程序的方法有两种:I在安装桌面智能型应用程序时,注册自动进行.
请参阅第58页"向应用程序管理器中添加桌面智能型应用程序".
I现有的应用程序可通过创建登记软件包来注册.
请参阅第58页"注册现有的或非桌面智能型应用程序".
登记软件包的使用更加简化了桌面应用程序的管理.
登记软件包创建于文件系统中桌面配置文件所在位置之外的其他某个位置.
在不使用登记软件包的情况下添加应用程序当要使"应用程序管理器"只包含启动应用程序的图标时,这是首选的添加应用程序的方法.
在不使用登记软件包的情况下添加的应用程序:第4章添加和管理应用程序57I可拥有自己的应用程序组,但通常是将图标放置在现有的应用程序组中I将其桌面配置文件直接放置在桌面查找路径下.
请参阅第58页"向现有的应用程序组添加应用程序图标".
M向应用程序管理器中添加桌面智能型应用程序桌面智能型应用程序是在安装时自动注册到"应用程序管理器"中的应用程序.
应用程序的文件集包括了桌面所需要的登记软件包.
1.
使用应用程序所提供的指令来安装应用程序.
2.
安装完成后,双击Desktop_Tools应用程序组中的"重新装入应用程序".
3.
验证安装完成:a.
打开应用程序管理器,检查新的应用程序组是否存在.
b.
要打开应用程序,先打开应用程序组,然后双击应用程序的图标.
M注册现有的或非桌面智能型应用程序这是将应用程序完全集成到桌面的首选方法.
桌面提供有工具dtappintegrate,它可以在登记软件包文件和桌面搜索路径上的目录之间创建链接.
桌面注册在第5章中讲解.
M向现有的应用程序组添加应用程序图标本步骤讲解如何向现有的应用程序组中添加应用程序图标.
例如,桌面提供名为System_Admin的应用程序组,该应用程序组是为与系统管理相关的各种应用程序和脚本而保留的.
如果有个用户频繁运行的脚本,您可能想让用户能够通过双击位于System_Admin应用程序组中的图标来运行该脚本.
1.
使用"创建操作"为应用程序创建操作定义.
有关"创建操作"的详细信息,请参阅第11章.
2.
在应用程序组的目录下创建与操作名称相同的可执行文件.
该文件的内容并不相关.
例如,如果已创建名称为"Cleanup"的操作,用于运行系统管理工具,则需要创建可执行文件:/etc/dt/appconfig/appmanager/language/System_Admin/Cleanup58Solaris公用桌面环境:高级用户和系统管理员指南2002年5月创建和管理通用应用程序组通用应用程序是个应用程序组(目录),它不与具体的应用程序产品相关联.
例如,内置的应用程序组Desktop_Tools是个通用组,它包含许多应用程序的图标,这些应用程序与单独某个产品有关,但并不是单独某个产品的一部分.
可以创建附加的通用应用程序组.
例如,您可能想创建称作"游戏"的组来收集系统中可用的各种游戏.
通用应用程序组在范围上可以是全系统,也可以是个人的.
M创建全系统的通用应用程序组1.
以超级用户登录.
2.
在/etc/dt/appconfig/appmanager/language下创建目录.
目录的名称作为应用程序组的名称.
3.
在Desktop_Tools应用程序组中,双击"重新装入应用程序".
M创建个人的通用应用程序组1.
在HomeDirectory/.
dt/appmanager下创建目录.
目录的名称作为应用程序组的名称.
2.
在Desktop_Tools应用程序组中,双击"重新装入应用程序".
M定制内置应用程序组1.
以超级用户登录.
2.
如果应用程序组位于/usr/dt/appconfig/appmanager/language,则将应用程序组复制到/etc/dt/appconfig/appmanager/language下.
例如,下面的命令用于复制Desktop_Tools应用程序组:cp-r/usr/dt/appconfig/appmanager/C/Desktop_Tools\/etc/dt/appconfig/appmanager/C应用程序组的新副本将具有高于其内置版本的优先级.
3.
修改应用程序组的副本.
例如,可以添加新的操作文件(和操作具有相同名称的可执行文件).
第4章添加和管理应用程序594.
要查看更改,可先注销,然后再重新登录.
修改用于定位应用程序的查找路径修改应用程序查找路径的主要原因是为了添加应用程序服务器.
把应用程序服务器添加到搜索路径后,"应用程序管理器"收集所有应用程序服务器上的全系统应用程序组.

有关应用程序查找路径的详细信息,请参阅第137页"应用程序查找路径".
缺省的查找路径缺省的应用程序查找路径所包括的目录列在中.
表4–3缺省的应用程序查找路径目录范围查找路径目录个人HomeDirectory/.
dt/appmanager全系统/etc/dt/appconfig/appmanager/language内置/usr/dt/appconfig/appmanager/language向应用程序查找路径中添加应用程序服务器要促成与应用程序服务器的通讯,除了要修改应用程序查找路径,可能还要执行其他一些配置任务.
请参阅第122页"管理应用程序服务".
M设置全系统的应用程序查找路径1.
以超级用户登录.
2.
如果文件/etc/dt/config/Xsession.
d/0010.
dtpaths不存在,则通过复制/usr/dt/config/Xsession.
d/0010.
dtpaths来创建它.
3.
打开/etc/dt/Xsession.
d/0010.
paths,以便进行编辑.
添加或编辑用于设置并输出DTSPSYSAPPHOSTS变量行:exportDTSPSYSAPPHOSTS=hostname:[,hostname]例如,下行将系统ApServA添加到应用程序查找路径:exportDTSPSYSAPPHOSTS=ApServA:60Solaris公用桌面环境:高级用户和系统管理员指南2002年5月4.
通知系统上的所有用户,告诉他们注销后重新登录更改才能生效.
M设置个人应用程序查找路径1.
打开HomeDirectory/.
dtprofile,以便进行编辑.
2.
添加或编辑用于设置并输出DTSPUSERAPPHOSTS变量行:exportDTSPUSERAPPHOSTS=hostname:[,hostname]例如,下行将系统ApServB和ApServC添加到应用程序查找路径中:exportDTSPUSERAPPHOSTS=ApServB:,ApServC:3.
注销并重新登录.
通用应用程序管理器的管理通用应用程序管理器的管理任务包括:I删除应用程序I会话期间,重新读取应用程序数据库M删除应用程序如果应用程序是使用dtappintegrate工具注册的,则还可以使用dtappintegrate逆转此过程.
如果应用程序被注销,其应用程序组被从应用程序管理器中删除,而其操作、数据类型、图标以及帮助将不再可用.
1.
以超级用户登录.
2.
运行命令:dtappintegrate-sapp_root-uM在会话期间更新应用程序管理器如果要添加应用程序并使所作更改立即生效,就必须重建"应用程序管理器".

G打开Desktop_Tools应用程序组,双击"重新装入应用程序".
将应用程序添加到应用程序服务器后,"重新装入应用程序"对于更新应用程序管理器是有用的.
但是,"重新装入应用程序"并不检测已从应用程序服务器删除的应用程序,也不检测已经移动到其他位置的应用程序.
用户注销并重新登录后,这些更改才能生效.

第4章添加和管理应用程序61更改文本编辑器和终端仿真器文本编辑器和终端仿真器都可通过在"前面板"中选择控制,或者通过在"应用程序管理器"中双击图标来启动.
这些应用程序也可以通过其他桌面活动来启动.
I当用户在"文件管理器"中选择了文本文件,然后在"选中"菜单下选择"打开"时,文本编辑器应用程序就会打开.
缺省的文本编辑器是dtpad.
I当用户从"文件管理器"的"文件"菜单下选择"打开终端",或者当操作打开终端仿真器窗口时,终端仿真器就会运行.
缺省的终端仿真器是dtterm.
在上述情况下,可以通过配置桌面来使用不同的文本编辑器或终端仿真器应用程序.

M更改缺省的文本编辑器或终端仿真器1.
如果更改是全系统的,则以超级用户登录.
2.
为新的文本编辑器或终端仿真器应用程序创建操作.
I可以使用"创建操作"应用程序.
图形4–3显示的是一个名为TextPad的应用程序填充好的"创建操作"窗口.
有关"创建操作"的详细信息,请参阅第11章.
62Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形4–3"创建操作"窗口I或者,手动创建操作定义;例如:ACTIONTextPad{LABELTextPadTYPECOMMANDWINDOW_TYPENO_STDIOEXEC_STRING/usr/TP/bin/TextPad%(File)Arg_1%DESCRIPTIONDouble-clickthisicontostartthe\TextPadapplication.
}有关手动创建操作定义的信息,请参阅第12章.
3.
将包含新操作的配置文件放到适当的目录:I全系统:/etc/dt/appconfig/types/languageI个人:HomeDirectory/.
dt/types4.
如果它不存在,就创建相应的user-prefs.
dt文件,其方法是将/usr/dt/appconfig/types/language/user-prefs.
dt复制到:I全系统:/etc/dt/appconfig/types/language目录I个人:HomeDirectory/.
dt/types目录5.
在系统范围或个人的user-prefs.
dt文件中编辑文本编辑器或者终端的操作.
修改MAP_ACTION行,使操作映射为新的操作.
第4章添加和管理应用程序63例如,将下行:MAP_ACTIONDtpad更改为:MAP_ACTIONTxtPd6.
保存user-prefs.
dt文件.
7.
在Desktop_Tools应用程序组中双击"重新装入应用程序",以便重新装入操作数据库.
64Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第5章注册应用程序本章讲述如何为应用程序创建注册软件包以及如何将应用程序注册到桌面上.

I第66页"应用程序注册概述"I第68页"注册应用程序的一般步骤"I第69页"第1步:修改字体和颜色资源"I第70页"第2步:创建桌面应用程序根"I第70页"第3步:创建注册软件包目录"I第72页"第4步:创建应用程序的操作和数据类型"I第75页"第5步:将"帮助文件"放到"注册软件包"中"I第75页"第6步:创建应用程序的图标"I第76页"第7步:创建"应用程序组""I第81页"第8步:使用dtappintegrate注册应用程序"I第84页"创建注册软件包的实例"当应用程序完全注册到桌面上后,它具有:I自己的应用程序组,位于应用程序管理器的顶层I启动该应用程序的操作.
此操作由应用程序组中的图标表示I(可选)数据文件的数据类型应用程序的注册是对应用程序的无侵害操作:I它不涉及对可执行的应用程序自身的修改.
因此,可以在系统中注册现有的应用程序.
I它无需将应用程序的任何已发送的文件(如可执行文件和app-defaults)转移到其他文件位置.
I可以很容易地逆转.
用来注册应用程序的dtappintegrate工具提供了用于逆转注册过程的命令行选项.
在下列情况下,您会需要创建注册软件包:I您是系统管理员,要将现有的应用程序注册到桌面上I您是软件程序员,要为桌面智能型应用程序创建安装软件包65应用程序注册概述本节讲解:I应用程序注册的目的I应用程序注册为应用程序提供的特性注意:有关显示如何注册现有的应用程序的详细实例,请参阅第84页"创建注册软件包的实例".
应用程序注册所提供的特性应用程序注册允许用户采用图形方式来:I定位应用程序.
安装后,应用程序就"注册"到了"应用程序管理器",并拥有了自己的应用程序组.

图形5–1应用程序管理器顶层的应用程序组I启动应用程序.
应用程序的应用程序组含有图标,用户可以双击该图标来启动应用程序.

66Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形5–2应用程序组含有用以启动应用程序的图标I标识和操作数据文件.
应用程序的数据文件会在"文件管理器"中有独特图标.

用户可以使用数据文件图标来:I启动(打开)应用程序I打印数据文件图形5–3数据文件的弹出菜单中包含"打开"和"打印"I执行诸如邮寄、压缩、查看或播放(音频)数据之类的等其他操作应用程序注册的目的注册后的桌面应用程序有某些特定的配置文件,桌面使用这些文件来提供应用程序用户界面:I操作和数据类型定义文件I图标图像(像素图或位图)文件第5章注册应用程序67I创建应用程序组的目录和文件I(可选)桌面帮助文件和"前面板"定义文件为了使桌面识别并使用这些文件,它们必须位于桌面查找路径所指定的某些目录中.

当应用程序的配置文件分散在几个不同的目录中时,对应用程序进行管理会很困难.
因此,桌面允许应用程序将所有的桌面配置文件集中到单独一个目录下.
这组文件就叫注册软件包.
如果应用程序是桌面智能型的,它的安装包本身就带有注册软件包.
如果您是自己创建配置文件的系统管理员,则可以亲自创建注册软件包.
由于注册软件包的配置文件不在正确的查找路径目录中,桌面无法使用这些文件.
将这些文件放置到适当位置的过程叫注册或集成应用程序.
桌面提供dtappintegrate工具,该工具通过在适当的查找路径中创建文件的以符号形式链接的表示来执行注册.
许多桌面智能型应用程序会自动地在安装过程中运行dtappintegrate.
如果您是系统管理员,正在集成现有的应用程序,则可以在创建注册软件包后自己运行该工具.

应用程序一旦注册到系统桌面,就可被该系统的所有用户调用.
如果该系统被配置为桌面应用程序服务器,此应用程序也可供网络上的其他系统使用.
dtappintegrate工具有一个用于通过中断链接来逆转注册过程的选项.
这样,可以很容易地把应用程序从应用程序管理器中删除,以便把应用程序移到另一个应用程序服务器或把它更新.
注册应用程序的一般步骤注意:有关使用这些步骤来创建应用程序软件包的详细实例,请参阅第84页"创建注册软件包的实例".
1.
修改应用程序中任何设置字体和颜色的资源.
否则,桌面的动态字体和颜色将不能正常工作.
请参阅第69页"第1步:修改字体和颜色资源".
2.
创建应用程序根位置.
请参阅第70页"第2步:创建桌面应用程序根".
3.
在应用程序的根下创建目录结构.
请参阅第70页"第3步:创建注册软件包目录".
4.
创建应用程序的操作和数据类型.
68Solaris公用桌面环境:高级用户和系统管理员指南2002年5月请参阅第72页"第4步:创建应用程序的操作和数据类型".
5.
将帮助文件放置在相应的目录中.
请参阅第75页"第5步:将"帮助文件"放到"注册软件包"中".
6.
创建应用程序的图标请参阅第75页"第6步:创建应用程序的图标".
7.
创建应用程序的应用程序组.
请参阅第76页"第7步:创建"应用程序组"".
8.
用dtappintegrate注册应用程序.
请参阅第81页"第8步:使用dtappintegrate注册应用程序".
第1步:修改字体和颜色资源注意:有关修改应用程序资源的实例,请参阅第84页"创建注册软件包的实例".
桌面提供设置和操作界面字体和窗口颜色的机制.
为了使应用程序正确地使用该机制,必须修改应用程序的app-defaults文件.
修改字体资源注意:本节适用于使用OSF/Motif1.
2(或更高版本)创建的应用程序.
"式样管理器"无法为用更低版本的OSF/Motif编写的应用程序设置界面字体.
如果使用OSF/Motif1.
2(或更高版本)创建的应用程序没有指定应用程序特定的界面字体,桌面"式样管理器"就会为它设置界面字体.
"式样管理器"提供两种字体:系统字体—适用于标号、菜单和按钮等系统区用户字体—适用于文本字段等可编辑区每种字体的大小都有7个级别,在字体对话框中用数字1到7标记.
"式样管理器"的字体通过在/usr/dt/app-defaults/language/Dtstyle中的式样管理器资源设置连接到系统中的实际字体.
如果想让应用程序使用"式样管理器"的字体,就应该删除所有指定界面字体的应用程序资源.
桌面会自动适当地设置应用程序资源:第5章注册应用程序69FontList—设置为系统字体XmText*FontList—设置为用户字体XmTextField*FontList—设置为用户字体修改颜色资源"式样管理器"提供动态地更改应用程序颜色能力.
应用程序必须是OSF/Motif1.
1或1.
2客户机程序.
用其他工具包编写的客户机程序不能动态更改颜色,颜色更改只能在客户机程序重新启动时生效.
使用桌面提供的动态颜色的最简单方法是删除所有用于背景色和前景色的应用程序颜色资源.
第2步:创建桌面应用程序根注意:有关创建应用程序的桌面应用程序根目录实例,请参阅第84页"创建注册软件包的实例"的第2步.
应用程序的注册软件包文件都被集中到一个被称为应用程序根目录或app_root的目录下.
桌面配置使用的app_root目录可以和应用程序的安装目录app_root是同一个目录,也可以是另外某个位置.
例如,假设应用程序安装在/usr/BTE目录下.
此目录可用作桌面配置文件的app_root目录.
但是,如果要集成一个现有的非桌面智能型应用程序,则需要另外创建桌面app_root目录.
这样可以防止在更新应用程序时覆写所创建的配置文件.
例如,系统管理员可以创建/etc/desktop_approots/BTE作为桌面的app_root目录.
第3步:创建注册软件包目录注意:有关创建应用程序的注册软件包实例,请参阅第84页"创建注册软件包的实例"的第3步.
注册软件包是桌面为应用程序提供图形界面所使用的那组桌面配置文件.

70Solaris公用桌面环境:高级用户和系统管理员指南2002年5月注册软件包内容桌面配置文件包括:I操作和数据类型定义文件I图标的图像文件I应用程序组目录及其内容I可选:帮助数据文件和前面板配置文件注册软件包聚集在名为应用程序根目录或app_root的顶层目录下.
图形5–4在应用程序根目录下的注册软件包app_root/dt/appconfig目录下的配置字段的主要类显示于表5–1.
表5–1配置区的主要类子目录内容types操作和数据类型定义文件help桌面帮助文件icons应用程序的操作和数据类型所使用的位图和像素图图像文件appmanager创建应用程序组的目录和内容每个主要类别都有与语言相关文件的子目录.
缺省语言的文件放置在C目录中.
第5章注册应用程序71M创建注册软件包G创建下面的目录.
如果要提供与语言相关的配置文件,需要为每种语言创建单独的目录.
如果只要提供一种语言,请把文件放置在C目录中.
Iapp_root/dt/appconfig/types/languageIapp_root/dt/appconfig/help/languageIapp_root/dt/appconfig/icons/languageIapp_root/dt/appconfig/appmanager/language/appgroup_name,其中appgroup_name是应用程序组的名称.
例如,图形5–5显示应用程序管理器,它包含名为"Media_Tools"的appgroup_name.
图形5–5在应用程序管理器顶层的应用程序组dtappintegrate工具只对类型、帮助、图标和应用程序管理器目录下的桌面配置文件进行操作.
应用程序的二进制可执行文件、app-defaults和信息种类文件,都单独进行管理.
第4步:创建应用程序的操作和数据类型注意:有关创建应用程序操作和数据类型的实例,请参阅第84页"创建注册软件包的实例"的第四步.
操作和数据类型为应用程序提供用户界面.
I操作为启动应用程序的命令提供用户界面I数据类型提供用户定制的应用程序数据文件的外观和特性72Solaris公用桌面环境:高级用户和系统管理员指南2002年5月应用程序所需的操作和数据类型典型的应用程序需要下面的操作和数据类型定义:I打开应用程序的操作.
I应用程序数据文件的数据类型.
如果要创建数据类型,同样也要创建:I应用程序数据文件的"打开"操作I应用程序数据文件的"打印"操作I应用程序组的数据类型(请参阅第78页"为应用程序组配置专用图标").
有关桌面中操作和数据类型的使用方法的介绍,请参阅第10章.
操作和数据类型定义配置文件的位置操作和数据类型在配置文件中定义.
命名包含操作和数据类型定义的文件的唯一要求是要使其带有.
dt后缀.
按照惯例,可以将文件命名为action_name.
dt或application_name.
dt.
将包含操作和数据类型的文件放置在应用程序根目录下的app_root/dt/appconfig/types/language目录中.
缺省的language是C.
图形5–6操作和数据类型定义文件创建操作和数据类型的方法可以采用两种方法为应用程序创建操作和数据类型:I使用创建操作工具.
创建操作工具提供易于使用的界面,它具有供输入用的文本区.
然而,该工具有一定的限制.
I手动创建定义.
虽然这需要了解创建定义的语法,但它可提供更全面的功能.
第5章注册应用程序73M用创建操作工具来创建操作和数据类型下面的过程采用"创建操作"公用程序为应用程序创建操作和数据类型.

有关"创建操作"的详细信息,请使用它的联机帮助或参阅第11章.
1.
打开Desktop_Apps应用程序组,双击"创建操作".
2.
使用"创建操作"为应用程序及其数据类型创建操作和数据类型定义.
由"创建操作"创建的配置文件会写入HomeDirectory/.
dt/type/action_name.
dt.
其操作文件(与操作同名的可执行文件)放置在起始目录中.
3.
用起始目录中创建的操作文件测试操作.
4.
将操作定义文件HomeDirectory/.
dt/type/action_name.
dt复制到app_root/dt/appconfig/types/language目录下.
5.
创建应用程序组目录之后(请参阅第76页"第7步:创建"应用程序组""),把操作文件HomeDirectory/action_name复制到app_root/dt/appconfig/appmanager/language/appgroup_name目录下.
M手动创建操作和数据类型G为应用程序创建包含操作和数据类型定义的配置文件.
操作和数据类型定义文件的命名必须遵循命名惯例name.
dt.
可以将操作和数据类型的所有定义放置在一个文件中,也可以分别放置在多个文件内.

每个文件使用的文件名都要使系统管理员容易将其与应用程序联系起来.

操作和数据类型名称必须是单词(没有内嵌的空格).
可以使用下划线字符.
按照惯例,操作或数据类型名的第一个字母要大写.
不要使用现有的操作名或文件名.
要使用便于高级用户和系统管理员与您的应用程序联系起来的名称.
如果想让应用程序的图标所标记的名称与操作名不同,请让操作定义中包括LABEL字段.
有关创建操作和数据类型详细信息,请参阅:I第10章I第11章I第12章I第13章74Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第5步:将"帮助文件"放到"注册软件包"中注意:有关在注册软件包加入帮助文件的实例,请参阅第84页"创建注册软件包的实例"的第5步.
如果应用程序包含桌面帮助卷(用桌面的帮助开发者工具包创建的帮助卷),帮助卷的主文件(*.
sdl)就应该放在app_root/appconfig/help/language目录中.
帮助文件使用的图形通常放置在一个图形子目录中.
所有图形必须始终放在创建帮助卷时所建的与主帮助卷(*.
sdl)文件相关的目录下.
在应用程序不提供帮助卷的情况下,如果有帮助开发者工具包,您就可以自行创建一个帮助卷.
帮助卷有两个级别的集成:I完全集成.
当桌面帮助完全集成时,可以从应用程序访问帮助卷—例如,使用项目帮助和"帮助"菜单.
完全集成需要修改应用程序的可执行文件.
I部分集成.
当桌面帮助部分集成时,可以从帮助管理器的顶层访问帮助卷.
但是,无法从应用程序窗口访问帮助卷.
另外,您也可以提供从应用程序组访问帮助卷的操作.
下面的操作实例显示帮助主文件MyApp.
sdl中的帮助卷:ACTIONOpenMyAppHelp{LABELMyAppHelpARG_COUNT0TYPECOMMANDWINDOW_TYPENO_STDIOEXEC_STRING/usr/dt/bin/dthelpview-helpVolumeMyAppDESCRIPTIONDisplayshelpfortheMyAppapplication.
}第6步:创建应用程序的图标注意:有关创建应用程序图标文件的实例,请参阅第84页"创建注册软件包的实例"的第6步.
桌面为操作、数据类型和应用程序组提供缺省图标.
但是,您可能需要为应用程序创建专用图标.
图标放置在app_root/dt/appconfig/icons/language目录中.
第5章注册应用程序75桌面所需图标应用程序在桌面上使用下面的图标图像:I操作图标.
这是让用户双击以启动应用程序(操作)的图标.
它在启动应用程序操作的ICON字段引用.
提供三种尺寸:小图标、中图标和大图标.
I数据类型图标.
这是在"文件管理器"中代表应用程序数据文件的图标.
它在数据类型定义的ICON字段引用.
如果应用程序支持多种数据类型,则应为每种文件类型提供不同的图标.

提供两种尺寸:小图标和中图标.
I应用程序组图标.
这是在应用程序管理器顶层中代表目录的图标.
它在应用程序组的数据类型定义中的ICON字段引用.
(请参阅第76页"第7步:创建"应用程序组"".
)提供两种尺寸:小图标和中图标.
为支持彩色(8位或8位以上)和单色(小于8位)显示,每个图标可能需要同时提供像素图和位图两个版本.
表5–2图标文件的命名惯例大小像素维数位图名像素图名小16乘16basename.
t.
bmbasename.
t.
pm中32乘32basename.
m.
bmbasename.
m.
pm大48乘48basename.
l.
bmbasename.
l.
pm如果未提供位图文件,桌面会将像素图的颜色规范映射为黑白两色.
但是这种映射可能不会产生所期望的效果.
有关图标的详细信息,请参阅第209页"图标图像文件".
第7步:创建"应用程序组"注意:有关创建应用程序组的实例,请参阅第84页"创建注册软件包的实例"的第7步.
应用程序的操作和数据类型定义一经创建后,还必须创建用于产生用户实际所见对象应用程序组及其内容的配置文件.
应用程序组是位于应用程序管理器顶层的目录(请参阅图形5–1).
76Solaris公用桌面环境:高级用户和系统管理员指南2002年5月创建应用程序组分为三步:I在注册软件包中创建应用程序组目录.
I可选:为应用程序组配置专用图标.
这需要创建应用程序组的数据类型定义.

I创建应用程序组的内容.
创建应用程序组的目录为创建应用程序组,需要在appmanager下的注册软件包中创建目录,如图形5–7所示.
图形5–7appmanager目录应用程序组名图形5–7中的是应用程序组名.
第5章注册应用程序77图形5–8应用程序组名()应用程序组名可以是任何合法的文件(目录)名.
请使用能描述应用程序功能的名称.
为应用程序组配置专用图标虽然桌面可以为应用程序组提供缺省图标.
但是,您可能想提供定制图标.
如果想为应用程序组提供专用图标,则必须创建:I应用程序管理器顶层目录的数据类型.
I数据类型的打开和打印操作.
例如,假设想创建名为Media_Tools的应用程序组.
下面的放置在app_root/dt/appconfig/types/language/name.
dt文件中的数据类型定义指定应用程序组的专用图标.
DATA_ATTRIBUTESMedia_ToolsAppgroup{ACTIONSOpenInPlace,OpenNewViewICONMediaToolsDESCRIPTIONDouble-clicktoopentheMedia_Tools\applicationgroup}DATA_CRITERIAMedia_ToolsAppgroupCriteria1{DATA_ATTRIBUTES_NAMEMedia_ToolsAppgroupMODEdPATH_PATTERN*/appmanager/*/Media_Tools}该定义的属性段指定所用的图标.
标准段则指定将数据类型定义到任何名为Media_Tools并且是appmanager目录的子目录的目录下.
图形5–9显示了应用程序组名和数据类型定义之间的关系.
数据类型定义中的PATH_PATTERN字段将专用图标与应用程序组相连接.
78Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形5–9应用程序组如何获得专用图标必须为应用程序组数据类型创建"打开"和"打印"操作:ACTIONOpen{ARG_TYPEMedia_ToolsAppGroupTYPEMAPMAP_ACTIONOpenAppGroup}ACTIONPrint{ARG_TYPEMedia_ToolsAppGroupTYPEMAPMAP_ACTIONPrintAppGroup}OpenAppGroup和PrintAppGroup操作是在/usr/dt/appconfig/types/language/dtappman.
dt中定义的内置操作.
创建应用程序组的内容应用程序组中最重要的一项是启动应用程序的图标(操作图标).
如果应用程序组包括一组应用程序,则通常每个应用程序都有操作图标.
除一个或多个操作图标外,应用程序组还可以包括:I一个或多个README文件I一个或多个样本数据文件I模板I图标,用户可双击它来查看帮助信息I手册页第5章注册应用程序79I专门的"前面板"控制应用程序组可以包含子目录.
创建操作文件(应用程序图标)应用程序组应该包含启动应用程序的图标.
如果应用程序组提供一组应用程序,则每个程序都应该有图标.
这些图标称作应用程序图标或操作图标,因为它们代表所蕴含的操作.
操作图标是通过创建与它将运行的操作同名的可执行文件来创建的:app_root/dt/appconfig/appmanager/appgroup_name/action_name这个文件被称为操作文件,因为它的目的是创建所蕴含的操作的视觉表示形式.

例如,如果已经创建了运行BestTextEditor应用程序的,名为BestTextEditor的操作,则应该创建名为BestTextEditor的可执行文件.
在"文件管理器"和应用程序管理器中,操作文件会使用操作定义中指定的图标图像.
图形5–10说明操作定义、操作文件和"应用程序管理器"窗口实际入口之间的关系.
图形5–10应用程序图标是应用程序组中的文件自述文件桌面提供README数据类型供应用程序的README文件使用.
请使用下列命名惯例之一:80Solaris公用桌面环境:高级用户和系统管理员指南2002年5月IREADMEIreadmeIREADME.
*IRead.
*.
MeIread.
*.
meIREAD.
*.
ME创建专用前面板绝大多数情况下,不必提供"前面板"的控制定义;用户可以通过在子面板的"安装图标"控制上放置操作图标,来将应用程序添加到"前面板"中.
如果想使用户可自行安装与操作图标性能不同的控制,例如,该控制监视一个文件并且随被监视文件的改变来改变外观,则可能需要创建包含应用程序控制定义的前面板配置文件.
"前面板"配置文件放置在app_root/dt/appconfig/types/language目录中.
命名惯例是name.
fp.
提供包含控制定义的配置文件后,用户可以通过在子面板的"安装图标"控制上放置*.
fp文件来将控制添加到子面板.
例如,下面的定义可以放置在应用程序组的"前面板"配置文件中.
如果用户将这个文件放置在子面板的"安装图标"控制上,子面板中会创建运行BestTextEditor应用程序的单一实例的控制.
如果BestTextEditor已在运行,该窗口会跳到当前工作区的窗口堆叠的顶部.
CONTROLBestTextEditorControl{TYPEiconICONBTEFPanelPUSH_RECALLTrueCLIENT_NAMEBTEdPUSH_ACTIONBTEditorDROP_ACTIONBTEditorHELP_STRINGStartstheBestTextEditorapplication.
}有关创建"前面板"配置文件的更多信息,请参阅:I第15章Idtfple(4)手册页第8步:使用dtappintegrate注册应用程序注意:有关注册应用程序的实例,请参阅第84页"创建注册软件包的实例"的第8步.
第5章注册应用程序81在应用程序的根目录下一经创建注册软件包后,即可开始实际的应用程序注册.
应用程序的注册在注册软件包和位于桌面查找路径内的目录之间建立链接(请参阅第82页"dtappintegrate如何集成应用程序").
M用dtappintegrate注册应用程序如果应用程序是桌面智能型的,dtappintegrate一般作为安装过程的最后一步自动执行.
如果它没有自动执行,或者已创建了配置文件以集成非桌面智能型的应用程序,就可以手动运行dtappintegrate.
1.
以超级用户登录.
2.
运行下面的命令:/usr/dt/bin/dtappintegrate-sapp_root其中app_root是桌面应用程序的根目录.
有关详细信息,请参阅dtappintegrate(1)手册页.
3.
打开Desktop_Tools应用程序组,双击"重新装入应用程序".
4.
确认应用程序注册正确:a.
显示应用程序管理器的顶层.
新的应用程序组应出现在应用程序管理器中.

b.
打开应用程序组,双击操作图标.
dtappintegrate的语法和选项dtappintegrate-sapp_root[-ttarget_path][-llanguage][-u]-sapp_root必要参数,指定已安装应用程序的所在的应用程序根目录.
-ttarget_path可选参数,缺省为系统位置/etc/dt/appconfig.
指定桌面配置文件链接的位置.
指定桌面配置文件链接到哪个位置.
必须使用位于应用程序的查找路径中的某个位置.
-llanguage可选参数,缺省设置为所有语言.
指定集成哪一个与语言相关的桌面配置文件.
-u可选参数,解除应用程序的集成,删除集成期间建立的所有链接.
dtappintegrate如何集成应用程序dtappintegrate的功能是在已安装的文件和桌面查找配置文件的位置之间建立链接.
82Solaris公用桌面环境:高级用户和系统管理员指南2002年5月操作和数据类型dtappintegrate创建从注册软件包内的操作和数据类型定义文件到操作数据库帮助查找路径中的全系统目录的符号链接.
此操作是通过创建从app_root/dt/appconfig/types/language/*.
dt到/etc/dt/appconfig/types/language/*.
dt的链接来完成的.
帮助信息文件dtappintegrate创建从注册软件包内的帮助文件到帮助查找路径中的全系统目录的符号链接.
此操作是通过创建从app_root/dt/appconfig/help/language/help_le.
sdl到/etc/dt/appconfig/help/language/help_le.
sdl的链接来完成的.
图标文件dtappintegrate创建从注册软件包内的图标文件到图标查找路径中的全系统目录的符号链接.
此操作是通过创建从app_root/dt/appconfig/types/language/*.
dt到/etc/dt/appconfig/types/language/*.
dt的链接来完成的.
应用程序组为把应用程序组放到应用程序管理器的顶层,dtappintegrate在注册软件包内的应用程序组目录和应用程序查找路径中的全系统目录之间创建符号链接.
这是通过创建从目录app_root/dt/appconfig/appmanager/language/appgroup_name到/etc/dt/appconfig/appmanager/language/appgroup_name的链接来完成的.
第5章注册应用程序83创建注册软件包的实例下面的步骤为名为BestTextEditor的现有的非桌面智能型应用程序创建注册软件包.
需要了解的有关"BestTextEditor"的信息本实例假设下列关于BestTextEditor应用程序的事实成立:I它安装在/usr/BTE目录下.
I用户会话的语言是缺省值C.
I启动BestTextEditor的命令行是:BTEd{lename]其中lename是将在新的窗口中打开的数据文件的名称.
BestTextEditor创建自己的窗口—就是说,它不是在终端仿真器窗口中运行.
IBestTextEditor创建和使用两种类型的数据文件:I文档文件.
它们的命名惯例是*.
bte.
BestTextEditor提供了打印它自己的.
bte数据文件的命令行.
该命令的语法是:BTEPrint[-ddestination][-s]lename其中:-ddestination—指定目标打印机.
-s—指定静音打印.
应用程序的打印对话框不显示.
lename—指定要打印的文件.
I模板文件.
它们的命名惯例是*.
tpl.
模板文件不能打印.
I现有的BestTextEditor的非桌面app-defaults文件内包含界面字体、前景色和背景色的资源.
I用帮助开发者工具包创建BestTextEditorwas的联机帮助卷.
联机帮助卷建立以后,它使用下面的源文件:.
.
.
/BTEHelp.
htg.
.
.
/graphics/BTE1.
xwd.
.
.
/graphics/BTE2.
xwd同时生成文件…/BTEHelp.
sdl.
84Solaris公用桌面环境:高级用户和系统管理员指南2002年5月注册"BestTextEditor"的步骤以下是注册BestTextEditor的分步过程.
1.
修改字体和颜色资源.
在BestTextEditor的app-defaults文件中,删除设置以下项目的资源:I文本的字体I前景和背景的颜色2.
创建应用程序的根目录.
创建下面的目录:/desktop_approots/BTE如果是集成现有的应用程序,就应该创建与安装地点不同的应用程序根目录;否则,创建的配置文件可能会在更新应用程序时被删除掉.
3.
创建注册软件包目录.
创建下面的目录:/desktop_approots/BTE/dt/appconfig/types/C/desktop_approots/BTE/dt/appconfig/help/C/desktop_approots/BTE/dt/appconfig/icons/C/desktop_approots/BTE/dt/appconfig/appmanager/C/BestTextEditor4.
创建应用程序的操作和数据类型.
a.
创建定义操作和数据类型的配置文件:/desktop_approots/BTE/dt/appconfig/types/C/BTE.
dtb.
创建运行BestTextEditor的操作定义:ACTIONBTEditor{WINDOW_TYPENO_STDIOICONBTERunDESCRIPTIONDouble-clickthisiconordrop\aBTEdatafileonittorun\BestTextEditor.
EXEC_STRING/usr/BTE/BTEd%Arg_1%}c.
创建*.
bte文件的数据类型:DATA_ATTRIBUTESBTEDataFile{DESCRIPTIONBestTextEditordatafileICONBTEDataACTIONSOpen,Print}ICONBTEDataACTIONSOpen,Print}第5章注册应用程序85DATA_CRITERIABTEDataFileCriteria1{DATA_ATTRIBUTES_NAMEBTEDataFileNAME_PATTERN*.
bteMODEf}d.
创建*.
tpl文件的数据类型:DATA_ATTRIBUTESBTETemplateFile{DESCRIPTIONBestTextEditortemplatefileICONBTETemplACTIONSOpen}ICONBTETemplACTIONSOpen}DATA_CRITERIALBTETemplateFileCriteria1{DATA_ATTRIBUTES_NAMEBTETemplateFileNAME_PATTERN*.
tplMODEf}e.
创建*.
bte的打开操作.
ACTIONOpen{ARG_TYPEBTEDataFileTYPEMAPMAP_ACTIONBTEditor}f.
创建*.
bte的打印操作.
下面是打印数据文件的简单打印操作.
这些操作需要为LPDEST环境变量设置一个值,并忽略-s打印选项.
(如果LPDEST没有设置,打印操作可能会失败.
)ACTIONPrint{ARG_TYPEBTEDataFileTYPEMAPMAP_ACTIONBTEPrintData}ACTIONBTEPrintData{WINDOW_TYPENO_STDIOEXEC_STRINGBTEPrint-d$LPDEST%Arg_1%}下面是BTEPrintData操作的另一个版本和伴随脚本.
它们一起处理没有设置LPDEST或需要静音打印的情况.
86Solaris公用桌面环境:高级用户和系统管理员指南2002年5月ACTIONBTEPrintData{WINDOW_TYPENO_STDIOEXEC_STRING/usr/BTE/bin/BTEenvprint\%(File)Arg_1%}/usr/BTE/bin/BTEenvprint脚本的内容是:#BTEenvprint#!
/bin/shDEST=""SILENT=""if[$LPDEST];thenDEST="-d$LPDEST"fiBTEPrint$DESTSILENT$1g.
创建*.
tpl文件的"打开"操作:ACTIONOpen{ARG_TYPEBTETemplateFileTYPEMAPMAP_ACTIONBTEditor}h.
创建*.
tpl文件的"打印"操作:ACTIONPrint{ARG_TYPESBTETemplateFileTYPEMAPMAP_ACTIONNoPrint}NoPrint是内置的操作,用于显示对话框,告诉用户文件不能打印.
5.
把帮助文件放入注册软件包内.
a.
把帮助文件放置在下列位置:/desktop_approots/BTE/dt/appconfig/help/C/BTEHelp.
sdl/desktop_approots/BTE/dt/appconfig/help/C/graphics/BTE1.
xwd/desktop_approots/BTE/dt/appconfig/help/C/graphics/BTE2.
xwdb.
创建下面的文件:/desktop_approots/BTE/dt/appconfig/types/C/BTEhelp.
dt.
把下面的操作定义放置在文件内:ACTIONBTEHelp{WINDOW_TYPENO_STDIOEXEC_STRING/usr/dt/bin/dthelpview-helpVolume\BTEHelp.
sdlDESCRIPTIONOpenstheBestTextEditorhelpvolume.
第5章注册应用程序87}6.
创建应用程序图标.
用"图标编辑器"创建图标.
表5–3显示了所要采用的图标大小标准.
表5–3图标大小标准图标名大小basename.
t.
pm16乘16basename.
m.
pm32乘32basename.
l.
pm48乘48在目录/desktop_approots/BTE/dt/appconfig/icons/C下创建下面的图标文件:I代表运行应用程序的操作的图标:BTERun.
t.
pm,BTERun.
m.
pm,BTERun.
l.
pmI代表*.
bte文件的图标:BTEData.
t.
pm,BTEData.
m.
pm,I代表*.
tpl文件的图标:BTETempl.
t.
pm,BTETempl.
m.
pmI代表应用程序组的图标(用于第7步):BTEApp.
t.
pm,BTEApp.
m.
pm7.
创建应用程序组.
a.
如果尚未创建的话,请创建下面的目录.
/desktop_approots/BTE/dt/appconfig/appmanager/C/BestTextEditorb.
本步骤可选步骤.
通过为应用程序组创建一种数据类型和相关联的操作来为程序组提供专用图标.
如果忽略这一步,应用程序组将使用缺省的图标.
把下面的数据类型和操作定义添加到文件/desktop_approots/BTE/dt/appconfig/types/C/BTE.
dt中.
这些数据类型指定了BestTextEditor应用程序组所使用的图标.
这些操作提供了与内置应用程序组相同的"打开"和"打印"性能.
DATA_ATTRIBUTESBestTextEditorAppGroup{ACTIONSOpenInPlace,OpenNewViewICONBTEApp}DATA_CRITERIABestTextEditorAppGroupCriterial{DATA_ATTRIBUTES_NAMEBestTextEditorAppGroupMODEdPATH_PATTERN*/appmanager/*/BestTextEditor}ACTIONOpen{ARG_TYPEBestTextEditorAppGroup88Solaris公用桌面环境:高级用户和系统管理员指南2002年5月TYPEMAPMAP_ACTIONOpenAppGroup}ACTIONPrint{ARG_TYPEBestTextEditorAppGroupTYPEMAPMAP_ACTIONPrintAppGroup}c.
在应用程序组内创建启动应用程序的图标.
这需要创建下面的文件:/desktop_approots/BTE/dt/appconfig/appmanager/C\/BestTextEditor/BTEditor并使文件可执行.
d.
在应用程序组内创建打开帮助卷的图标.
这需要创建下面的文件:/desktop_approots/BTE/dt/appconfig/appmanager/C\/BestTextEditor/BTEHelp并使文件可执行.
e.
把其他文件放入应用程序组中;例如,"自述"文件、样本数据和模板文件.
8.
注册应用程序.
在终端仿真器窗口内:a.
以超级用户登录.
b.
运行下面的命令:/usr/dt/bin/dtappintegrate-s/desktop_approots/BTEc.
打开Desktop_Tools应用程序组,双击"重新装入应用程序".
第5章注册应用程序8990Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第6章其他配置本章讲述设置和系统的管理.
I第91页"SolarisCDE的目录结构"I第93页"主要配置文件"I第94页"启动登录服务器"I第96页"从另一个工作站或网络服务器安装位置来安装已安装的CDE"I第97页"配置桌面以使用多个屏幕"I第98页"联网的桌面"I第100页"使用XTerminals"I第101页"登录语言环境和字体路径"I第102页"将工作站作为XTerminals使用"I第103页"特殊的CDE配置"SolarisCDE的目录结构本节讲述了桌面环境所包含的主要目录.
/usr/dt此目录为SolarisCDE的安装位置.
也可以是一个远程文件服务器的安装点.
表6–1讲述/usr/dt子目录.
表6–1/usr/dt子目录子目录说明/binSCDE应用程序和公用程序91表6–1/usr/dt子目录(续下)子目录说明/libSCDE运行时共享库/config缺省系统配置文件/man[可选]手册页/app-defaults缺省应用程序资源/appconfig缺省应用图标、类型和操作/examples[可选]CDE代码/程序实例/include[可选]开发者包含文件/palettes颜色调色板/shareCDEAnswerBook文档和缺省背景/etc/dt此目录包含定制的工作站专用配置文件.
这些文件使您可以用下面的方式来定制环境:I设置X-server配置选项I使用多重屏幕I定制工作站操作文件、数据类型、图标和字体/var/dt本目录保存了用于诸如"登录管理器"和"应用程序管理器"之类的SolarisCDE应用程序的临时文件.
$HomeDirectory此目录包含与用户的桌面设置有关的用户特定的文件.
它们包括对应用程序、颜色搭配方案、工作区菜单和前面板的修改以及一些错误记录.
92Solaris公用桌面环境:高级用户和系统管理员指南2002年5月主要配置文件对桌面环境的定制大多会涉及许多文件.
下面的文件是两个实例:I/usr/dt/config/XconfigI/usr/dt/config/XserversXcongXconfig是dtlogin使用的主配置文件.
它设置登录资源并指定dtlogin所需的附加文件的位置.
以下实例显示的是缺省Xconfig文件中的几行:Dtlogin.
errorLogFile:/var/dt/XerrorsDtlogin.
servers:/usr/dt/config/XserversDtlogin*session:/usr/dt/bin/Xsession有关此文件的详细信息,请参阅附录A.
您也可以查看文件中的说明.
Xserversdtlogin,就像它所基于的XDM(X显示管理器)一样,使用Xservers文件来指定本地Xserver的启动方式.
缺省情况下,此文件的最后一行为::0Locallocal@console/usr/openwin/bin/Xsun:0I:0是指Xserver显示为.
Ilocal表示在本地启动新的X11服务器.
注意:如果要连接到一个正在运行的X11服务器上,将local替换为foreign.
Iconsole是指"命令行登录"换码为/dev/console.
I/usr/openwin/bin/Xsun是到X11服务器的路径.
注意:SolarisCDE和OpenWindows环境运行同一个X11服务器.
有关此文件的详细信息,请参阅dtlogin(1)手册页.
也可以审阅文件自身的说明.
第6章其他配置93启动登录服务器登录服务器通常在系统引导时自动启动.
也可从命令行启动登录服务器,但必须首先以超级用户身份登录.
设置登录服务器在系统引导时自动启动:G键入下面的命令并按回车键:#/usr/dt/bin/dtconfig-e这将S99dtlogin文件添加到/etc/rc2.
d目录中.
当重新引导时,登录服务器会自动启动.
禁止登录服务器在系统引导时自动启动:G键入下面的命令并按回车键:#/usr/dt/bin/dtconfig-d从命令行启动登录服务器:G键入下面的命令并按回车键:#/usr/dt/bin/dtlogin-daemon;exit注意:尽管临时配置测试允许从命令行启动登录服务器,但是登录服务器通常还是应该在系统引导时启动.
中止登录服务器、Xserver和整个SolarisCDE桌面:G键入下面的命令并按回车键:#/usr/dt/bin/dtconfig-kill有关桌面配置公用程序dtconfig的详细信息,请参阅附录A.
它提供一份dtconfig.
1手册页的副本.
使用"命令行登录"选项退出SolarisCDE登录屏幕:G在SolarisCDE登录屏幕上"选项"菜单中选择"命令行登录".
等屏幕清除后,按回车键来显示登录提示.
94Solaris公用桌面环境:高级用户和系统管理员指南2002年5月注意:在完成"命令行登录"后,桌面登录守护程序将自动启动桌面登录屏幕.

启动单个终端仿真窗口:G在SolarisCDE登录屏幕上从"设置"菜单的"会话"子菜单中选择"失败安全会话".
如果想让Xserver保持运行状态,可以从"会话"子菜单中选择"失败安全会话".
这将会启动单个xterm窗口.
"失败安全会话"选项总是可用的,即使在"命令行登录"选项不可用时它也可用.
第6章其他配置95从另一个工作站或网络服务器安装位置来安装已安装的CDE如果在工作站上没有足够的硬盘空间,可以从另一工作站或网络服务器安装位置安装已安装的CDE,因为这种方法不占用该机的硬盘空间.
注意:由于不同的Solaris版本和客户工作站之间的/usr/dt目录结构不同(SPARC工作站和Intel工作站的目录结构不同),客户工作站必须安装合适的NFS服务器中的/usr/dt映像.
例如一个Solaris2.
5的SPARC系统,应该从另一个已在/usr/dt目录中安装CDE的Solaris2.
5系统安装它的/usr/dt目录.
M安装已安装的CDE1.
将以前安装的工作站或网络服务器中的/usr/dt目录安装到您的工作站的/usr/dt目录下.
2.
键入/usr/dt/bin/dtconfig-inetd3.
要启用Solaris桌面登录,请键入:/usr/dt/bin/dtconfig-e4.
重新引导工作站.
有关桌面配置公用程序dtconfig的详细信息,请参阅附录A.
它提供一份dtconfig.
1手册页的副本.
M卸载已装配的CDE目录1.
要禁用Solaris桌面登录,请键入:/usr/dt/bin/dtconfig-d2.
键入/usr/dt/bin/dtconfig-inetd.
ow3.
卸载/usr/dt.
4.
重新引导工作站.
有关桌面配置公用程序dtconfig的详细信息,请参阅附录A.
它提供了一份dtconfig.
1手册页的副本.
96Solaris公用桌面环境:高级用户和系统管理员指南2002年5月配置桌面以使用多个屏幕标准的登录过程在单个屏幕上启动桌面程序.
您也可以编辑Xconfig文件在多个屏幕上启动桌面程序.
您必须以超级用户身份登录时才可以修改该文件.
注意:若要快速编辑登录配置信息,使用"失败安全会话"来运行单个xterm窗口,而不是运行整个桌面程序.
M使桌面在多个屏幕上启动1.
通过键入以下命令并按回车键,可创建一份Xserver的副本:#cp/usr/dt/config/Xservers/etc/dt/config/Xservers注意:/etc/dt/config/Xservers覆盖/usr/dt/config/Xservers.
2.
编辑/etc/dt/config/Xservers文件来设置两个框架缓冲区(屏幕):a.
查找此行::0Locallocal_uid@consoleroot/usr/openwin/bin/Xsun:0b.
在这一行末尾添加两个-dev选项.
本例假设它们被命名为/dev/fb0和/dev/fb1.
键入空格后添加以下项:-dev/dev/fb0-dev/dev/fb13.
从"选项"菜单中选择"重置登录屏幕".
第6章其他配置97注意:在多个屏幕上运行SolarisCDE时,每个屏幕上都显示一个"前面板".
这些"前面板"相互独立,各有独立的配置文件.
联网的桌面SolarisCDE登录管理器对网络敏感.
在缺省情况下,登录屏幕会响应SolarisCDE选择器的查询.
显示远程主机列表:G在SolarisCDE登录屏幕的"远程登录"菜单中选择"从列表中选择主机".
或者不依赖登录屏幕而独立运行选择器,参见第102页"将工作站作为XTerminals使用".
下面的屏幕显示可用服务器的典型选择器列表.
98Solaris公用桌面环境:高级用户和系统管理员指南2002年5月可以从此列表中选择一个闲置服务器,通过"选择器"来利用它的资源以登录到SolarisCDE.
联网的任一台运行SolarisCDE"登录管理器"的工作站都既可以支持一个本地桌面用户,也可以支持多个远程用户,包括把该工作站用作SolarisCDE桌面服务器的Xteminal用户.
(请参见图形6–1.
)第6章其他配置99图形6–1联网的桌面注意:图6-1可以包括一个混合硬件环境.
使用XTerminals任何支持XDM协议的Xterminal都可以使用"选择器"来登录到SolarisCDE.
要运行"选择器",请参阅第102页"将工作站作为XTerminals使用".
SPARCXterminal软件2.
0版(或更高版本)在SolarisCDE上运行良好.
在"X终端控制"窗口上单击"特性",并选择"会话"作为"类别"来显示如图形6–2中所示的设置屏幕.
100Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形6–2会话设置屏幕给"本地窗口管理器"选择"无",给连接运行SolarisCDE的远程系统的XDM选择"间接XDM".
登录语言环境和字体路径当登录到SolarisCDE上时,选择您的首选语言.
下面的SolarisCDE登录屏幕显示了"选项"菜单中的"语言"选择.
第6章其他配置101在工作站上,字体路径被自动设置为包括与首选的语言和系统基本的"C"语言环境俩者都相关联的字体(和假名).
对Xterminals来说,这些字体由X11字体服务器自动提供.
将工作站作为XTerminals使用在您的工作站比较陈旧,或者工作站的内存等于或少于16兆字节的情况下,如果它们安装了Solaris2.
4或更高版本的软件(或是带Xserver大型修补程序的Solaris2.
3),就可以工作站作为Xterminal使用.
注意:如果遵循以下过程而工作站屏幕上的字体显示不正常,则SolarisCDE可能没有安装在主工作站上.
请使用pkgadd公用程序从一个SolarisCDE1.
0.
x的非随附版本中单独添加SUNWdtft()SolarisCDE字体软件包.
M用选择器来选择主机CDE进行登录1.
退出任何正在运行的窗口系统.
2.
启动选择器.
从控制台的命令行键入下列命令(使用csh):setenvOPENWINHOME/usr/openwin102Solaris公用桌面环境:高级用户和系统管理员指南2002年5月/usr/openwin/bin/X-indirectCDE_login_hostXserver启动,并显示主机的"选择器"窗口.
3.
从"选择器"窗口选择所需的登录主机.
M使用具体的主机CDE登录G键入下面的命令并按回车键:/usr/openwin/bin/X-once-queryCDE_login_hostXserver启动,并显示主机的"登录"屏幕.
使用-once选项会在一次登录/退出会话之后退出服务器.
如果未添加-once选项,"登录"屏幕会在SolarisCDE注销后再次出现.
M使用第一个可用的主机进行登录G键入下面的命令并按回车键:/usr/openwin/bin/X-broadcast该命令会启动Xserver.
在本地子网中,它广播一条XDM(X显示器管理器)登录服务的请求.
如果子网中有任何系统正在运行SolarisCDE登录管理器(或其他任何基于XDM的登录窗口),那么第一个响应的主机会将它的登录窗口放到您的桌面上.
特殊的CDE配置本节讲述特殊的配置.
定制邮件打印CDE邮件程序使用为DTMAIL_FILE数据类型定义的打印操作来打印文件.
它没有使用OpenWindows邮件工具指定的打印正文.
要更改打印特性,必须修改此"打印"操作.
M修改打印操作1.
使用您喜欢的编辑器,创建下面的文件:HomeDirectory/.
dt/types/dtmail.
dt2.
在此文件中输入下面的行:第6章其他配置103##OverridedefaultPrintactionformailboxes#ACTIONPrint{LABELPrintARG_TYPEDTMAIL_FILETYPECOMMANDWINDOW_TYPENO_STDIOEXEC_STRINGsh-c'\dtmailpr-p-f%(File)Arg_1%|mp-m-l|\dtlp-u%(File)Arg_1%;'}注意:dtmailpr是一个打印过滤器,它删除,产生一个无格式文本流.
dtlp是lp的标准CDE接口.
%(File)Arg_1%是正在打印的文件.
3.
修改EXEC_STRING,使其包含需要的打印命令.
4.
重新启动邮件程序.
将日历转换到新的数据格式版本4可扩展数据格式是一种CDE日历支持的新格式.
OpenWindows日历管理器不能读取这种格式.
如果需要在OpenWindows和CDE平台之间来回转换,就不要将日历转换为版本4数据格式.
不过,可以用sdtcm_convert正文来删改日历.
注意:可以通过从日历"帮助"菜单中选择"关于日历"来查看日历的数据版本.

否则,用sdtcm_convert正文将日历转换为版本4数据格式.
有关此文件的详细信息,请参阅sdtcm_convert(1)手册页.
104Solaris公用桌面环境:高级用户和系统管理员指南2002年5月注意:如果安装的只是"最终用户CDE软件包",就没有安装手册页.
若要查看手册页,需要运行pkgadd公用程序来安装它.
从网络上添加AnswerBook软件包安装SolarisCDE时,安装菜单提供安装AnswerBookCDE软件包的选项.
如果选择"是",AnswerBook软件包会被安装到/usr/dt/share/answerbooks/language目录下(language是具体的AnswerBook译本的本地名称).
因为AnswerBook软件包需要109兆字节的硬盘空间,所以您可能不想安装这个软件包.
不过,可以使用以下两个选项:I将AnswerBook软件包安装(或从/net/.
.
.
链接)到/usr/dt/share/answerbooks/language.
I添加AB_CARDCATALOG环境变量到HomeDirectory/.
dtprofile中.
例如,如果网络上有输出的版本,请添加下面的行到HomeDirectory/.
dtprofile:exportAB_CARDCATALOG=/net/hostname/usr/dt/share/answerbooks\/language/ab_cardcatalog从CDE桌面之外设置CDESolarisCDE应用程序所使用的环境变量可以在CDE桌面以外设置.
例如,您可能想登录到远程工作站上,并将CDE应用程序显示到本地工作站上.
请使用CDE公用程序dtsearchpath来设置各种CDEshell环境变量.
对Bourne和Kornshell,请键入下面的命令:eval'/usr/dt/bin/dtsearchpath'对Cshell,请键入下面的命令:eval'/usr/dt/bin/dtsearchpath-c'可以通过设置DISPLAY为原来的本地工作站来遵从此命令,然后远程运行CDE应用程序.
结果显示在本地工作站.
注意:在本例中,Bourne和Kornshell的dtsearchpath语法是在所有运行CDE的平台上都可用的CDE样例执行程序的一部分.
但是,Cshell(-c)选项只在Sun平台上可用.
第6章其他配置105桌面环境文件CDE桌面为OpenWindowsDeskSet应用程序提供了运行时间的环境.
不必对CDE设置做任何特殊的操作,就可以获得这个实时环境.
此环境设置的一部分是由下面的文件提供的:/usr/dt/config/Xsession.
d/0015.
sun.
env如果对于特定的工作站,需要对此环境设置进行添加或从中删减,此文件既可在原处编辑,也可以首先复制到下面的文件位置:/etc/dt/config/Xsession.
d/0015.
sun.
env增加设置的一个实例是,被OpenWindowsDeskSet应用程序使用旧的OpenWindows虚拟键盘的启动.
因为在CDE桌面上,大多数应用程序(和主要的Sun用户)并不使用这个虚拟键盘公用程序,所以它被放置在缺省的启动序列之外,以改进整个桌面的启动性能.
请参阅0015.
sun.
env文件本身的注释,以获取更多有关可选的OpenWindows虚拟键盘(vkdb)启动的信息.
在AppleMacintosh应用程序环境下使用软盘和CD媒体如果已经安装AppleMacintosh应用程序环境(MAE)1.
0版本,并打算通过OpenWindows文件管理器应用程序来使用可装卸的媒体(软盘或CD),则必须编辑/etc/rmmount.
conf文件.
这可以保证MAE正常运行文件管理器的可装卸媒体.
M更改/etc/rmmount.
conf文件1.
键入su,以成为超级用户,然后键入口令.
2.
进入/etc目录.
键入下面的命令并按回车键:#cd/etc3.
用您喜欢的编辑器打开/etc/rmmount.
conf文件.
4.
将#Actions下面的这行移到列表的末尾:actionfloppyaction_macfs.
so例如:#morermmount.
conf#@(#)rmmount.
conf1.
292/09/23SMI##可装卸媒体安装器配置文件106Solaris公用桌面环境:高级用户和系统管理员指南2002年5月##文件系统标识identhsfsident_hsfs.
socdromidentufsident_ufs.
socdromfloppyidentpcfsident_pcfs.
sofloppyidentmacfsident_macfs.
sofloppy#操作actioncdromaction_filemgr.
soactionfloppyaction_filemgr.
soactionfloppyaction_macfs.
so5.
保存并退出.
安装MAE后,它将macfsaction行放入rmmount.
conf文件中.
卸载MAE后,这一行会被删除.
这一更改使您可以在OpenWindows或CDE文件管理器应用程序中使用可移动的媒介,同时在MAE中仍旧使用Macintosh软盘.
不过,这也使得MAE不能读取未格式化的、难识别的、或DOS格式的软盘.
使用这个设置过程时,所有这些软盘都会转到OpenWindows文件管理器应用程序中.
如果要允许MAE访问不可读的、未格式化的或DOS格式的软盘,就必须将actionfloppyactionaction_macfs.
so行放在actionfloppyaction_filemgr.
so行的前面.
第6章其他配置107108Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第7章配置在网络中的桌面桌面专门用于高度网络化的环境.
I第109页"联网桌面概述"I第115页"配置桌面联网的一般步骤"I第115页"为桌面配置基本操作系统联网"I第118页"配置桌面客户和服务器"I第122页"管理应用程序服务"桌面的体系结构使系统管理员能够在整个网络中来分布计算资源.
其中包括:I应用程序I应用程序的数据文件I桌面会话服务(诸如"登录管理器"和"文件管理器"之类的桌面应用程序)I帮助服务(帮助数据文件可以放置在中心帮助服务器上)联网桌面概述操作系统提供了多种联网服务,其中包括分布式文件系统和远程执行.
X服务器增强了联网能力,其中包括对远程显示器及安全服务的访问.
桌面在这些联网特性之上提供了一个用户界面层.
此界面及其下的体系结构的目的在于使网络化系统具有下述特点:I便于使用.
用户不必担心应用程序和数据究竟在网络中的什么位置,可以直接运行应用程序并且访问数据文件.
I便于管理.
桌面提供了应用程序集成工具和联网的查找路径,它们使系统更容易定位远程数据和应用程序.
此外,桌面的文件名映射进程,使得管理包含多服务器的复杂网络更加方便.
109I性能灵活.
虽然桌面的管理特性是为某些特定的通用网络环境而设计的,但该桌面可以适应许多其他定制的网络配置.
联网的桌面服务的类型联网使用户可以访问分布在其他系统中的各种计算服务,例如:I桌面会话及其应用程序—例如,"工作区管理器"和"文件管理器"I其他应用程序I数据文件联网术语用服务器一词来描述向一个或多个其他系统提供计算服务的系统.
当一个系统从服务器获得服务的时候,它就叫做此服务器的客户机.
在一套复杂的网络系统中,一个系统可以使用位于整个网络中的若干服务器所提供的服务.
此外,一个系统可以既是某一类型的服务器(例如,会话服务器),同时又是(例如,应用程序服务器的)客户机.
典型的网络情况从桌面的角度来看,一套典型的网络配置可以包含下面的主要组件的某种组合:显示器—X服务器的运行位置登录/对话服务器—它们运行桌面应用程序(登录管理器、工作区管理器等.
)应用程序服务器—它们运行其他应用程序文件服务器—应用程序使用的数据所在的位置最为通用的网络配置之一包括一些访问应用程序管理器的系统.
图形7–1举例说明了使用应用程序服务器的工作站.
此X服务器和桌面会话是在该工作站上运行的.

110Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形7–1应用程序服务器为桌面会话提供服务网络也经常利用文件服务器来存储大量数据.
这些数据可能被应用程序服务器上的应用程序使用,或者由桌面应用程序(例如,"文件管理器"需要访问数据文件,以便将其在"文件管理器"窗口中显示出来)使用.
第7章配置在网络中的桌面111图形7–2文件服务器为应用程序服务器和会话服务器提供数据X终端运行X服务器,并从另一系统中获得桌面会话服务.
112Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形7–3X终端从会话服务器中获得会话服务其他联网情况桌面很灵活,可以支持更多复杂的网络配置.
除了文件服务器之外,这通常还包括向应用程序服务器提供各种可用的服务.
第7章配置在网络中的桌面113图形7–4桌面应用程序服务器所需的服务可以是分布式的总结—服务器的类型显示器—运行X服务器的系统.
登录和会话服务器—运行桌面会话(如"登录服务器"、"会话服务器"和"窗口服务器"等等)的系统.
应用程序服务器—运行应用程序的系统.
也称为执行主机.
文件服务器—存储应用程序数据文件的系统.
帮助服务器—存储帮助文件的系统.
(操作)数据库服务器—存储含有操作和数据类型定义的文件系统.
图标服务器—存储图标文件的系统.
网络还可能包括其他一些服务器,如口令服务器、邮件服务器、视频服务器等等.

114Solaris公用桌面环境:高级用户和系统管理员指南2002年5月配置桌面联网的一般步骤桌面联网配置一般有三步:1.
配置基本操作系统的网络服务.
这些是由桌面所依赖的操作系统所提供的联网服务.
请参阅第115页"为桌面配置基本操作系统联网".
2.
安装并配置桌面联网软件和服务.
无论正在建立的客户机系统和服务器系统是什么类型,这些服务都是桌面所必需的.
请参阅第118页"配置桌面客户和服务器".
3.
配置服务器和客户机的具体类型.
例如,配置一个应用程序服务器就与配置文件服务器的步骤不同,请参阅第122页"管理应用程序服务".
为桌面配置基本操作系统联网桌面要求下面的基本网络配置:I用户必须在会话服务器和为会话服务器提供桌面服务的各个系统上都有登录帐号.
在所有的客户和服务器系统中,用户必须有相同的用户ID和组ID.
I系统必须能够访问远程文件系统,这些文件系统包含了会话和其他应用程序所使用的数据.
Ilp打印假脱机程序必须配置为访问远程打印机.
I必须配置sendmail以使用电子邮件服务.
I必须设置X授权.
为用户提供登录帐号本节描述桌面联网所需要的登录帐号.
提供登录帐号用户必须有登录帐号在:I所有为桌面提供服务的系统,包含应用程序服务器、文件服务器和提供联网打印机的系统.
第7章配置在网络中的桌面115I用户可能访问的所有会话服务器.
通常,会话服务器是和X终端一起使用.
提供一致的用户和组IDUNIX用户是由登录名和数字式用户ID(UID)来标识的.
在桌面网络中,用户在所有的客户和服务器系统中应有相同的登录名和UID.
通常指定UNIX用户为一个或多个登录组的成员.
每组均有其组名和数字组ID(GID).
在桌面网络中,所有的系统都应有一致的组名和组ID.
有关详细信息,请参阅id(1)或id(1M)的手册页.
配置分布式文件系统的访问桌面利用NFS文件系统来进行系统间的文件共享.
必须在网络中标识所有包含共享文件的文件系统,并确保它们已正确地安装在所有相应的系统中.
一般地,必须提供下面的远程文件访问:I所有桌面客户和服务器系统必须共享用户的起始目录.
这是必要的,因为:I用户的起始目录中包含数据文件,这些数据文件是远程系统中的应用程序所必须访问的.
例如,使用数据文件的应用程序经常利用用户的起始目录作为缺省的数据文件位置.
I用户的起始目录是缺省的dtspcd认证目录.
有关dtspcd的详细信息,请参阅第120页"配置子进程控制守护程序".
I如果用户需要访问不在起始目录中的文件,则这些数据文件必须为所有对此文件进行操作的的桌面客户机和服务器系统所共享.
I桌面安装和配置目录(/usr/dt和/etc/dt)必须为所有桌面客户机和服务器系统所共享,这样,用户所有的应用程序就可以访问同样的桌面配置文件.
提供联网的起始目录若用户只使用一个起始目录,且所有客户和服务器系统均共享此目录,则此桌面网络系统的工作效率最高.
联网的起始目录可以使得用户使用网络中不同的系统而不失去个人的定制和配置.
这是因为用户个人的定制和用以恢复以前会话的信息被存储在用户起始目录的子目录中.

下面的应用还需要一个通用的起始目录:I缺省的X授权机制(请参阅第117页"配置X授权").
I桌面子进程控制守护进程.
此守护程序参与到启动远程应用程序的过程之中,而且必须能写到用户的起始目录中.
116Solaris公用桌面环境:高级用户和系统管理员指南2002年5月文件名一致性应该配置网络,以便用户能够访问存在于所有系统上使用相同的名称的数据文件.
这称作提供文件名一致性,通常是通过创建适当的符号链接来完成的.
例如,可通过创建符号链接到实际目录安装位置的方法来配置网络中所有系统,使每个用户的起始目录为/users/login_name.
配置对远程打印机的访问桌面利用lp打印假脱机程序来访问本地或远程的打印机.
有关配置lp的详细信息,请参阅lpadmin(1M)的手册页.
在试图利用桌面图形界面进行打印之前,应首先测试是否能利用lp命令正确地打印到所有打印机.
确保使用一致的打印设备名.
例如,如果某个特定的打印机在与之直接相连的系统中的设备名为Postscript1,则所有其他远程访问此打印机的系统也都应使用Postscript1的名称来访问.
配置电子邮件桌面邮件程序利用sendmail在系统间传递邮件.
有关如何配置电子邮件连接的详细信息,请参阅sendmail(1M)的手册页.
在试图从桌面发送或接收邮件之前,应当测试一下是否可以用mailx命令来正确地发送和接收邮件.
配置X授权桌面利用缺省的X机制来为访问本地显示器的远程应用程序(X客户)授权.
配置的最简便的方法是为每个用户提供联网的起始目录.
这就保证了能满足下面的要求:I用户必须对文件HomeDirectory/.
Xauthority有读写许可.
I在应用程序服务器上的文件.
Xauthority中必须包含将运行应用程序的显示器"magiccookie".
有关详细信息,请参阅X(1)或xauth(1)的手册页.
第7章配置在网络中的桌面117配置桌面客户和服务器本节讲述桌面特有的网络配置要求—也就是说,这些能力是由桌面提供的,而不是由基本操作系统所提供的.
本节分为两部分:I配置登录和会话服务.
I配置由应用程序及其其数据所要求的服务.
这包括应用程序、数据库、图标、文件及帮助服务器和客户.
配置登录和会话服务登录/会话服务器是个给显示和X服务器提供桌面服务("登录管理器"、"会话管理器"、"文件管理器"、"窗口管理器"等)的系统.
一般地,会话服务器为X终端提供服务.
但是,可以设置网络配置,将会话服务集中在X终端和工作站均可访问的一个或多个服务器上.
"登录管理器"是负责为其他显示器提供登录服务的桌面组件.
用户一旦登录,就为用户启动"会话管理器".
有关配置登录/会话服务器和X终端的信息,请参阅第23页"在网络显示器上显示登录屏幕".
配置其他与应用程序相关的服务本节包括对通用桌面联网的要求:I应用程序服务器I数据库服务器I图标服务器I帮助服务器M配置桌面客户和服务器1.
提供桌面所需的操作系统的网络配置.
请参阅第115页"为桌面配置基本操作系统联网".
2.
安装桌面,或最小文件集.
必须安装:118Solaris公用桌面环境:高级用户和系统管理员指南2002年5月I整个通用桌面环境运行时文件集I或,下面的文件集中的文件:CDE-MIN和CDE-TT注意:安装和文件集可能会因供应商的不同而有差异.
3.
为ToolTalk文件名数据库服务器守护程序rpc.
ttdbserverer配置系统.
安装桌面时,这个操作会自动进行.
有关详细信息,请参阅第121页"配置ToolTalk数据库服务器".
4.
安装和配置子进程控制守护程序(dtspcd).
安装桌面时,这个操作会自动进行.
有关详细信息,请参阅第120页"配置子进程控制守护程序".
5.
安装所需的所有远程数据.
当数据不在使用此数据的应用程序所在的系统上的时候,数据被认为是"远程"的.
例如:I如果应用程序使用了位于文件服务器上的数据,则它必须安装这些文件.

I如果"文件管理器"图标位于图标服务器上,则会话服务器必须装配这些文件.

I如果网络使用帮助服务器来存放桌面帮助文件,则会话服务器和所有应用程序服务器必须安装这些帮助数据.
有关安装点的详细信息,请参见下一节第119页"为远程文件系统配置安装点".
为远程文件系统配置安装点当桌面将文件名从一个系统传输到另一系统时,它必须将这些文件名变成或映射成对目标系统有意义的文件名.
由于在不同的系统中同一文件有可能被装配在不同的位置,所以必须用不同的文件名来访问它们,因此这种映射是必需的.
例如系统sysA中的文件/projects/big可能在sysB中作为/net/sysA/projects/big来访问.
文件名映射的要求为了正确地执行此文件名映射操作,下列之一必须为真:Imount命令用来静态安装文件系统.
这些静态装配的类型一般配置在诸如/etc/checklist、/etc/mnttab、或/etc/filesystems之类的文件中.
为了使文件名映射能在系统之间正确地工作,文件系统的安装必须使用一致的主机名.
如果主机有几个名称(例如,别名,或者此主机有不止一个局域网地址,这些地址的名称各不相同),必须在所有的安装中使用相同的名称和相同的名称形式.
I或者,自动装载程序被用来装载文件系统,装配在缺省的/net装载点.
第7章配置在网络中的桌面119I或者,自动装载程序用来将文件系统装载在/net之外的某个位置,而DTMOUNTPOINT环境变量设置为指示此装载点.
请参见下一节第120页"为DTMOUNTPOINT设置值".
有关自动装载程序的详细信息,请参见automount(1M)的手册页.
M为DTMOUNTPOINT设置值如果下列两个条件均为真,则必须设置DTMOUNTPOINT环境变量:I自动装载程序用来装载文件系统.
I而且,远程文件系统装载在除/net之外的某个位置.
必须为进程设置DTMOUNTPOINT,包括:I在用户登录后会自动启动的用户桌面进程,例如"工作区管理器"(dtwm)和"文件管理器"(dtfile)I由inetd之类的机制启动的诸如rpc.
ttdbserver和dtspcd之类的系统进程I由本地或远程系统所启动的应用程序.
I由用户从shell命令行启动的应用程序为下列的进程设置DTMOUNTPOINT变量:1.
编辑文件/etc/inetd.
conf:a.
找到dtspcd项并添加:-mount_pointmount_pointb.
找到rpc.
ttdbserver项并添加:-mmount_point例如,如果自动装载程序正用于安装点/nfs,则在/etc/inetd.
conf中的项为:dtspcstreamtcpnowaitroot/usr/dt/bin/dtspcd\/usr/dt/bin/dtspcd-mount_point/nfsrpcstreamtcpwaitroot/usr/dt/bin/rpc.
ttdbserver\1000831rpc.
ttdbserver-m/nfs2.
在重新读取/etc/inetd.
conf的系统上执行此进程.
有关详细信息,请参见inetd(1M)的手册页.
3.
使用由用户登录中继承来的值设置DTMOUNTPOINT.
这可通过在/etc/dt/config/Xsession.
d中设置变量的方法来完成.
有关设置环境变量的详细信息,请参阅第44页"设置环境变量".
配置子进程控制守护程序桌面的子进程控制(SPC)服务提供客户/服务器命令的执行.
120Solaris公用桌面环境:高级用户和系统管理员指南2002年5月桌面子进程控制守护程序(dtspcd)用于桌面启动远程应用程序.
它是个接收远程客户执行命令的请求的inet守护程序.
有关如何配置inet守护进程的详细信息,请参阅inetd.
conf(1M)的手册页.
桌面的操作调用库使用SPC服务来调用远程操作.
M配置dtspcdG请确定dtspc是否正确注册到/etc/services和/etc/inetd.
conf中.
请参阅dtspcd(1M)的手册页.
SPC安全对于子进程控制服务的认证是在文件系统验证的基础上进行的.
dtspcd必须能访问所有SPC客户系统均装载的认证目录.
缺省情况下,dtspcd的验证目录就是用户的起始目录.
但可通过设置目录-/etc/inetd.
conf中的auth_dir选项来配置dtspcd,以使用不同的目录.
有关详细信息,请参阅dtspcd(1M)的手册页.
由于SPC认证是在文件系统验证的基础上进行的,所以SPC服务仅仅与分布式文件系统的安全性一样.
如果正在一个您不信任其分布式文件系统的网络中使用桌面的话,您可能想禁用dtspcd.
要禁用dtspcd,需注释出/etc/services中的dtspc项.
为远程执行配置环境变量当桌面利用操作来启动远程系统上的应用程序的时候,用户的环境变量被复制到远程系统上,并被放入相应的应用程序的环境中.
缺省情况下,更改某些环境变量,然后把它们复制到远程系统中.
在环境变量放入应用程序的环境之前,可通过配置操作调用组件和桌面的子进程控制服务来执行附加环境变量的处理.
有关缺省的配置和如何对其进行修改的详细信息,请参阅dtactionle(4)和dtspcdenv(4)的手册页.
配置ToolTalk数据库服务器ToolTalk组件之一是ToolTalk数据库服务器,/usr/dt/bin/rpc.
ttdbserver.
ToolTalk消息服务使用ToolTalk数据库服务器,此服务器还用于文件名映射.
它通常在安装桌面时注册到/etc/inetd.
conf中,因此不需要附加的配置工作.
有关ToolTalk数据库服务器及其配置选项的详细信息,请参阅rpc.
ttdbserver(1M)的手册页.
第7章配置在网络中的桌面121配置ToolTalk消息服务器ToolTalk消息服务器是ttsession.
缺省情况下,它不需任何配置;在登录期间,它由X会话正文启动.
有关ToolTalk消息服务器及其配置选项的详细信息,请参见ttsession的手册页.
配置日历守护程序"日历"应用程序的组件之一是"日历守护程序"rpc.
cmsd.
它通常在安装桌面时注册到/etc/inetd.
conf中,因此不需要附加的配置工作.
有关日历守护程序及其配置选项的详细信息,请参阅rpc.
cmsd(1)的手册页.
管理应用程序服务本节讲述下列各项的具体配置要求:I应用程序服务器及其客户I提供特殊服务的桌面服务器—数据库服务器、图标服务器和帮助服务器还讲述对两个联网的应用程序的特殊配置的联网要求:I远程执行的主机I在文件系统安装之间运行的应用程序.
查找路径环境变量桌面使用一系列环境变量来指定用来查找应用程序的桌面配置文件的查找路径,这些配置文件包括操作和数据类型数据库、帮助文件和图标文件.
有关如何使用查找路径环境变量的详细信息,请参阅第136页"桌面查找路径及其环境变量"或dtenvvar(5)手册页.
配置应用程序服务器及其客户机在标准的应用程序服务器的配置中,应用程序服务器包含与应用程序并联的所有二进制文件和配置文件,包括:I应用程序的可执行文件I标准的应用程序配置文件,诸如app-defaults、消息目录和此应用程序所需的共享库之类.
122Solaris公用桌面环境:高级用户和系统管理员指南2002年5月I桌面配置文件:I操作和数据类型的定义文件I图标图像文件I桌面帮助的数据文件图形7–5标准应用程序服务器的配置M配置应用程序服务器1.
提供桌面所需的操作系统的网络配置.
请参见第115页"为桌面配置基本操作系统联网".
2.
提供服务器所需的通用桌面配置.
请参阅第118页"配置桌面客户和服务器".
3.
安装应用程序.
4.
如果应用程序不能自动注册,则必须执行注册过程.
请参见第5章.
M配置应用程序服务器客户机1.
提供桌面所需的操作系统的网络配置.
请参见第115页"为桌面配置基本操作系统联网".
2.
提供客户机所需的通用桌面配置.
请参见第118页"配置桌面客户和服务器".
3.
在系统范围内或个人范围内将应用程序服务器添加至应用程序查找路径中:全系统—设置并导出/etc/dt/config/Xsession.
d/0010.
dtpaths中的DTSPSYSAPPHOSTS变量第7章配置在网络中的桌面123个人—设置并导出HomeDirectory/.
dtprole中的DTSPUSERAPPHOSTS变量例如,如下所示的在/etc/dt/config/Xsession.
d/0010.
dtpaths中的行将在应用程序查找路径中添加带主机名的系统SysAAA和SysBBB:exportDTSPSYSAPPHOSTS=SysAAA:,SysBBB:有关设置应用程序查找路径的详细信息,请参见:I第137页"应用程序查找路径"I第136页"设置查找路径的值"配置数据库、图标和帮助服务通常,与应用程序相关的操作和数据类型定义、图标和帮助数据文件是与应用程序安装在同一系统上的.
例如,可考虑以下典型的帮助数据文件的配置:I"文件管理器"的帮助文件通常是在会话服务器之上的.
因为帮助的查找路径会自动查找会话服务器上的正确位置,所以桌面能找到这些帮助文件.
I其他应用程序的帮助文件通常与其相应的应用程序位于同一应用程序服务器上.
因为修改应用程序的"查找路径"过程会自动修改帮助查找路径,所以会话服务器能找到这些帮助文件.
有时可能需要使数据库(操作和数据类型)、帮助或图标数据放置在网络中的其他位置.
例如,如果网络中使用了多个会话服务器,就有可能要创建帮助服务器,在此帮助服务器中存储桌面应用程序(文件管理器、式样管理器等等)的所有帮助数据文件.
由于帮助文件不需在每个会话服务器上均复制一份,因而节省了磁盘空间.

M创建数据库、帮助或图标服务器1.
提供桌面所需的操作系统的网络配置.
请参见第115页"为桌面配置基本操作系统联网".
2.
提供客户机所需的通用桌面配置.
请参见第118页"配置桌面客户和服务器".
3.
安装数据库、帮助或图标文件.
这些文件可以处于系统的任何地方.
但是,当为系统指定了应用程序服务器后,会自动查找下列目录,所以使用下列位置会更方便.
I数据库文件:/etc/dt/appconfig/types/languageI帮助文件:/etc/dt/appconfig/help/languageI图标文件:/etc/dt/appconfig/icons/language如果正在设置数据库服务器,则必须写一些操作来指定它们的EXEC_STRING命令将在何处运行.
请参见第125页"指定远程执行主机".
124Solaris公用桌面环境:高级用户和系统管理员指南2002年5月M配置会话服务器以找到数据库、图标或帮助服务器1.
提供桌面所需的操作系统的网络配置.
请参见第115页"为桌面配置基本操作系统联网".
2.
提供客户机所需的通用桌面配置.
请参见第118页"配置桌面客户和服务器".
3.
将数据库、图标或帮助服务器添加到适当的查找路径中.
I如果将数据文件放置在第124页"创建数据库、帮助或图标服务器"的步骤3中指定的位置,您可以修改应用程序查找路径.
I如果将数据文件放置在其他位置,就必须修改特定的查找路径.
例如,如果将帮助文件放置在系统SysCCC的目录/etc/dt/help下,则必须将下行添加到/etc/dt/cong/Xsession.
d/0010.
dtpaths中:exportDTSPSYSHELP=/net/SysCCC/etc/dt/help有关设置查找路径的详细信息,请参见:I第140页"数据库(操作/数据类型)查找路径"I第142页"图标查找路径"I第144页"帮助查找路径"I第136页"设置查找路径的值"特殊的、联网应用程序的配置本节讲述如何配置系统以运行应用程序:I不是在包含操作的系统上—而是在远程执行主机上I在本地跨文件系统安装指定远程执行主机在典型的应用程序服务器的配置中,操作定义与应用程序可执行文件同在一个系统中.

但也可以写一些操作来执行其他系统上的命令.
在此配置下,包含应用程序的系统被称为执行主机.
操作定义可以定位在会话服务器上,也可以在为会话服务器提供操作和数据类型服务的系统上—被称为数据库服务器或数据库主机.
操作的定义使用EXEC_HOST字段来指定其EXEC_STRING命令应在何处运行.
例如,下面的操作定义指定了xload客户机程序运行在主机名为SysDDD的系统上:ActionXloadSysDDD{TYPECOMMAND第7章配置在网络中的桌面125EXEC_HOSTSysDDDEXEC_STRING/usr/bin/X11/xload-labelSysDDD}如果EXEC_HOST字段中指定了不止一个主机名,则桌面按顺序在每个主机上执行EXEC_STRING,直至找到能执行此操作的主机.
例如,下面的EXEC_HOST字段指定了操作应首先在SysDDD系统上尝试运行EXEC_STRING,如此运行失败,则尝试SysEEE.
EXEC_HOSTSysDDD,SYSEEE如果不为某个操作而设置EXEC_HOST字段不是为操作而设置,便使用其缺省值%DatabaseHost%.
值%DatabaseHost%是从数据库的查找路径中得到的.
例如,假设数据库的查找路径因为向/etc/dt/config/Xsession.
d/0010.
dtpaths中添加下行内容而更改:DTSPSYSDATABASEHOSTS=SysAAA:,/net/SysBBB/etc/dt/appconfig/types/CSysAAA是由主机限定语法—SysAAA:指定的.
发现使用查找路径中的此元素的某个操作定义会将数据库主机设置为SysAAA.
但是,发现使用查找路径中的/net/SysBBB…这一部分的操作会将数据库主机设置为本地系统,因为语法不包括主机限定符.

M配置远程执行主机1.
提供桌面所需的操作系统的网络配置.
请参见第115页"为桌面配置基本操作系统联网".
2.
提供服务器所需的通用桌面配置.
请参见第118页"配置桌面客户和服务器".
3.
确保应用程序已经为本地执行而正确安装和配置.
M配置包含操作定义的系统1.
提供桌面所需的操作系统的网络配置.
请参见第115页"为桌面配置基本操作系统联网".
2.
提供服务器所需的通用桌面配置.
请参见第118页"配置桌面客户和服务器".
3.
创建并安装操作定义和应用程序组.
请参见第188页"创建在远程系统上运行应用程序的操作"和第59页"创建和管理通用应用程序组".
126Solaris公用桌面环境:高级用户和系统管理员指南2002年5月M配置会话服务器1.
提供桌面所需的操作系统的网络配置.
请参见第115页"为桌面配置基本操作系统联网".
2.
提供客户机所需的通用桌面配置.
请参见第118页"配置桌面客户和服务器".
3.
修改操作查找路径,使其包含数据库主机.
请参见第140页"数据库(操作/数据类型)查找路径".
4.
修改应用程序查找路径,使其包含执行主机.
请参见第137页"应用程序查找路径".
在本地运行应用程序标准的应用程序服务器配置是在应用程序服务器上运行应用程序.
但有时将应用程序安装在远程系统上而在本地的会话服务器上执行是可取的.
图形7–6通过安装点执行M配置应用程序服务器不需要特殊的配置.
M配置会话服务器G修改应用程序查找路径.
利用到应用程序的本地绝对路径.
例如,可利用下面的变量定义来找到在系统sysAAA上注册的某一应用程序:DTSPSYSAPPS=/net/SysAAA/etc/dt/appconfig/appmanager/C第7章配置在网络中的桌面127会话服务器必须能访问诸如app-defaults、消息目录和共享库之类的应用程序配置文件.
128Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第8章从桌面打印的配置和管理桌面用户打印文件可以有几种不同的方法.
它们分为两大类:从桌面上进行打印和从应用程序中打印.
桌面打印的方法包括:I在"文件管理器"中选择文件,然后从"已选择的"菜单中或图标的弹出式菜单中选择"打印"I从"文件管理器"中拖动文件到"前面板"的"打印机"控制上或"个人打印机"子面板中I从"文件管理器"中拖动文件到"打印管理器"主窗口中的打印机上如果要从应用程序中打印,可使用"打印"命令,该命令通常可从应用程序窗口的菜单或其他控件中获得.
I第129页"增加和删除打印机"I第130页"打印机图标图像"I第132页"配置缺省打印机"I第133页"打印概念"增加和删除打印机本节讲述了从桌面增加和删除打印机的过程.
M向桌面上增加打印机1.
增加打印机到系统配置中.
根据操作系统的系统管理文档中的指示进行操作.
2.
运行命令:129envLANG=language/usr/dt/bin/dtprintinfo-populate3.
重新启动"打印管理器",或者在"应用程序管理器"的Desktop_Tools应用程序组中双击"重新装入操作".
确认打印机已经出现.
4.
向用户发送邮件,通知他们重新启动"打印管理器"或运行"重新装入操作".

"打印管理器"在每次调用时都会读取系统打印机配置列表.
如果检测到新的打印机,它会自动创建新的桌面打印机操作并为该打印机创建图标.
无须做任其他何事情打印机就可以显示在桌面上.
M从桌面上删除打印机1.
从系统配置中删除打印机.
根据操作系统的系统管理文档中的指示进行操作.
2.
重新启动"打印管理器",或者在"应用程序管理器"的Desktop_Tools应用程序组中双击"重新装入操作".
确认打印机已经去除.
3.
向用户发送邮件,通知他们重新启动"打印管理器"或运行"重新装入操作".

"打印管理器"在每次调用时都会读取系统打印机配置列表.
如果它发现打印机已经从列表中删除,它会自动从"打印管理器"和"文件管理器"中删除该打印机的操作及其图标.

无须做任何其他事情就可以从桌面上删除打印机.
注意:"打印管理器"无法从"前面板"上删除打印机.
所以,无论何时从配置中删除打印机,都应该向系统中的所有用户发送邮件,告诉他们从"前面板"中删除该打印机的图标.
修改作业更新间隔要更改"打印管理器"中显示信息的更新频率,可修改作业更新间隔.
在缺省情况下,"打印管理器"每隔三十秒查询一次打印机有关打印作业的信息.
使用"设置选项"对话框中的"更新间隔"滑块可更改"打印管理器"查询打印机的频率,而该对话框由选择"视图"菜单中的"设置选项"显示.
打印机图标图像在增加打印机时,系统自动为增加的打印机指定了缺省的打印机图标.
如果要为该打印机指定其他的图标,可将该图标文件放到/etc/dt/appconfig/icons/language目录中,或放到图标查找路径的其他目录中.
这样,用户就可以选择该图标替换打印机的缺省图标.
130Solaris公用桌面环境:高级用户和系统管理员指南2002年5月必须创建一整套图标(大号、中号、小号图标),否则它们将不会出现在"打印管理器"的图标选择程序中.
有关图标查找路径的详细信息,请参见第142页"图标查找路径".
图标文件名和大小图标文件命名要求是:base_name.
size.
type其中:size—l(大号)、m(中号)、t(小号).
有关图标大小的详细内容,请参见第210页"图标大小惯例".
type—pm(彩色像素图)、bm(位图).
例如,彩色打印机的中号和小号像素图图标的图标文件名可能会是ColorPrinter.
m.
pm和ColorPrinter.
t.
pm.
有关创建图标的详细信息,请参见第14章.
M全局更改打印机的图标、打印机的标号或打印机的描述应当一增加打印机在用户使用"打印管理器"修改打印机属性前,就尽快更改全局打印机特性.
因为一旦用户用"打印管理器"修改了打印机属性,那么他们将看不到您做的更改.
用期望的信息为图标、打印机标号或描述编辑/etc/dt/appcong/types/language/printer_queue_name.
dt文件:1.
在ICON字段,更新basename为新图标的基本名称.
2.
在LABEL字段,更新labelname为打印机的新标记.
3.
更新在DESCRIPTION字段中的文本.
这是用于放置打印机位置、打印机型号和打印机联系人的好地方.
要增加的内容不只一行,可在行尾处放置\.
例如:DESCRIPTIONThisisaPostScriptPrinterinBuilding1\Room123.
Call555-5555forproblems.
第8章从桌面打印的配置和管理131配置缺省打印机用户执行下面的操作时访问缺省打印机:I拉放对象到"前面板"的"打印机"控制上I从"文件管理器"中选择目标,然而从"已选择的"菜单中或图标的弹出式菜单中选择"打印"I从使用缺省打印机的应用程序中打印M更改缺省的打印目标为所有用户更改缺省打印机:1.
打开/etc/dt/config/Xsession.
d/0010.
dtpaths文件.
如果/etc/dt/config/Xsession.
d/0010.
dtpaths文件不存在,那么从/usr/dt/config/Xsession.
d/0010.
dtpaths处复制它.
2.
在LPDEST=printer行中,更新printer为新的缺省打印机目标.
如果这行不存在,那么增加LPDEST=printer行,其中printer是所希望的缺省打印机的名称.
3.
用户需要注销并重新登录.
要为单个用户更改缺省打印机,该用户应该:G从"个人打印机"子面板中将另一个打印机复制到"前面板"中.
如果要指定其他打印机作为缺省打印机:1.
转至起始文件夹,并打开.
dtprofile文件.
2.
增加或编辑用于设置LPDEST环境变量数值的行:LPDEST=printer_device;exportLPDEST如果正在使用csh,语法为:setenvLPDESTprinter_device例如,下面一行将更改缺省打印机为设备名为laser3d的打印机.
LPDEST=laser3d;exportLPDEST如果正在使用csh,语法为:setenvLPDESTlaser3d132Solaris公用桌面环境:高级用户和系统管理员指南2002年5月打印概念由拉放文件到打印机控制上,启动打印请求时,系统进行如下操作:1.
系统查找拉放对象定义的数据类型数据库.
2.
如果对该数据类型(由打印操作中的ARG_TYPE字段指定)有唯一的打印操作,那么使用该打印操作;否则,使用缺省打印操作(dtlp).
例如,如果文件是PostScript文件,那么系统使用"PostScript文件"的"打印"操作.
(该操作在/usr/dt/appconfig/types/language/dt.
dt中定义.
)如果对该数据类型使用"创建操作"工具,那么输入的打印命令就是用于打印该数据类型文件的唯一打印操作.

3.
使用标准UNIXlp打印子系统,将文件发送到打印机.
第8章从桌面打印的配置和管理133134Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第9章桌面查找路径桌面利用查找路径来定位应用程序和与它们相关联的桌面文件.
I第136页"桌面查找路径及其环境变量"I第136页"设置查找路径的值"I第137页"应用程序查找路径"I第140页"数据库(操作/数据类型)查找路径"I第142页"图标查找路径"I第144页"帮助查找路径"I第145页"本地化的查找路径"桌面提供四种查找路径,如表9–1中所述.
表9–1桌面查找路径查找路径描述应用程序用于定位应用程序.
当用户登录时,"应用程序管理器"使用应用程序查找路径来动态地总装其顶层.
数据库用于指定操作和数据类型定义文件(*.
dt文件)与"前面板文件"(*.
fp文件)两者的附加位置.
图标用于指定图标的附加位置.
帮助数据用于指定桌面帮助数据的附加位置.
查找路径可以包含本地和远程目录.
因此,查找路径在桌面的网络体系结构中扮演一个重要的角色.
例如,正因为在应用程序查找路径中列出了应用程序服务器,才使系统可以在那个应用程序服务器上查到应用程序.
当查找路径包含远程位置时,必须配置远程文件访问该位置.
有关详细信息,请参阅第116页"配置分布式文件系统的访问".
135桌面查找路径及其环境变量在登录时,由桌面公用程序dtsearchpath创建桌面查找路径.
dtsearchpath公用程序利用环境变量与内置位置的组合来创建查找路径.
dtsearchpath读取的环境变量被称作输入变量.
这些是由系统管理员和最终用户设置的变量.
输入变量使用命名惯例DTSP*.
在登录运行dtsearchpath时,它组合为这些变量指定的值,加入内置位置,并创建输出变量的值.
对应每个查找路径有一个输出变量.
表9–2桌面查找路径环境变量查找路径为:输出环境变量系统范围输入变量个人输入变量应用程序DTAPPSEARCHPATHDTSPSYSAPPHOSTSDTSPUSERAPPHOSTS数据库1DTDATABASESEARCHPATHDTSPSYSDATABASEHOSTSDTSPUSERDATABASEHOSTS图标XMICONSEARCHPATH,XMICONBMSEARCHPATHDTSPSYSICONDTSPUSERICON帮助数据DTHELPSEARCHPATHDTSPSYSHELPDTSPUSERHELP1Actions,datatypes,andFrontPaneldenitions组件使用输出变量的值.
例如,"应用程序管理器"使用应用程序查找路径的值(DTAPPSEARCHPATH)来定位应用程序组.
设置查找路径的值可以在系统或个人范围内修改查找路径.
通过设置用于系统范围或个人输入变量的值来完成修改.
所作的任何修改将被添加到内置的查找路径位置中.
M查看查找路径的当前值(输出变量)G使用dtsearchpath命令来显示查找路径的当前值:I要获得当前(登录)用户的值,请键入命令:dtsearchpath-vI要获得不同用户的值,请键入命令:dtsearchpath-uuser136Solaris公用桌面环境:高级用户和系统管理员指南2002年5月查找路径值包含这些变量:%H—在DTHELPSEARCHPATH中使用.
帮助的卷名.
%B—在XMICONSEARCHPATH中使用.
图标文件的基本名称.
%M—在XMICONSEARCHPATH中使用的图标文件的大小(.
l、.
m、.
s、.
t).
%L—LANG环境变量的值.
M对查找路径作个人修改1.
打开HomeDirectory/.
dtprofile用于编辑.
2.
增加或编辑定义和导出个人输入变量的一行.
例如,下面一行向用户的个人应用程序查找路径增加位置:exportDTSPUSERAPPHOSTS=/projects1/editors3.
要使更改生效,注销并重新登录.
M对查找路径作系统范围修改1.
以超级用户登录.
2.
如果文件/etc/dt/config/Xsession.
d/0010.
dtpaths不存在,就通过复制/usr/dt/config/Xsession.
d/0010.
dtpaths来创建它.
3.
打开/etc/dt/config/Xsession.
d/0010.
paths,用于编辑.
添加或编辑定义和导出系统范围输入变量的一行.
例如,下面一行向系统范围的帮助查找路径中增加位置:exportDTSPSYSHELP=/applications/helpdata4.
通知系统中的所有用户,他们必须注销并重新登录,才能使更改生效.
应用程序查找路径应用程序查找路径是主查找路径,桌面用它来定位在本地系统和遍及整个网络的应用程序服务器上的应用程序.
第9章桌面查找路径137向应用程序查找路径增加位置时,其他查找路径(数据库、图标和帮助)就自动地更新,以反映该数据的相应位置;因此,应用程序查找路径为应用程序及其桌面配置文件提供了相对简便的管理方式.
请参见第139页"应用程序查找路径如何影响数据库、图标和帮助的查找路径".
缺省的应用程序查找路径缺省应用程序查找路径包含个人的、系统范围的和内置的位置.
缺省的language是C.
个人位置—HomeDirectory/.
dt/appmanager系统范围位置—/etc/dt/appconfig/appmanager/language内置位置—/usr/dt/appconfig/appmanager/language应用程序查找路径环境变量应用程序查找路径由内置位置和下面的输入变量组合而成:DTSPSYSAPPHOSTS—系统范围应用程序查找路径输入变量DTSPUSERAPPHOSTS—个人应用程序查找路径输入变量组合查找路径由输出变量DTAPPSEARCHPATH来指定.
应用程序查找路径输入变量的语法变量DTSPSYSAPPHOSTS和DTSPUSERAPPHOSTS的语法是:VARIABLE=location[,location.
.
.
]其中,location具有此语法的位置:/path—指定本地(会话服务器)系统上的目录.
使用此语法来添加本地目录.
hostname:—指定在系统hostname上的系统范围目录/etc/dt/appconfig/appmanager/language.
使用此语法来添加应用程序服务器.
hostname:/path—指定在远程系统hostname上的一个目录.
hostname:—本地系统范围位置.
此关键字用来改变本地系统范围位置的优先级.
请参阅第139页"更改系统范围本地位置的优先级".
如何组合应用程序查找路径的值通过组合下面按优先级顺序列出的位置,来创建应用程序查找路径的值(DTAPPSEARCHPATH):138Solaris公用桌面环境:高级用户和系统管理员指南2002年5月I使用DTSPUSERAPPHOSTS变量指定的位置I缺省个人位置:HomeDirectory/.
dt/appmanagerI缺省位置:/etc/dt/appconfig/appmanager/languageI使用DTSPSYSAPPHOSTS变量指定的位置I/usr/dt/appconfig/appmanager/language语法:hostname:扩充以指定在系统hostname上的/etc/dt/appconfig/appmanager目录.
更改系统范围本地位置的优先级缺省情况下,本地的系统范围位置(/etc/dt/appconfig/appmanager/language)具有高于远程位置的优先级.
因此,本地应用程序组具有高于同名的远程组的优先级.
例如,如果本地和远程系统都有"打印机"应用程序组(/etc/dt/appconfig/appmanager/language/Printers),这时要用本地组.
应用程序查找路径输入变量提供一种语法,用于指定本地系统范围应用程序组的优先级:localhost:例如,假设系统必须访问应用程序服务器SysA、SysB和SysC,且想要在SysB上的系统范围应用程序组具有高于同名的任何本地组的优先级.
下面的DTSPSYSAPPHOSTS的值创建此性能:DTSPSYSAPPHOSTS=SysB:,localhost:,SysA:,SysC:应用程序查找路径如何影响数据库、图标和帮助的查找路径对应用程序查找路径的补充会自动将相应的位置添加到数据库、图标和帮助的查找路径.
这样,只要设置应用程序查找路径输入变量就能将应用程序服务器添加到查找路径.
例如,如果设置DTSPSYSAPPHOSTS如下:exportDTSPSYSAPPHOSTS=servera:则查找路径受影响,如表9–3所示.
第9章桌面查找路径139表9–3受影响的查找路径查找路径增加到查找路径的目录应用程序servera:/etc/dt/appconfig/appmanager/language数据库servera:/etc/dt/appconfig/types/language图标servera:/etc/dt/appconfig/icons/language帮助servera:/etc/dt/appconfig/help/language同样地,如果设置DTSPSYSAPPHOSTS如下:exportDTSPSYSAPPHOSTS=/projects1/apps则查找路径受影响,如表9–4所示.
表9–4受影响的查找路径查找路径增加到查找路径的目录应用程序/projects1/apps/appmanager/language数据库/projects1/apps/types/language图标/projects1/apps/icons/language帮助/projects1/apps/help/language数据库(操作/数据类型)查找路径数据库查找路径指导桌面来搜索指定的位置,以便包含下列内容的文件:I操作和数据类型定义(*.
dt文件)I"前面板"定义(*.
fp文件).
当创建数据库服务器,或为数据库文件添加本地位置时,可能需要修改数据库的查找路径.
缺省的数据库查找路径缺省数据库查找路径包含个人的、系统范围的和内置的位置.
缺省的language是C.
个人位置—HomeDirectory/.
dt/types系统范围位置—/etc/dt/appconfig/types/language140Solaris公用桌面环境:高级用户和系统管理员指南2002年5月内置位置—/usr/dt/appconfig/types/language应用程序查找路径如何影响数据库查找路径向应用程序查找路径添加位置时,相应的数据库子目录会自动地增加到数据库查找路径中(请参见第139页"应用程序查找路径如何影响数据库、图标和帮助的查找路径").
例如,如果应用程序服务器hosta:被添加到应用程序查找路径,那么目录hosta:/etc/dt/appconfig/types/language就自动地添加到数据库查找路径.
数据库查找路径环境变量数据库查找路径由内置位置和下面的输入变量组合而成:DTSPSYSDATABASEHOSTS—系统范围数据库查找路径输入变量DTSPUSERDATABASEHOSTS—个人数据库查找路径输入变量使用这些输入变量来指定在应用程序查找路径之外的位置.
已组合的数据库查找路径是由输出变量DTDATABASESEARCHPATH来指定.
数据库查找路径输入变量的语法变量DTSPSYSDATABASEHOSTS和DTSPUSERDATABASEHOSTS的语法是:VARIABLE=location[,location.
.
.
]其中,location可以有语法:/path—指定本地(会话服务器)系统上的目录.
使用此语法来添加本地目录.
hostname:—指定在系统hostname上的系统范围目录/etc/dt/appconfig/types/language.
hostname:/path—指定远程系统hostname的目录.
如何组合数据库查找路径数据库查找路径的值(DTDATABASESEARCHPATH)是通过组合下面的按优先级顺序列出的位置来创建的:I使用DTSPUSERDATABASEHOSTS变量指定的位置第9章桌面查找路径141I由DTSPUSERAPPHOSTS变量导出的位置I缺省个人位置:HomeDirectory/.
dt/typesI缺省位置:/etc/dt/appconfig/types/languageI使用DTSPSYSDATABASEHOSTS变量I由DTSPSYSAPPHOSTS变量导出的位置I/usr/dt/appconfig/types/language语法:hostname:扩充以指定在系统hostname上的/etc/dt/appconfig/appmanager目录.
图标查找路径图标查找路径指导桌面来搜索指定文件位置,这些文件包含桌面所使用的位图和像素图影象文件.
缺省的图标查找路径缺省的图标查找路径包含个人的、系统范围的和内置的位置.
缺省的language是C.
个人位置—HomeDirectory/.
dt/icons系统范围位置—/etc/dt/appconfig/icons/language内置位置—/usr/dt/appconfig/icons/language应用程序查找路径如何影响图标查找路径向应用程序查找路径增加位置时,相应的图标子目录将自动地增加到图标查找路径(请参见第139页"应用程序查找路径如何影响数据库、图标和帮助的查找路径")中.
例如,如果应用程序服务器hosta:被增加应用程序查找路径,那么目录hosta:/etc/dt/appconfig/icons/language将自动地增加到图标查找路径.
图标查找路径环境变量数据库查找路径由内置位置和下面的输入变量组合而成:DTSPSYSICON—系统范围图标查找路径输入变量142Solaris公用桌面环境:高级用户和系统管理员指南2002年5月DTSPUSERICON—个人图标查找路径输入变量使用这些输入变量来指定在应用程序查找路径之外的位置.
已组合的数据库查找路径由两个输出变量来指定:XMICONSEARCHPATH—用于彩色显示XMICONBMSEARCHPATH—用于单色显示图标查找路径输入变量的语法变量DTSPSYSICON和DTSPUSERICON的语法是:VARIABLE=location[,location.
.
.
]其中,location可以有语法:/path—指定本地(会话服务器)系统上的目录.
使用此语法来添加本地目录.
要指定在另一系统上的位置,请使用它的网络文件名—例如,/nfs/servera/projects/icons.
如何组合图标查找路径图标查找路径的值(XMICONSEARCHPATH和XMICONBMSEARCHPATH)是通过组合下面的按优先级顺序列出的位置而创建的:I使用DTSPUSERICON变量指定的位置I由DTSPUSERAPPHOSTS变量导出的位置I缺省个人位置:HomeDirectory/.
dt/iconsI缺省位置:/etc/dt/appconfig/icons/languageI使用DTSPSYSICON变量指定的位置I由DTSPSYSAPPHOSTS变量导出的位置I/usr/dt/appconfig/icons/language彩色和单色的查找路径只在赋予像素图和位图的优先级方面不同.
XMICONSEARCHPATH变量将像素图列在位图之前;XMICONBMSEARCPATH将位图列在像素图之前.
第9章桌面查找路径143帮助查找路径帮助查找路径指导桌面来搜索指定的文件位置,这些文件包含将要在系统中注册的帮助信息.
缺省帮助查找路径缺省的帮助查找路径包含个人的、系统范围的和内置的位置.
缺省的language是C.
个人位置—HomeDirectory/.
dt/help系统范围位置—/etc/dt/appconfig/help/language内置位置—/usr/dt/appconfig/help/language应用程序查找路径如何影响帮助查找路径当向应用程序查找路径添加位置时,相应的帮助子目录将自动地添加到帮助查找路径(请参见第139页"应用程序查找路径如何影响数据库、图标和帮助的查找路径").
例如,如果应用程序服务器hosta:被添加到应用程序查找路径,那么目录hosta:/etc/dt/appconfig/help/language将自动添加到帮助查找路径中.
帮助查找路径环境变量帮助查找路径是由内置的位置和下面的输入变量组合而成的:DTSPSYSHELP—系统范围的帮助查找路径输入变量DTSPUSERHELP—个人帮助查找路径输入变量使用这些输入变量来指定在应用程序查找路径之外的位置.
已组合的数据库查找路径是由输出变量DTHELPSEARCHPATH指定的.
帮助查找路径输入变量的语法变量DTSPSYSHELP和DTSPUSERHELP的语法是:VARIABLE=location[,location.
.
.
]其中,location可以有语法:144Solaris公用桌面环境:高级用户和系统管理员指南2002年5月/path—指定本地(会话服务器)系统上的目录.
使用此语法来添加本地目录.
要指定在另一系统上的位置,请使用它的网络文件名—例如,/nfs/servera/projects/help.
如何组合帮助查找路径帮助查找路径的值(DTHELPSEARCHPATH)是通过组合下面的按优先级顺序列出的位置而创建的:I使用DTSPUSERHELP变量指定的位置I由DTSPUSERAPPHOSTS变量导出的位置I缺省个人位置:HomeDirectory/.
dt/helpI缺省目录:/etc/dt/appconfig/help/languageI使用DTSPSYSHELP变量指定的位置I由DTSPSYSAPPHOSTS变量导出的位置I/usr/dt/appconfig/help/language本地化的查找路径输出变量包含本地化位置和缺省(C)位置的项.
例如,缺省的应用程序查找路径是:HomeDirectory/.
dt/appmanager/etc/dt/appconfig/appmanager/language/etc/dt/appconfig/appmanager/C/usr/dt/appconfig/appmanager/language/usr/dt/appconfig/appmanager/C其中,language是LANG环境变量的值.
对于每个范围(系统范围的和内置的),指定语言的位置具有高于缺省位置的优先级.
第9章桌面查找路径145146Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第10章操作与数据类型的介绍操作和数据类型是将应用程序集成进桌面的功能强大的组成部分.
它们提供了为启动应用程序和操作其数据文件而创建用户接口的一种方法.
I第147页"操作的介绍"I第152页"数据类型的介绍"本章介绍了操作和数据类型的概念.
它描述了:I为什么要为应用程序创建操作和数据类型.
I操作和数据类型之间如何相互关联.
I操作和数据类型与桌面打印之间如何相互关联.
创建操作和数据类型的过程和规则在本手册的三个章节中进行介绍.
I第11章解释了如何使用桌面应用程序"创建操作"来创建各种操作和数据类型.

可以使用"创建操作"来为大多数应用程序创建操作和数据类型而不必学习它们定义的语法规则.
I第12章并第13章解释了如何通过创建和编辑配置文件来手动创建操作和数据类型.
若要使用"创建操作"所不支持的高级特性,则必须手动创建操作和数据类型.

操作的介绍操作是所写的指令,用于使桌面任务自动化,如运行应用程序和打开数据文件.
操作与应用程序宏或编程函数十分相似.
每个操作都具有用于运行该操作的名称.

一旦定义了操作,就可以用它对桌面用户接口进行适配,使任务更易于完成.
桌面提供了将用户接口组件,例如图标、"前面板"控制和菜单项,附加到操作的能力.

147例如,"应用程序管理器"中的Desktop_Tools应用程序组包含了启动各种公用程序的图标.
图形10–1Desktop_Tools应用程序组中的操作图标双击其中的每个图标都运行一个操作.
例如,当用户双击标记为"Xwd显示"的图标时,该操作的一部分定义将运行.
该操作在配置文件/usr/dt/appconfig/types/language/xclients.
dt中定义:ACTIONXwud{LABELXwdDisplayTYPECOMMANDEXEC_STRING/usr/bin/X11/xwud-noclick-in\%(File)Arg_1"XwdFileToDisplay:"%.
.
.
}当用户双击图标时,将运行该操作的EXEC_STRING中的命令.
"前面板"也使用操作.
例如,下面是"个人应用程序"子面板中标记为"终端"的控制的一部分定义.
该控制在配置文件/usr/dt/appconfig/types/language/dtwm.
fp中定义:CONTROLTerm{ICONFptermLABELTerminalPUSH_ACTIONDtterm.
.
.
}PUSH_ACTION字段指定用户单击控制时所要运行的操作—这种情况下,是名为Dtterm的操作.
148Solaris公用桌面环境:高级用户和系统管理员指南2002年5月操作的另一常见用法是在菜单中.
数据文件通常在"文件管理器"的"选中"菜单中具有操作.
例如,XWD文件(以.
xwd或.
wd文件名结尾的文件)具有"打开"操作,该操作在运行Xwud操作时显示屏幕图像.
图形10–2数据类型XWD文件的打开操作在"选中"菜单中的操作是在XWD文件的数据类型定义里指定的.
该定义位于配置文件/usr/dt/appconfig/types/language/xclients.
dt中.
DATA_ATTRIBUTESXWD{ACTIONSOpen,PrintICONDtxwd.
.
.
}XWD数据类型,以及与其相关联的"打开"和"打印"操作,在第153页"数据类型如何将数据文件连接到操作"中解释.
操作如何创建应用程序的图标考虑在Desktop_Tools应用程序组中的"Xwd显示"图标.
双击此图标运行X客户机程序xwud.
但是,此图标并不直接表示实际的xwud可执行的/usr/bin/X11/xwud.
标记为"Xwd显示"的图标出现在应用程序组中,这是因为有一个名为Xwud(请参见图形10–3)的文件在该目录中.
此文件表示一个潜在其名称与文件相同—Xwud的操作.
在操作定义中,操作的名称是在关键字ACTION之后的名称:ACTIONXwud{LABELXwdDisplay第10章操作与数据类型的介绍149TYPECOMMANDWINDOW_TYPENO_STDIOEXEC_STRING/usr/bin/X11/xwud-noclick-in\%(File)Arg_1"要显示的文件Xwd:"%DESCRIPTIONTheXwdDisplay(Xwud)XwdDisplayaction\displaysanxwdfilethatwascreatedusingthe\XwdCapture(Xwd)action.
Ituses\thexwudcommand.
}此文件称为操作文件,因为它表示一个操作.
当文件是可执行文件且与操作具有相同名称时就是操作文件.
其在"应用程序管理器"(或"文件管理器")中的图标称为操作图标,或应用程序图标,因为双击它可以启动应用程序.
图形10–3应用程序(操作)图标代表操作文件当"应用程序管理器"检测到可执行文件时,它在操作数据库中查找看是否有任何操作,其名称与文件的名称匹配.
如果找到匹配的,"应用程序管理器"就知道此文件是个操作文件.
操作文件的内容是没关系;操作文件通常包含对其桌面功能加以描述的注释.

注意:操作文件与操作定义文件是不相同的.
操作文件是一个与操作具有相同名称的文件.
它用于在"文件管理器"或"应用程序管理器"中创建应用程序图标.
操作定义文件是以name.
dt命名的文件,它包含了操作的定义.
一旦桌面确定文件是操作文件,潜在的操作定义就用来定义操作文件的外观和性能.

IEXEC_STRING字段指定应用程序图标的性能.
如果是"Xwd显示"图标,EXEC_STRING指定操作图标用特定命令行变量运行xwudX客户机.
ILABEL字段指定该应用程序图标的标号.
IDESCRIPTION字段描述用户请求"针对项"帮助时显示的文本.
150Solaris公用桌面环境:高级用户和系统管理员指南2002年5月I应用程序图标使用缺省的操作图标图像,因为其操作定义中包含用来指定不同图像的ICON字段.
相反,标号为"压缩文件"的图标使用不同的图标图像,因为它的潜在操作定义中包含ICON字段:例如:ACTIONCompress{LABELCompressFileICONDtcmprs.
.
.
}图形10–4由操作定义中的ICON字段所指定的图标图像Xwud操作被称作命令操作,因为其定义中包含了要运行的命令(EXEC_STRING).
操作定义中的TYPE字段定义了操作类型.
最初,"Xwd显示"图标出现在Desktop_Tools应用程序组中.
但是,在任何具有写许可的目录中可创建该操作图标的附加副本.
只要Xwud操作定义是数据库的一部分,任何创建的名为Xwud的可执行文件都将成为表示该操作的操作文件,而且其在"文件管理器"或"应用程序管理器"中的图标也可以用来运行该操作.
操作如何使用作为变量的数据文件命令的变量(通常是一个文件)是命令作用到的事物.
编写操作来接受文件变量.
例如,Xwud操作的EXEC_STRING指定了需要一个文件变量:EXEC_STRING/usr/bin/X11/xwud-noclick-in\%(File)Arg_1"要显示的Xwd文件:"%第10章操作与数据类型的介绍151术语Arg代表词语变量.
语法Arg_1是指第一个变量,(File)是指操作把变量当文件来处理.
对用户,提供文件变量的最简单的办法是将数据文件拉放到应用程序的图标上.
桌面确定所拉放的文件的路径,并且将它替换到命令行中,放在%symbols(%(File)Arg_1"要显示的Xwd文件:"%)之间的文本处.
这样,所执行的命令为:/usr/bin/X11/xwud-noclick-inle_path当用户双击应用程序图标时,桌面从EXEC_STRING确定需要一个文件变量,并且显示对话框,提示用户输入文件名或路径.
如果是Xwud操作,其提示为:要显示的Xwd文件:用户提供的文件名和路径用作文件变量.
操作的附加用途除启动应用程序之外,在整个桌面范围内,操作还用于在下列项目中创建功能:I"前面板""前面板"控制的定义包括一些字段,用以指定当用户单击控制或拉放文件到其上时运行的操作.
有关详细信息,请参见第231页"定义前面板控制".
I菜单"窗口"和"工作区"菜单定义的语法允许用菜单项指定要运行的操作.
有关详细信息,请参见第248页"工作区管理器菜单"和dtwmrc(4)手册页.
I应用程序之间的通信应用程序可以设计成使用名为ToolTalkmessage(TT_MSG)的特殊类型操作来发送和接收信息.
TT_MSG操作在桌面的开发者环境文档中有描述.
数据类型的介绍当用户创建新的数据文件时,在"文件管理器"中,文件图标的外观与性能随用户创建的数据文件类型的不同而不同.
这种为文件和目录创建定制的外观和性能的能力由桌面数据分类机制提供.
什么是数据类型数据类型是在桌面数据库内部定义的一种结构.
例如,下面是XWD数据类型的定义.
该定义在配置文件/usr/dt/appconfig/types/language/xclients.
dt中:152Solaris公用桌面环境:高级用户和系统管理员指南2002年5月DATA_ATTRIBUTESXWD{ACTIONSOpen,PrintICONDtxwdNAME_TEMPLATE%s.
xwdMIME_TYPEapplication/octet-streamSUNV3_TYPExwd-fileDESCRIPTIONThisfilecontainsagraphicsimageintheXWD\format.
Thesefilesaretypicallycreatedby\takingsnapshotsofwindowsusingtheXwdCapture\action.
ItsdatatypeisnamedXWD.
XWDfiles\havenamesendingwith'.
xwd'or'.
wd'.
}DATA_CRITERIAXWD1{DATA_ATTRIBUTES_NAMEXWDMODEfNAME_PATTERN*.
xwd}DATA_CRITERIAXWD2{DATA_ATTRIBUTES_NAMEXWDMODEfNAME_PATTERN*.
wd}每个数据类型定义均有两部分:DATA_ATTRIBUTES—描述数据类型的外观和性能.
DATA_CRITERIA—指定将一个文件归类至所属数据类型的规则(命名或内容).
DATA_ATTRIBUTES_NAME字段将标准连接到此属性.
一个DATA_CRITERIA可以有多个DATA_CRITERIA.
例如,XWD数据类型具有两个标准来指定两个不同的命名标准(NAME_PATTERN)—名称以.
xwd或以.
wd结尾.
数据类型如何将数据文件连接到操作考虑XWD数据类型.
用户通过给定文件两个文件名后缀(扩展名):.
xwd或.
wd之一来创建XWD类型的文件.
桌面使用文件名作为将文件指定为某种类型的标准.
XWD数据类型通过下面的方法提供此数据类型的每个文件:I唯一的图标图像,用来帮助用户识别数据文件.
I"针对项"帮助,告知用户此数据类型的有关信息.
I"文件管理器"中定制的"选中"菜单包含"打开"和"打印"操作.
XWD文件的"打开"操作运行Xwud操作.
第10章操作与数据类型的介绍153从"选中"菜单运行操作"文件管理器"中的"选中"菜单,只有当文件或目录被选定时才是活动的.
"选中"菜单底部的命令取决于数据类型.
例如,如果选中XWD文件,则"选中"菜单包括"打开"和"打印"项.
数据类型定义中的ACTIONS字段指定了添加到数据类型的"选中"菜单底部的命令.
DATA_ATTRIBUTESXWD{ACTIONSOpen,Print…}"选中"菜单的内容取决于数据类型.
但是,许多不同的数据类型都提供"打开"操作—就是说,当在"文件管理器"中选择特定数据类型的文件并显示"选中"菜单时,可见到"打开"命令.

图形10–5XWD文件的"选中"菜单"打开"操作通常运行与数据文件相关联的应用程序.
例如,打开XWD文件将运行Xwud操作,该操作随后运行xwudX客户机程序来显示屏幕图像.
也就是说,对于XWD数据类型,"打开"操作与Xwud操作是同义的.
同样,打开数据类型TEXTFILE数据类型文件将运行"文本编辑器",而打开BM(位图)或PM(像素图)文件将运行"图标编辑器".
创建各种完成不同事情的"打开"操作的能力使用了操作定义的两个特性:I操作映射操作映射可创建运行另一个操作的操作,而不是直接运行一命令.
例如,可以创建映射到(运行)Xwud操作的"打开"操作.
I对操作的数据类型限定操作定义可包含ARG_TYPE字段,该字段限定操作为某些数据类型.
例如,可以指定映射到Xwud操作的"打开"操作只应用于XWD数据类型的文件.
154Solaris公用桌面环境:高级用户和系统管理员指南2002年5月下面是将"打开"操作映射到XWD数据类型Xwud操作的操作定义.
该操作定义位于数据库配置文件/usr/dt/appconfig/types/C/xclients.
dt中.
ACTIONOpen{LABELOpenARG_TYPEXWDTYPEMAPMAP_ACTIONXwud}TYPE字段指定这是一个映射操作;MAP_ACTION字段指定此操作运行Xwud操作.
ARG_TYPE字段指定该操作只应用于数据类型为XWD的文件.
比较"打开"操作的前一个定义与出现在数据库文件/usr/dt/appconfig/types/C/dt.
dt的下一个定义中.
ACTIONOpen{LABELOpenARG_TYPEBMTYPEMAPMAP_ACTIONDticon}此定义应用于数据类型为(ARG_TYPE)BM(位图文件)的文件.
该定义将"打开"操作映射到运行"图标编辑器"的Dticon操作.
定义数据类型的双击性能数据类型的双击性能由ACTIONS字段的第一项定义.
例如,对于XWD数据类型,双击性能将运行"打开"操作,该操作随后运行Xwud操作.
将数据文件拉放到操作图标上当用户将数据文件拉放到操作图标上时,系统使用此数据文件作为操作变量来运行该操作(请参见第151页"操作如何使用作为变量的数据文件").
例如,当XWD数据文件拉放到"Xwd显示"图标上时,使用数据文件变量运行Xwud操作.
此操作用该数据文件来运行xwudX客户机程序.
为数据类型创建桌面打印桌面打印提供打印数据文件的下列方法:I如果可用,在"文件管理器"的"选中"菜单中使用打印命令.
I将数据文件拉放到桌面打印机拉放区("前面板"的"打印机"控制或"打印管理器"中的打印机图标).
第10章操作与数据类型的介绍155除桌面打印外,许多应用程序还提供一种从应用程序内部打印的方法.
桌面打印使用名为"打印"的操作.
"打印"和"打开"一样,是用于许多不同数据类型的操作名.
因此,"打印"操作使用操作映射和ARG_TYPE字段来定制每种数据类型的打印.
例如,下面是XWD数据类型的"打印"操作.
该定义位于/usr/dt/appconfig/types/language/xclients.
dt中:ACTIONPrint{LABELPrintARG_TYPEXWDTYPEMAPMAP_ACTIONNoPrint}此"打印"操作专用于XWD文件,且映射到NoPrint操作.
NoPrint是在/usr/dt/appconfig/types/language/dt.
dt中定义的专用操作.
NoPrint操作显示对话框,告知用户该数据类型无法打印.
将XWD"打印"操作与下面的PCL文件的"打印"操作比较:ACTIONPrint{LABELPrintARG_TYPEPCLTYPEMAPMAP_ACTIONPrintRaw}在/usr/dt/appconfig/types/language/print.
dt配置文件中定义的PrintRaw操作包含打印PCL文件的命令行.
ACTIONPrintRaw{TYPECOMMANDWINDOW_TYPENO_STDIOEXEC_STRING/usr/dt/bin/dtlp-w%(File)Arg_1%}156Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第11章用创建操作命令来创建操作和数据类型"创建操作"是一种用于创建的工具:I启动应用程序的操作I应用程序数据文件的一种或几种数据类型I打开和打印应用程序数据文件的操作对于创建简单的操作,以便运行操作系统命令和shell脚本,"创建操作"也是很有用的.
I第157页"创建操作的用途"I第158页"创建操作的限制"I第159页"用创建操作命令为应用程序创建操作和数据类型"有关参考信息,请参见dtcreate(1X)的手册页.
创建操作的用途"创建操作"包括一个主窗口和一组对话框,用来创建操作和与之相关联的数据类型.

"创建操作"有以下用途:I创建运行命令的操作定义.
I创建文件HomeDirectory/.
dt/types/action_name.
dt.
该文件存储为应用程序创建的操作和数据类型定义.
I在用户的起始目录下创建操作文件.
该操作文件是与该操作同名的可执行文件.

在"文件管理器"中,操作文件的表示方法称为应用程序图标,因为双击它将启动该应用程序.
另外,在创建操作时,通过指定可拉放的数据类型,使操作图标成为拉放区.

I为应用程序数据文件创建一种或多种数据类型(可选).
157I为每种数据类型创建"打开"操作.
I为每种数据类型创建"打印"操作(可选).
I重新装入操作的数据库和数据类型.
这使操作和数据类型立刻生效.
创建操作的限制"创建操作"是为运行的应用程序创建操作和数据类型而设计的.
但是,操作和数据类型是非常灵活的,并且包括只有通过手动创建定义才能访问的附加功能.
有关详细信息,请参见:I第12章I第13章操作限制当下面的任一条件为真时,就不能用"创建操作"为应用程序创建操作:I命令行需要非文件变量(参数).
例如,不能用"创建操作"为下面的命令写操作:lp-ddevicelename这里,每次执行命令用户必须提供device.
I应用程序图标必须有与操作名称不同的标记.
例如,不能用"创建操作"来提供现有操作的本地语言版本.
I该操作需要操作数据库的任一种高级特性.
这些高级特性的实例是如下一些操作:I从远离操作定义的系统上启动命令I调用其他操作I必须作为不同用户而运行(例如,作为超级用户)I广泛地使用"映射"'特性I根据提供给操作的文件变量数目的不同,其行为也很不相同数据类型限制当下面的任一条件为真时,就不能用"创建操作"为应用程序创建数据类型:I该数据类型必须与除"打开"和"打印"之外的另一些操作相关联.
I该文件类型的"打开"操作不是该操作的命令.
158Solaris公用桌面环境:高级用户和系统管理员指南2002年5月例如,无法用"创建操作"来创建此类数据类型,来为代表该应用程序的应用程序组的目录提供了唯一图标.
用创建操作命令为应用程序创建操作和数据类型在运行"创建操作"之前,需要了解有关应用程序的一些知识.
I启动应用程序的命令行.
需要知道该命令行是否包括必需的文件变量、可选的文件变量,或者没有文件变量.

如果该应用程序需要非文件变量,则不能用"创建操作"来创建该操作.
I应用程序可接受的数据文件类型.
有些应用程序只接受一种数据类型.
其他应用程序(例如ASCII编辑器或图形编辑器)可以接受多种数据类型.
I应用程序识别其数据文件的方式.
可以是命名的惯例(例如,文件名以.
doc结尾),和/或依赖于文件的内容.
如果应用程序不使用命名的惯例,仍可为操作图标设置命名惯例.
I可选:打印文件的命令行.
M为应用程序创建操作1.
在Desktop_Apps应用程序组中双击"创建操作".
第11章用创建操作命令来创建操作和数据类型159图形11–1"应用程序管理器"中的"创建操作"图标这里显示的是"创建操作"的主窗口.
图形11–2"创建操作"主窗口2.
在"操作名称"文本字段中,请键入将要标记操作图标的名称.
160Solaris公用桌面环境:高级用户和系统管理员指南2002年5月3.
使用"操作图标"控制来指定应用程序的图标.
开始时,显示缺省图标.
I要选择另外一个,现有的图标,单击"查找集"来显示"查找集"对话框.
请参见第167页"使用"查找集"对话框来指定图标".
I要创建新图标,请选择"编辑图标"以运行"图标编辑器".
4.
在"操作图标打开时的命令"文本字段中,请键入启动该应用程序的命令.

将语法$n用于文件变量;例如:emacsbitmap$1diff$1$2lp-oraw$1如果命令行包含文件变量($n),那么其操作图标将成为文件的拉放区.
除非明确地指定使用shell,否则命令行无法传到shell.
例如,下面的命令行使用shell处理:/bin/sh-c'ps|lp'/bin/sh-c'spell$1|more'5.
将操作图标的"针对项"帮助文本键入"操作图标的帮助文本"文本字段.

文本将在文本字段中自动换行.
但是这些行的中断得不到联机保存.
如果想指定硬换行,请使用\n.
6.
从"窗口类型"选项菜单中选择操作需要的窗口支持.
图形(X-Window)—应用程序创建其自身的窗口终端(自动关闭)—应用程序将在终端仿真窗口中运行,在用户退出该应用程序时,该窗口自动关闭终端(手动关闭)—应用程序将在终端仿真窗口中运行,并一直打开,直到用户明确地关闭它无输出—应用程序不在显示器上产生输出7.
按如下进行:I如果应用程序已有数据文件,并且想为其创建一种或多种数据类型,请参见下一节第161页"为应用程序创建一种或多种数据类型".
I如果不需要创建数据类型,在"文件"菜单中,选择"保存"来保存操作.
然后,在起始目录下,双击新操作的图标来对其进行测试.
M为应用程序创建一种或多种数据类型1.
用上一节第159页"为应用程序创建操作"所述的过程为应用程序定义操作.
2.
在"创建操作"窗口中单击"高级"按钮来扩展窗口.
第11章用创建操作命令来创建操作和数据类型161图形11–3在"创建操作"主窗口中的高级特征3.
如果想在双击应用程序图标时让它提示输入文件变量,请在"操作打开时,要求用户提供"文本字段键入提示的文本.
在该文本字段中,请使用下面的准则:I如果应用程序的命令行中有必需的文件变量,则必须使用这个字段.
I如果命令行不包含文件变量,则必须让该字段保持空白.
I如果应用程序的命令行中的文件变量是可选的,则可以自由选择.
如果提供提示文本,则在双击操作图标时将提示输入文件.
如果不提供提示文本,则操作将用空字符串作为文件变量执行.
4.
指定操作将作为变量接受的文件的类型:I如果操作可以接受任一数据类型,请选择"所有数据类型".
I如果操作只能接受为该应用程序创建的数据类型,请选择"仅以上列表".

开始时,"使用该操作的数据类型"列表是空的.
当为该应用程序创建数据类型后,这些数据类型就添加到该列表中.
5.
单击"使用该操作的数据类型"列表框旁边的"增加",来显示"增加数据类型"对话框.

162Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形11–4"创建操作"的"增加数据类型"对话框6.
可选:如果不想使用缺省数据类型名称,请在"数据类型族的名称"文本字段中,为该数据类型键入新名称.
名称不能包含空格.
数据类型名称对于应用程序用户是不可见的;它用在操作/数据类型数据库中,来标识数据类型定义.
7.
单击"标识特性"框旁边的"编辑"按扭来显示"标识特性"对话框.
第11章用创建操作命令来创建操作和数据类型163图形11–5"创建操作"的"识别特性"对话框数据类型的特性是用来将该类型数据与其他类型区分开来的标准.
可选择下面的一种或几种标准:"文件"或"文件夹"—该数据类型只应用于文件或只应用于文件夹名称模式—基于文件名的数据分类许可模式—读、写、执行许可内容—文件指定部分的内容8.
选择数据类型是代表文件还是代表文件夹.
164Solaris公用桌面环境:高级用户和系统管理员指南2002年5月图形11–6为数据类型指定文件或目录特性.
9.
如果数据分类取决于名称,选择"名称模式"复选框并在文本字段内填写.

图形11–7为数据类型指定文件名特性可以用*和作为通配符:*—匹配任何字符序列—匹配任何单个字符10.
如果数据分类取决于许可,选择"许可模式"复选框,并选择该数据类型的许可.

图形11–8为数据类型指定许可特性开—文件必须有指定的许可关—文件必须没有指定的许可任意—与指定的许可没有关系11.
如果数据分类取决于内容,则选择"内容"复选框,并提供所需的信息—要查找的模式和内容的"类型".
另外,还可以提供应开始查找的字节位置.
第11章用创建操作命令来创建操作和数据类型165图形11–9为数据类型指定内容特性注意:使用基于内容的数据分类可能会影响系统的性能.
12.
单击"确定"来关闭"标识特性"对话框.
特性将在"标识特性"字段中,用下面的编码显示出来:d—目录r—文件具有读许可w—文件具有写许可x—文件具有执行许可!
—逻辑操作符NOT&—逻辑操作符AND13.
在"帮助文本"文本字段中,请键入数据文件的帮助文本.
14.
使用"数据类型图标"控制来为数据文件指定图标.
开始时,所显示的是缺省图标.

I要选择不同的,现有的图标,单击"查找集"来显示"查找集"对话框.
请参见第167页"使用"查找集"对话框来指定图标".
I要创建新图标,单击"编辑图标"来运行"图标编辑器".
15.
在"打开该数据类型的命令"文本字段中校验该命令.
这就是双击数据文件时,所要执行的命令.
16.
可选:从命令行,应用程序为打印数据文件提供打印命令,请使用文件变量的语法$n将该命令键入"打印该数据类型的命令"文本字段.
17.
执行下列操作之一来保存数据类型定义:I单击"确定"来保存数据类型,并关闭"添加数据类型"对话框.
166Solaris公用桌面环境:高级用户和系统管理员指南2002年5月I单击"应用"来保存数据类型,但不关闭"添加数据类型"对话框.
此后可以立即为操作定义另一种数据类型.
使用"查找集"对话框来指定图标在"创建操作"主窗口或在"添加数据类型"窗口中单击"查找集"时将显示"查找集"对话框.
用该对话框来指定用于操作或数据类型的图标.
图形11–10"查找集"对话框"查找集"对话框用于指定一组有下列位置的的图标图像文件:I在图标查找路径的目录里.
"图标文件夹"列表包含图标查找路径中的所有目录.

I在将用dtappintegrate与桌面集成的登记软件包中.
这些图标尚未放置于图标查找路径的目录中,但将通过dtappintegrate放置到那里.
注意:用"创建操作"创建的操作和数据类型定义为图标文件写出基本名称(文件名去掉表示文件大小和类型的后缀).
用"创建操作"创建的操作和数据类型的图标,最后必须放置在图标查找路径的目录中.
M指定一组位于图标查找路径中的图标1.
在"查找集"对话框的"图标文件夹"列表中,双击含有该图标的文件夹路径.

"图标文件"列表将显示该文件夹中的所有图标文件.
2.
在"图标文件"列表中,单击要使用的图标.
这把图标文件的基本名称放置在"输入图标文件名"文本字段中.
第11章用创建操作命令来创建操作和数据类型1673.
单击"确定".
M在登记软件包中指定图标如果你是创建登记软件包的系统管理员或程序员,图标图像文件最初位于登记软件包的目录中:app_root/dt/appconfig/icons/language用dtappintegrate登记后,图标文件将被复制到在图表查找路径中的/etc/dt/appconfig/icons/language.
用此过程来指定属于登记软件包一部分的图标:1.
在"查找集"对话框的"输入图标文件名"文本字段中,请键入图标文件的基本名称.

2.
单击"确定".
"创建操作"显示对话框,通知在图标查找路径的目录中未找到这些图标.

3.
在出现的信息对话框中,选择"不更改".
168Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第12章手动创建操作创建操作有两种方法:I使用"创建操作"桌面应用程序I手动创建操作定义手动创建操作需要编辑数据库文件.
本章描述如何进行手动创建操作定义.

I第169页"必须手动创建操作的理由"I第171页"手动创建操作:一般步骤"I第178页"生成COMMAND操作的执行字符串"I第184页"用于COMMAND操作的窗口支持和终端仿真器"I第185页"限定操作使用某些变量"I第188页"创建在远程系统上运行应用程序的操作"I第189页"在操作和数据类型定义中使用变量"I第190页"从命令行调用操作"I第191页"创建本地化的操作"I第192页"创建ToolTalk应用程序的操作"I有关操作的介绍,请参见第10章.
I有关使用"创建操作"的信息,请参见第11章.
I有关操作定义的参考信息,请参见dtactionle(4)手册页.
必须手动创建操作的理由共有三种基本操作类型:ICOMMANDIMAPITT_MSG169"创建操作"工具设计用来创建一些特定类型的COMMAND和MAP操作.
所有TT_MSG操作都必须手动创建.
有关详细信息,请参见第158页"创建操作的限制".
COMMAND操作command操作执行命令启动应用程序或公用程序、运行shell脚本命令或执行操作系统命令.
操作的定义包括要执行的命令(EXEC_STRING).
"创建操作"工具能用于创建最通用类型的命令操作.
不过在有些情况下必须手动创建操作.
例如,如果操作中有以下指定就必须手动创建COMMAND操作:I多文件变量,而且每个变量有不同的提示符.
I操作调用—操作调用其他操作的能力.
I变量计数依赖性能—创建对不同文件变量数目而有很不相同性能的操作的能力.

I远程执行主机—在包含操作定义的系统之外的系统上运行应用程序的能力.

I用户的更改—作为不同用户运行该操作的能力(例如,提示输入超级口令,然后以超级用户身份运行操作).
MAP操作映射操作是不直接指定命令或ToolTalk消息,而是"映射"到另一个操作的操作映射可以指定操作的替代名称.
例如,名为IconEditor的内置命令操作启动"图标编辑器".
数据库还包括对位图和像素图文件的定义中(通过ARG_TYPE字段)限定的Open操作,它映射到IconEditor操作.
这使用户可以通过在"文件管理器"中选择位图或像素图文件并在"选中"菜单中选择"打开"来启动"图标编辑器".
"创建操作"能为"打开"和"打印"操作提供有限的映射功能.
所有其他的映射操作必须手动创建.
TT_MSG(ToolTalk消息)操作TT_MSG操作发送ToolTalk消息.
所有TT_MSG操作都必须手动创建.
170Solaris公用桌面环境:高级用户和系统管理员指南2002年5月手动创建操作:一般步骤本节介绍如何为操作定义创建配置文件.
操作的配置文件包含操作定义的配置文件必须满足下面的要求:I文件必须使用命名惯例name.
dtI文件必须位于数据库(操作和数据类型)的查找路径内.
缺省的查找路径为:个人操作—HomeDirectory/.
dt/types系统范围操作—/etc/dt/appconfig/types/language内置操作—/usr/dt/appconfig/types/language.
你不应使用此目录.
有关修改操作/数据类型查找路径的信息,请参见第136页"设置查找路径的值".
M手动创建操作1.
打开现有的数据库文件或创建新文件.
请参见上一节第171页"操作的配置文件".
2.
使用如下语法创建操作定义:ACTIONaction_name{TYPEaction_typeaction_eld.
.
.
}其中:action_name—运行操作所用的名称.
action_type—COMMAND(缺省值)、MAP或TT_MSGaction_eld—这类操作必需或任选的字段之一.
所有字段都由关键字和值组成.

本章包含多种操作字段.
有关详细信息,请参见dtactionfile(4)手册页.
3.
保存文件.
4.
如果需要操作图标有唯一的图像,请为操作创建图标.
图标的缺省位置为:I个人图标:HomeDirectory/.
dt/iconsI系统范围图标:/etc/dt/appconfig/icons/language.
缺省的language是C.
第12章手动创建操作171有关详细信息,请参见第175页"指定"操作所用的图标图像"".
5.
在Desktop_Tools应用程序组中双击"重新装入操作".
6.
为操作创建操作文件.
该操作文件在"文件管理器"或"应用程序管理器"中创建代表该操作的图标.
(如果操作被写以启动应用程序,则该图标称为应用程序图标.
)要创建操作文件,需要创建与action_name同名的可执行文件.
该文件可位于任何您具有写许可的目录内.
可创建任意多个操作文件.
创建COMMAND操作的实例下面的步骤在远程系统AppServerA上创建了启动传真应用程序的个人操作.
启动传真应用程序的命令是:/usr/fax/bin/faxcompose[lename]1.
创建HomeDirectory/.
dt/types/Fax.
dt文件.
2.
将下面的操作定义放到文件中:ACTIONFaxComposer{TYPECOMMANDICONfaxWINDOW_TYPENO_STDIOEXEC_STRING/usr/fax/bin/faxcompose-c%Arg_1%EXEC_HOSTAppServerADESCRIPTIONRunsthefaxcomposer}WINDOW_TYPE和EXEC_STRING字段描述操作的性能.
WINDOW_TYPE—NO_STDIO关键字指定该操作不必在终端仿真器窗口中运行.
请参见第184页"为操作指定窗口支持".
EXEC_STRING—语法%Arg_1%接受拉放文件.
如果双击操作图标,操作将打开空的传真书写器窗口.
请参见第178页"生成COMMAND操作的执行字符串".
3.
保存文件.
4.
用"图标编辑器"在HomeDirectory/.
dt/icons目录中创建下面的图标图像文件:Ifax.
m.
pm,大小为32乘32像素Ifax.
t.
pm,大小为16乘16像素5.
在Desktop_Tools应用程序组中双击"重新装入操作".
6.
在具有写许可的目录(例如,起始目录)中创建名为FaxComposer的可执行文件.
172Solaris公用桌面环境:高级用户和系统管理员指南2002年5月创建MAP操作的实例假设绝大部分传真文件用"文本编辑器"创建,而且属于数据类型TEXTFILE(文件名为*.
txt).
下面的步骤在数据类型的"选中"菜单中加入"传真"菜单项.
1.
打开在上例中创建的HomeDirectory/.
dt/types/Fax.
dt文件.
2.
在文件中加入下面的映射操作的定义:ACTIONFax{ARG_TYPETEXTFILETYPEMAPMAP_ACTIONFaxComposer}3.
保存文件.
4.
将TEXTFILE的数据属性定义从/usr/dt/appconfig/types/language/dtpad.
dt复制到新的文件HomeDirectory/.
dt/types/textfile.
dt.
将"传真"操作添加到ACTIONS字段.
DATA_ATTRIBUTESTEXTFILE{ACTIONSOpen,Print,FaxICONDtpenpd.
.
.
}5.
保存文件.
6.
打开应用程序管理器,在Desktop_Tools应用程序组中双击"重新装入操作".
M重新装入操作/数据类型数据库为使新的或经过编辑的操作定义有效,桌面必须重新读取数据库.
G打开Desktop_Tools应用程序组,双击"重新装入操作".
G或者,执行下面的命令:dtactionReloadActionsReloadActions是图标的标记为"重新装入操作"的操作的名称.
当用户进行下面的操作时,操作数据库也被重新读取:I登录I重新启动"工作区管理器"I从"文件"菜单选择"保存"在"创建操作"窗口保存操作第12章手动创建操作173为"操作"创建"操作文件"(图标)操作文件是为在"文件管理器"或"应用程序管理器"中提供操作的可视表示而创建文件.
图形12–1"应用程序管理器"中的操作文件(操作图标)由于操作文件的图标表示一个操作,因此有时也被称为操作图标.
如果其潜在的操作启动应用程序,则操作文件图标也被称为应用程序图标.
双击操作图标来运行操作.
操作图标同时也可能是拉放区.
M创建操作文件(操作图标)G创建与操作同名的可执行文件.
该文件的内容并不重要.
例如,操作的定义如下:ACTIONMyFavoriteApp{EXEC_STRINGMfa-file%Arg_1%DESCRIPTIONRunsMyFavoriteAppICONMfapp}此时,操作文件是名为MyFavoriteApp的可执行文件.
在"文件管理器"和"应用程序管理器"中,MyFavoriteApp文件将使用图标图像Mfapp.
size.
type.
双击MyFavoriteApp的图标就运行该操作的执行字符串,图标的"针对项"帮助则为DESCRIPTION字段("运行MyFavoriteApp")的内容.
174Solaris公用桌面环境:高级用户和系统管理员指南2002年5月"操作标号"如果操作定义包含LABEL字段,该操作文件就在"文件管理器"和"应用程序管理器"中加上该字段内容的标号而不是文件名(action_name).
例如,如果操作定义中包含下面的定义:ACTIONMyFavoriteApp{LABELFavoriteApplication.
.
.
}此时操作图标标记为"喜爱的应用程序".
指定"操作所用的图标图像"使用ICON字段来指定用于"文件管理器"和"应用程序管理器"的图标,作为为操作创建的操作图标.
如果未指定图标,系统将使用缺省的操作图标图像文件/usr/dt/appconfig/icons/language/Dtactn.
*.
图形12–2缺省的操作图标图像缺省的操作图标可使用下面的资源加以更改:*actionIcon:icon_le_name其中icon_le_name可以是基本名称或绝对路径.
ICON字段的值可以是:I基本文件名第12章手动创建操作175基本文件名是包含图标图像的全文件名减去有关大小(m和t)和图像类型(bm和pm)的后缀.
例如,如果全文件名为GameIcon.
m.
pm和GameIcon.
t.
pm,则基本文件名为GameIcon.
如果采用基本文件名,图标文件必须放置在位于图标查找路径的目录内:I个人图标:HomeDirectory/.
dt/iconsI系统范围图标:/etc/dt/appconfig/icons/languageI图标文件的绝对路径,包含全文件名只有在图标文件不在图标查找路径内时才使用绝对路径.
例如,如果图标文件GameIcon.
m.
pm放在目录/doc/projects(不在图标查找路径)下,ICON字段值则为/doc/projects/GameIcon.
m.
pm.
表12–1列出了应该创建的图标大小和相应的文件名.
表12–1操作图标的图标名和图标大小像素大小位图名像素图名48乘48name.
l.
bmname.
l.
pm32乘32name.
m.
bmname.
m.
pm16乘16name.
t.
bmname.
t.
pmM修改现有的操作定义可修改系统内任何可用的操作,包括内置操作.
注意:修改内置操作数据库时必须小心.
因为内置操作是为很好使用桌面应用程序而设计的.
1.
找到需要修改的操作定义.
操作定义的缺省位置是:I内置操作:/usr/dt/appconfig/types/languageI系统范围操作:/etc/dt/appconfig/types/languageI个人操作:HomeDirectory/.
dt/types系统也可能包括附加的位置.
要查看系统中所用操作的位置列表,请键入下面的命令:dtsearchpath-v系统所用目录列在DTDATABASESEARCHPATH下.
2.
如果必要的话,将操作定义的文本复制到下面的目录之一中新的或现有的文件中:I系统范围操作:/etc/dt/appconfig/types/languageI个人操作:HomeDirectory/.
dt/types176Solaris公用桌面环境:高级用户和系统管理员指南2002年5月由于不应在/usr/dt/appconfig/types/language目录中编辑文件,所以必须复制内置操作.
3.
编辑操作定义.
4.
编辑完毕后请保存文件.
5.
在Desktop_Tools应用程序组中双击"重新装入操作".
操作定义中的优先级当用户调用操作时,系统在数据库中查找匹配的操作名.
如果存在多个由该名称的操作,系统则利用优先级规则来决定使用哪个操作.
I如果没有其他优先级规则可用,将使用基于定义位置的优先级.
下表按从高到低的优先级排列:I个人操作(HomeDirectory/.
dt/types)I系统范围的本地操作(/etc/dt/appconfig/types/language)I系统范围的远程操作(hostname:/etc/dt/appconfig/types/language).
只查找在应用程序查找路径内的远程主机.
I内置操作(/usr/dt/appconfig/types/language)I在给定的目录内,*.
dt文件按字母顺序读取.
I由ARG_CLASS、ARG_TYPE、ARG_MODE或ARG_COUNT限定的操作优先于未限定的操作.
(上述四种字段的缺省值是*.
)当应用了多个限定时,优先级顺序从高到低是:IARG_CLASSIARG_TYPEIARG_MODEIARG_COUNT存在多于一个限定的ARG_COUNT时,优先级顺序从高到低是:I特定整数值nInI*例如,考虑操作定义的下面部分:ACTIONEditGraphics#EditGraphics-1{ARG_TYPEXWD.
.
.
}第12章手动创建操作177ACTIONEditGraphics#EditGraphics-2{ARG_COUNT0.
.
.
}ACTIONEditGraphics#EditGraphics-3{ARG_TYPE*.
.
.
}因为没有提供变量并且ARG_COUNT0优先,双击EditGraphics操作图符启动EditGraphics-2.
当提供了XWD类型的文件变量时,使用EditGraphics-1,因为它指定了XWDARG_TYPE.
对于所有其他文件的变量,则使用EditGraphics-3.
生成COMMAND操作的执行字符串COMMAND操作至少需要两个字段—ACTION和EXEC_STRING.
ACTIONaction_name{EXEC_STRINGexecution_string}执行字符串是COMMAND操作定义中最重要的部分.
它使用的语法与在"终端"窗口内执行的命令行相似,但包含了用于处理文件和字符串变量的附加语法.
执行字符串的一般特性执行字符串可能包括:I文件和非文件变量Ishell语法I可执行文件的绝对路径或名称"操作变量"变量是命令或应用程序正确运行所需要的信息.
例如,考虑可用于在"文本编辑器"中打开文件的命令:dtpadlename178Solaris公用桌面环境:高级用户和系统管理员指南2002年5月在该命令中,lename是dtpad命令的文件变量.
象应用程序和命令一样,操作也可以有变量.
COMMAND操作可以使用两种类型的数据:I文件I字符串数据在"执行字符串"中使用shell执行字符串不经过shell就直接执行.
但是,也可以明确地在执行字符串中调用shell.
例如:EXEC_STRING\/bin/sh-c\'tar-tvf%(File)Arg_1%2>&1|\${PAGER:-more;\echo"\\n***SelectClosefromtheWindowmenutoclose***"'可执行文件的名称或绝对路径如果应用程序位于PATH变量所列的目录之中,则可以使用简单的可执行文件名.
如果应用程序在别处,则必须使用可执行文件的绝对路径.
创建不使用变量的操作从命令行启动应用程序,使用相同的EXEC_STRING语法.
实例I下面的执行字符串是启动X客户机程序xcutsel的操作的一部分.
EXEC_STRINGxcutselI下面的执行字符串启动带数字式时钟的客户程序xclock.
该命令行包含命令行选项,但不需要变量.
EXEC_STRINGxclock-digital创建接受拉放文件的操作文件变量使用如下语法:%Arg_n%或第12章手动创建操作179%(File)Arg_n%(File)是可选项,因为Arg_n提供的变量(缺省)假定为文件.
(请参见第181页"将文件变量解释成字符串",以获得%(String)Arg_n%语法的使用方法.
)该语法使用户可以通过在操作图标上拉放数据文件对象来启动带有该文件变量的操作.

它将第n个变量替代到命令行中.
拉放文件可以是本地文件或远程文件.
实例I下面的执行字符串执行使用拉放文件作为-装入参数的wc-w.
EXEC_STRINGwc-w%Arg_1%I下例所显示的是仅用目录变量工作的操作的定义的一部分.
当目录被拉放在操作图标上时,该操作将该目录内所有有读写许可的文件列表显示出来.
ACTIONList_Writable_Files{ARG_TYPEFOLDEREXEC_STRING/bin/sh-c's-l%Arg_1%|greprw-'.
.
.
}创建提示输入文件变量的操作文件变量使用如下语法:%(File)"提示"%该语法创建了一个操作,该操作在用户双击操作图标时显示提示输入文件名.

例如,下面的执行字符串显示对话框,提示输入wc-w命令的文件变量:EXEC_STRINGwc-w%(File)"Countwordsinfile:"%创建接受拉放文件或提示输入文件的操作文件变量使用如下语法:%Arg_n"提示"%或%(File)Arg_n"提示"%该语法产生的操作:I接受拉放文件作为文件变量.
180Solaris公用桌面环境:高级用户和系统管理员指南2002年5月I用户双击操作图标时显示对话框,提示输入文件名.
例如,下面的执行字符串在拉放文件上执行lp-oraw操作.
如果操作由双击图标启动,则出现对话框提示输入文件名.
EXEC_STRINGlp-oraw%Arg_1"Filetoprint:"%创建提示输入非文件变量的操作对非文件变量使用如下语法:%"提示"%或%(String)"提示"%由于缺省情况下,引号内的文本被解释为字符串,所以(String)是可选项.
该语法显示对话框,提示输入非文件数据;如果提示输入文件名就不能用该语法.
例如,下面的执行字符串运行xwd命令,并提示要增加到每个像素的值:EXEC_STRINGxwd-add%"增加值:"%-out%Arg_1"文件名:"%将文件变量解释成字符串变量使用如下语法:%(String)Arg_n%例如,下面的执行字符串用于打印具有包含文件名标题的文件,所用命令为lp-t标题文件名.
EXEC_STRINGlp-t%(String)Arg_1%%(File)Arg_1"Filetoprint:"%在操作中提供shell功能在执行字符串中指定shell:/bin/sh-c'command'/bin/ksh-c'command'/bin/csh-c'command'实例I下面的执行字符串说明使用shell管道传递的操作.
EXEC_STRING/bin/sh-c'ps|lp'第12章手动创建操作181I下例的执行字符串更复杂,需要有shell处理并接受文件变量.
EXEC_STRING/bin/sh-c'tbl%Arg_1"手册页:"%|troff-man'I下面的执行字符串要求变量为压缩文件.
此操作解压缩文件并用lp-oraw打印该文件.
EXEC_STRING/bin/sh-c'cat%Arg_1"要打印的文件:"%|\uncompress|lp-oraw'I下面的执行字符串启动shell脚本.
EXEC_STRING/usr/local/bin/StartGnuClient创建多文件变量的COMMAND操作操作有三种处理多文件变量的方法:I该操作可以重复运行,每一变量执行一次.
当EXEC_STRING包含单个文件变量,而且通过在操作图标上拉放多个文件来提供多文件变量时,则对每个文件变量分别运行此操作.
例如,如果为下面的操作定义提供多文件变量,则:ACTIONDisplayScreenImage{EXEC_STRINGxwud-in%Arg_1%.
.
.
}DisplayScreenImage操作被重复运行.
I操作可以使用两个或两个以上的不可互换的文件变量.
例如:xsetroot-cursorcursorlemaskle需要特定顺序的两个专用文件.
I操作可以对每个文件变量顺序执行同一命令.
例如:prle[le.
.
.
]将在打印作业中打印一个或多个文件.
为不可互换变量创建操作采用下面的语法惯例之一:I如果需要操作来提示输入文件名,则每个文件变量均使用如下语法:%(File)"提示"%对每个变量使用不同的提示字符串.
182Solaris公用桌面环境:高级用户和系统管理员指南2002年5月例如,下面的执行字符串提示输入两个文件.
EXEC_STRINGxsetroot-cursor%(File)"光标位图:"%\%(File)"掩码位图:"%I要接受拉放文件,为每个文件变量使用如下语法:%Arg_n%为每个变量使用不同的n值.
例如:EXEC_STRINGdiff%Arg_1%%Arg_2%用"可交换的文件变量"来创建操作采用下面的语法惯例之一:I要创建接受拉放文件并以commandle1le2…形式发出命令的操作,文件变量使用如下语法:%Args%I要创建接受多重拉放文件,或在双击时提示输入单个文件的操作,文件变量使用如下语法:%Arg_1"提示"%%Args%操作采用commandle1le2…形式来发出命令.
实例I该执行字符串创建一个操作,该操作执行:prle1le2具有多文件变量.
EXEC_STRINGpr%Args%I本执行字符串创建的操作与上例相似,只不过操作在双击时显示提示符(无文件变量).
EXEC_STRINGpr%Arg_1"要打印的文件:"%%Args%创建接受多重拉放文件的操作要接受多重拉放文件变量并以下面的形式执行命令行:commandle1le2.
.
.
使用如下语法:第12章手动创建操作183%Args%实例I该执行字符串对多个文件执行名为Checkout的脚本:EXEC_STRING/usr/local/bin/Checkout\%Arg_1"检查出什么文件"%%Args%I本执行字符串对多个文件执行lp-oraw命令:EXEC_STRINGlp-oraw%Arg_1"要打印的文件:"%%Args%用于COMMAND操作的窗口支持和终端仿真器COMMAND操作有几种桌面上支持窗口的方法.
I如果应用程序有自己的窗口,操作可以写成不提供附加的窗口支持.
该选项也用于运行不需要用户直接输入,也没有输出的命令.
I如果应用程序必须在终端仿真器窗口内运行,操作可写成打开窗口,然后运行该应用程序.
有几种终端选项.
为操作指定窗口支持使用WINDOW_TYPE字段指定如表12–2所示的操作所需的窗口支持类型.
表12–2WINDOW_TYPE字段和提供的窗口支持WINDOW_TYPE提供的窗口支持NO_STDIO无.
如果应用程序有自己的窗口,或命令无可见输出,使用NO_STDIO选项.
PERM_TERMINAL永久的终端仿真器窗口.
此操作可打开终端窗口,该窗口在用户明确地关闭之前保持打开.
用户可以在窗口中输入数据.
用于获取某些输入,产生某些输出,然后终止的命令(例如ls目录).
TERMINAL临时的终端仿真器窗口.
该操作打开终端窗口,而该窗口在命令完成后立即关闭.
用于全屏幕命令(例如,vi).
184Solaris公用桌面环境:高级用户和系统管理员指南2002年5月为终端仿真器指定命令行选项使用操作定义中的TERM_OPTS字段指定终端仿真器的命令行选项.
例如,下面的操作提示输入执行主机:ACTIONOpenTermOnSystemUserChooses{WINDOW_TYPEPERM_TERMINALEXEC_HOST%(String)"远程终端在:"%TERM_OPTS-title%(String)"窗口标题:"%EXEC_STRING$SHELL}指定不同的缺省终端仿真器操作所使用的缺省终端仿真器是dtterm.
可以将其更改为另一终端仿真器.
如果没有明确地指定要用的终端仿真器,将使用缺省终端仿真器.
操作所使用的终端仿真器必须有下面的命令行选项:I-titlewindow_titleI-ecommand操作使用的缺省终端仿真器由两类资源决定:IlocalTerminal资源指定本地应用程序所使用的终端仿真器.
*localTerminal:terminal例如:*localTerminal:xtermIremoteTerminal资源指定远程应用程序所使用的终端仿真器.
*remoteTerminal:host:terminal[,host:terminal.
.
.
]例如:*remoteTerminal:sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm限定操作使用某些变量限定操作使用某种特定类型的变量可以改善操作的性能.
例如,应限定调用PostScript文件的查看器的操作只使用PostScript文件变量;使用此限定后,在指定非PostScript文件时,操作将会返回错误对话框.
第12章手动创建操作185可以基于下面的方式来限定操作:I文件变量的数据类型.
I文件变量的数量—例如,没有变量与一个或多个变量.
这为操作图标提供了不同的拉放置和双击性能.
I变量的读/写模式.
限定操作使用指定的数据类型使用ARG_TYPE字段指定使操作有效的数据类型.
使用数据的属性名.
可以输入一列数据类型;不同项之间用逗号隔开.
例如,下面的操作定义假定已创建了GIF数据类型.
ACTIONOpen_Gif{TYPECOMMANDLABEL"DisplayGif"WINDOW_TYPENO_STDIOARG_TYPEGifICONxgifDESCRIPTIONDisplaysgiffilesEXEC_STRINGxgif}根据变量数量限定操作使用ARG_COUNT字段指定此操作可接受的变量个数.
有效值为:*(缺省值)—任意个数的变量.
其他值的优先级都比*高.
n—任意非负整数,包括0.
>n—多于n个变量.
F5rootf.
menuApplications}MenuApplications{"GraphicsApp"f.
exec"/usr/bin/GraphicsApp/GApp".
.
.
}M重新启动工作区管理器为了使对配置文件所作的更改生效,必须重新启动"工作区管理器".
G从"工作区"菜单选择"重新启动工作区管理器"(当指针落在背景上时,按鼠标按钮3).
第16章定制工作区管理器245定制工作区用户可以用桌面的界面完成大多数工作区定制,比如更改工作区名称和工作区的数目等.
但是,"工作区管理器"为设置系统范围的缺省值提供了资源.
M更改系统范围基础上的工作区数目缺省的桌面配置提供四个工作区.
用户可使用与工作区切换相关联的弹出式菜单来添加和删除工作区.
/usr/dt/app-defaults/C/Dtwm文件将workspaceCount资源设置成下面的缺省数目的工作区:Dtwm*0*workspaceCount:4Dtwm*workspaceCount:1在屏幕0上指定多个工作区.
在任何其他屏幕上指定单个的工作区.
可创建(或修改现有的)/etc/dt/config/C/sys.
resources文件,以便为工作站上所有新用户更改缺省的工作区数目.
G使用0*workspaceCount资源在主屏幕上设置系统范围的缺省值:Dtwm*0*workspaceCount:数目例如,下面的资源在主屏幕上设置系统范围的工作区数目为6:Dtwm*0*workspaceCount:6有关设置"工作区管理器"资源的信息,请参见第257页"设置应用程序资源".
例如,下面的资源设置工作区数目为6:Dtwm*workspaceCount:6M提供系统范围的工作区名称在内部,工作区按编号惯例wsn编号,其中n是0、1、2等等.
例如,缺省的四个工作区在内部被编号为ws0到ws3.
G使用标题资源以更改指定工作区的名称:Dtwm*wsn:名称有关设置"工作区管理器"资源的信息,请参见第257页"设置应用程序资源".
例如,下面的资源将缺省的四个工作区设置为指定的名称:246Solaris公用桌面环境:高级用户和系统管理员指南2002年5月Dtwm*ws0*title:AnnaDtwm*ws1*title:DonDtwm*ws2*title:JuliaDtwm*ws3*title:PattiM创建附加的背景1.
创建背景图像.
它们可以是位图或像素图文件.
2.
将背景放进下面的目录之一.
(可能需要创建此目录.
)I系统范围背景:/etc/dt/backdropsI个人背景:HomeDirectory/.
dt/backdrops3.
从"工作区"菜单中选择"重新启动工作区管理器".
将系统范围和个人背景添加到/usr/dt/backdrops的内置背景中.
可以创建与其同名的个人或系统范围背景,来替换现有的内置背景.
M用图形图像替换背景背景被分层在显示的根窗口之上.
"式样管理器背景"对话框提供"无背景"设置,在此设置下背景是透明的.
在所有的工作区背景后面只有一个根窗口.
因此,放置在根窗口中的图形图像始终跨越在所有的工作区.
可以指定哪些工作区用背景覆盖根窗口.
然而,当"无背景"有效时,对每个工作区可见的图像是相同的.
1.
创建图形图像.
图像必须是有工具能够在根窗口中将其显示出来的格式.
例如,如果要使用xsetroot,必须创建一个位图文件.
2.
如果它还不存在,就要创建一个可执行文件HomeDirectory/.
dt/sessions/sessionetc.
sessionetc文件在用户每次登录时运行.
3.
在sessionetc文件中放置用于显示图像的命令.
例如,下面的命令用指定的位图平铺显示根窗口:xsetroot-bitmap/users/ellen/.
dt/icons/root.
bm第16章定制工作区管理器247工作区管理器菜单"工作区管理器"有三个缺省菜单:工作区菜单—又称作根菜单.
当指针位于背景上时,用户按鼠标按钮3,即显示该菜单.
该菜单通过按钮绑定与鼠标按钮相关联.
窗口菜单—用户在指针位于"窗口"菜单按钮(窗框的左上角)上时按鼠标按钮1或3,即显示该菜单.
该菜单通过windowMenu资源与按钮相关联.
"前面板"菜单—用户在指针位于"前面板"的"窗口"菜单按钮上时按鼠标按钮1或3,即显示该菜单.
工作区管理器菜单语法"工作区管理器"菜单具有下面的语法:MenuMenuName{selection1[mnemonic][accelerator]function[argument]selection2[mnemonic][accelerator]function[argument].
.
.
}其中:selection—出现在菜单中的文本或位图.
如果文本包含空格,就用引号将文本括起.
对于位图,使用语法@/path.
mnemonic—是显示菜单时用作键盘简捷方式的单个字符.
在form_character中指定.
accelerator—无论菜单是否显示,键盘简捷方式都是活动的.
加速器具有语法modierKeyname,其中modier是Ctrl、Shift、Alt(扩展字符)或Lock.
有关所有可能键名称的列表,请参见"X11include"目录中的keysymdef.
h文件.
function—作出该选择后要执行的功能.
有关功能的列表,请参见dtwmrc(4)手册页.
argument—函数变量.
有关详细细节,请参见dtwmrc(4)手册页.
例如,下面的标记为"恢复"的菜单项使窗口normalize(规范化).
在显示菜单时,请键入"R"也将恢复窗口.
按"扩展"字符F5键也将恢复窗口.
Restore_RAltF5f.
normalize注意:有关"工作区管理器"菜单语法的完整信息,请参见dtwmrc(4)手册页.
248Solaris公用桌面环境:高级用户和系统管理员指南2002年5月M在工作区菜单添加新的菜单项1.
单击"前面板"的"工具"子面板中的"向菜单添加项"控制.
显示"向工作区菜单添加项"对话框.
2.
键入完整路径,或者单击"浏览"并选择要运行新菜单项的文件的路径.
所指向的文件在正常情况下应该可以为该主机所用.
它应该是可执行文件或是已注册到主机的数据类型文件(例如,"音频"或"手册页").
包含文件名的完整路径显示在文本框中.
3.
单击"添加",向菜单中添加文件.
文件被添加到"工作区菜单"的第一个位置.
它的缺省图标(如有)和文件名将用作菜单项的图标和文本.
注意:要更改"工作区菜单"中的菜单项位置,请参见第249页"修改工作区菜单".
M修改工作区菜单1.
单击"前面板"的"工具"子面板上的"定制工作区菜单"控制.
所显示"文件管理器"显示出"工作区菜单"的配置文件夹.
注意,该文件夹中的文件代表每个菜单项,子文件夹代表每个子菜单.
通过重新安排"工作区菜单"文件夹的内容,可重新安排"工作区菜单".
第16章定制工作区管理器2492.
将任何想要移动的菜单项拖放到该子文件夹下的新位置.
有关在"树视图"模式下使用"文件管理器"的帮助,请参见《Solaris公共桌面环境:用户指南》.
3.
把不需要的菜单项文件拖到"前面板"的"垃圾篓"中,将其删除.
250Solaris公用桌面环境:高级用户和系统管理员指南2002年5月4.
通过编辑其文件或文件夹名称,来重命名需要重命名的任何菜单项.
5.
对作出的更改感到满意后,从"文件管理器"的"文件"菜单中选择"更新工作区菜单",并退出"文件管理器".
"工作区菜单"现在反映出在"工作区菜单"文件夹中所作的更改.
M创建新的工作区(根)菜单1.
打开相应的文件,以便进行编辑:I个人:HomeDirectory/.
dt/dtwmrcI系统范围:/etc/dt/config/language/sys.
dtwmrc有关创建这些文件的信息,请参见第244页"工作区管理器配置文件".
2.
创建新菜单:Menumenu_name{.
.
.
}请参见第248页"工作区管理器菜单语法".
3.
创建或编辑按钮绑定来显示新菜单.
如果该菜单替换了现有的菜单,则编辑显示"工作区"菜单的键绑定.
rootf.
menumenu_name如果该菜单是附加菜单,则创建一个新的鼠标按钮绑定.
例如,在背景上同时按Shift键和鼠标按钮3,下面的按钮绑定就显示该菜单:Shiftrootf.
menumenu_name4.
从"工作区"菜单中选择"重新启动工作区管理器".
M创建新的窗口菜单注意:"窗口"菜单内置在"工作区管理器"中,通常不被定制.
为保持窗口性能在应用程序间的一致性,应该避免对"窗口"菜单进行大量的修改.
1.
打开相应的文件,以便进行编辑:I个人:HomeDirectory/.
dt/dtwmrcI系统范围:/etc/dt/config/language/sys.
dtwmrc有关创建这些文件的信息,请参见第244页"工作区管理器配置文件".
第16章定制工作区管理器2512.
创建新的菜单:Menumenu_name{.
.
.
}3.
使用windowMenu资源指定新的菜单:Dtwm*windowMenu:menu_name4.
从"工作区"菜单中选择"重新启动工作区管理器".
定制按钮绑定按钮绑定及可能的键盘修改键与窗口管理器功能相关联.
按钮绑定适用于所有的工作区.
桌面缺省按钮绑定定义在"工作区管理器"配置文件中的名为DtButtonBindings按钮绑定集之中:按钮DtButtonBindings{.
.
.
}按钮绑定语法按钮绑定的语法是:ButtonsButtonBindingSetName{[modier]contextfunction[argument][modier]contextfunction[argument]其中:button_name—Btn1—鼠标左键Btn2—中间键(三键鼠标)或两键(双键鼠标)Btn3—右键Btn4—在三键鼠标上同时按住键1和键2Btn5—在三键鼠标上同时按住键2和键3modier—Ctrl、Shift、Alt、Lockmouse_action—Down—按住鼠标;键Up—释放鼠标按钮;Click—按下然后释放鼠标键;Click2—双击鼠标键;Drag—当按住鼠标键时拖动鼠标context—表示绑定生效时指针必须在的位置.
必要时,使用"|"字符将多个内容分开.

252Solaris公用桌面环境:高级用户和系统管理员指南2002年5月root—工作区窗口;window—客户窗口或窗框;frame—窗框架,不包括内容;icon—图标;title—标题栏;app—客户窗口(不包括框架)function—窗口管理器功能之一.
有关有效功能的列表,请参考dtwmrc(4)手册页.
argument—任何需要的窗口管理器的功能变量.
有关详细信息,请参考dtwmrc(4)手册页.
例如,当指针位于工作区窗口(而不在客户窗口)中,按鼠标键3时,下面的行显示DtRootMenu中描述的菜单.
rootf.
menuDtRootMenu注意:有关按钮绑定语法的完整信息,请参见dtwmrc(4)手册页.
M添加按钮绑定1.
打开相应的文件,以便进行编辑:I个人:HomeDirectory/.
dt/dtwmrcI系统范围:/etc/dt/config/language/sys.
dtwmrc有关创建这些文件的信息,请参见第244页"工作区管理器配置文件".
2.
将按钮绑定添加到DtButtonBindings定义中.
不要将相同按钮绑定到单击和按下操作的不同的功能.
也不要将多个功能绑定到相同的按钮和上下文.
3.
从"工作区"菜单中选择"重新启动工作区管理器".
M创建新的按钮绑定集1.
打开相应的文件,以便进行编辑:I个人:HomeDirectory/.
dt/dtwmrcI系统范围:/etc/dt/config/language/sys.
dtwmrc有关创建这些文件的信息,请参见第244页"工作区管理器配置文件".
2.
创建新的按钮绑定集.
请参见第252页"按钮绑定语法".
3.
将buttonBindings资源设置为新的名称:Dtwm*buttonBindings:ButtonBindingsSetName4.
从"工作区"菜单中选择"重新启动工作区管理器".
第16章定制工作区管理器253注意:新的按钮绑定将替换现有的按钮绑定.
从DtButtonBindings复制要保留的按钮绑定.
定制键绑定键盘绑定,也称作键绑定,将键的组合与"工作区管理器"功能相关联.
键绑定适用于所有工作区.
注意:使用公共键组合作为键盘绑定时要小心.
例如,Shift-A一般是在当前窗口中输入字母"A".
如果将Shift-A绑定到某功能,将失去它的正常用法.
缺省的桌面键绑定桌面缺省的键绑定定义在"工作区管理器"配置文件中,在名为DtKeyBindings键绑定集中:KeysDtKeyBindings{.
.
.
}键绑定语法键绑定的语法是:KeysKeyBindingSetName{[Modiers]key_namecontextfunction[argument][Modiers]key_namecontextfunction[argument].
.
.
}其中:Modiers—Ctrl、Shift、Alt和Lock.
允许多个修饰符;用空格把它们分开.
key_name—功能所映射的键.
对于字母键或数字键,key_name名称通常打印在键上.
例如,"a"键的名称为"a",而"2"键的名称为"2".
"Tab"键名为"Tab".
"F3"键名为"F3".

至于其他键,其名称被拼写出来—例如,plus为"+"键.
位于与系统相关的目录中的文件keysymdef.
h,包含了有关键名的附加信息.
254Solaris公用桌面环境:高级用户和系统管理员指南2002年5月context—该元素必须具有使该操作生效的键盘焦点.
如果绑定适用于不止一个上下文,则这些可并置在一起.
多个上下文用"|"字符分开.
root—工作区背景;window—客户窗口;icon—图标function—窗口管理器功能.
有关有效功能的列表,请参考dtwmrc(4)手册页.
argument—任何需要的窗口管理器的功能变量.
有关详细信息,请参考dtwmrc(4)手册页.
例如,下面的键绑定使用户通过按Alt+F6,将键盘焦点切换到应用程序中下一个瞬态窗口.
AltF6windowf.
next_keytransient注意:有关键绑定的完整信息,请参见dtwmrc(4)手册页.
M创建定制键绑定集1.
打开相应的文件,以便进行编辑:I个人:HomeDirectory/.
dt/dtwmrcI系统范围:/etc/dt/config/language/sys.
dtwmrc有关创建这些文件的信息,请参见第244页"工作区管理器配置文件".
2.
用专用的KeyBindingSetName创建新的键绑定集.
使用桌面缺省的键绑定集DtKeyBindings作为指南.
3.
将keyBindings资源设置为新的集名称:Dtwm*keyBindings:KeyBindingSetName4.
从"工作区"菜单中选择"重新启动工作区管理器".
注意:新的键绑定将替换现有的键绑定.
将任何要保留的键绑定从DtKeyBindings复制到新集中.
第16章定制工作区管理器255在缺省和定制的性能之间切换在Motif缺省和CDE桌面窗口性能之间切换:1.
按Alt+Shift+Ctrl+!
2.
在对话框中单击"确定".
切换到缺省性能的操作会去除"前面板"和任何定制键和按钮绑定.
256Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第17章管理应用程序资源、字体和颜色通过使用"式样管理器"或者通过定制附加字体和颜色资源,可为显示器选择广泛的颜色和字体范围.
本章讨论如何定制字体和颜色资源.
本章还描述如何指定DtEditor小部件应用程序,例如桌面文本编辑器(dtpad)和邮件程序(dtmail)的式样转换以及与这些转换冲突的DtEditor小部件应用程序菜单加速器的替换物.
I第257页"设置应用程序资源"I第258页"定义UNIX绑定"I第262页"管理字体"I第267页"管理颜色"I第274页"设置应用程序窗口的阴影厚度"设置应用程序资源资源被应用程序用以设置外观和性能的某种特征.
例如,"式样管理器"(dtstyle)提供这样的资源,它使您可以指定系统在何处寻找包含颜色调色板信息的文件:dtstyle*paletteDirectories:/usr/dt/palettes/CHomeDirectory/.
dt/palettes桌面应用程序的App-default文件位于/usr/dt/app-defaults/language目录.
M设置系统范围的资源G向文件/etc/dt/config/language/sys.
resources添加资源.
(可能必需创建文件.
)例如,如果在/etc/dt/config/C/sys.
resources中指定:AnApplication*resource:value257则在下次登录时,资源AnApplication*resource将被设置在每个用户的RESOURCE_MANAGER特性中.
注意:有关"式样管理器"资源的详细信息,请参见dtstyle手册页.
有关"邮件程序"资源的详细信息,请参见dtmail手册页.
M设置个人资源1.
将资源文件添加到文件HomeDirectory/.
Xdefaults.
2.
双击Desktop_Tools应用程序组中的"重新装入资源".
桌面如何装入资源资源在"会话管理器"启动会话时装入.
有关"会话管理器"如何将资源装入RESOURCE_MANAGER的信息,请参见,第42页"装入会话资源".
进程管理器资源下面的进程管理器资源可用:IsampleNowTRIpostPopupMenuTRIselectNextProcessTRIselectPrevProcessTRIselectFirstProcessTRIselectLastProcessTRIkillSelectedProcessTR定义UNIX绑定缺省时UNIX绑定不可用.
M指定EMACS式样转换下面的过程指定了:258Solaris公用桌面环境:高级用户和系统管理员指南2002年5月IDtEditor小部件应用程序,例如桌面文本编辑器(dtpad)和邮件程序(dtmail)的EMACS式样转换I与这些转换冲突的DtEditor小部件应用程序菜单加速器的替换物.
1.
在文件HomeDirectory/.
Xdefaults中添加下行:#include"/usr/dt/app-defaults/language/UNIXbindings"其中language是LANG环境变量的值.
2.
重新启动会话.
M修改EMACS-Style转换1.
将文件/usr/dt/app-defaults/language/UNIXbindings的内容插入HomeDirectory/.
Xdefaults.
2.
在.
Xdefaults文件中编辑绑定.
3.
完成后重新启动会话.
由UNIXbindings文件提供的UNIXbindings绑定/usr/dt/app-defaults/language/UNIXbindings文件提供的绑定如下表所述.
注意:当UNIX绑定启用时,"Delete"键删除前一个字符,而"Shift-Delete"键删除下一个字符.
表17–1列出和UNIX绑定冲突的菜单加速器和加速器文本的dtpad覆盖.
表17–1dtpad覆盖菜单加速器和加速器文本覆盖Dtpad*fileMenu.
print.
acceleratorText:Dtpad*fileMenu.
print.
accelerator:Dtpad*editMenu.
undo.
acceleratorText:Ctrl+_Dtpad*editMenu.
undo.
accelerator:Ctrl_Dtpad*editMenu.
paste.
acceleratorText:Shift+InsertDtpad*editMenu.
paste.
accelerator:ShiftosfInsert第17章管理应用程序资源、字体和颜色259表17–1dtpad覆盖(续下)菜单加速器和加速器文本覆盖Dtpad*editMenu.
findChange.
acceleratorText:Ctrl+SDtpad*editMenu.
findChange.
accelerator:Ctrls表17–2列出和UNIX绑定冲突的菜单加速器和加速器文本的dtmail创作窗口的覆盖.
表17–2dtmail创作窗口覆盖菜单加速器和加速器文本覆盖Dtmail*ComposeDialog*menubar*Edit.
Undo.
acceleratorText:Ctrl+_Dtmail*ComposeDialog*menubar*Edit.
Undo.
accelerator:Ctrl_Dtmail*ComposeDialog*menubar*Edit.
Paste.
acceleratorText:Shift+InsertDtmail*ComposeDialog*menubar*Edit.
Paste.
accelerator:ShiftosfInsertDtmail*ComposeDialog*menubar*Edit.
Find/Change.
acceleratorText:Ctrl+SDtmail*ComposeDialog*menubar*Edit.
Find/Change.
accelerator:Ctrls下面的转换提供(GNU式样)EMACS控制和元键绑定以及一些附加绑定.
在适当的时候,它们也允许"Shift"键和正常绑定进行组合使用,以便反转操作的方向.
例如,"Ctrl+Shift+F"键将使光标后移一个字符,而正常情况下,"Ctrl+F"键使光标前移一个字符.
附加绑定是:Ctrl+comma—后移一个单词Ctrl+Shift+comma—前移一个单词Ctrl+period—前移一个单词Ctrl+Shift+period—后移一个单词Ctrl+Return—文件结尾Ctrl+Shift+Return—文件开头GNUEMACS将delete-previous-character(),而不是delete-next-character()绑定到"Delete"键.
正常情况下,"Meta+F"是文件菜单的助记符,所以将忽略forward-word()的绑定.
使用forward-word的其它一种绑定(例如,Ctrl+period).
表17–3列出DtEditor.
text转换260Solaris公用桌面环境:高级用户和系统管理员指南2002年5月表17–3DtEditor.
text转换修饰符键键操作例程c~sa:行开头()\n\csa:行结尾()\n\c~sb:向后一个字符()\n\csb:向前一个字符()\n\c~sb:向后一个字符()\n\csb:向后一词()\n\m~sb:向后一词()\n\msb:向前一词()\n\c~sd:删除下一个字符()\n\csd:删除前一字符()\n\m~sd:kill(删除)下一个词()\n\msd:kill(删除)前一个词()\n\c~se:行结尾()\n\cse:行开头()\n\c~sf:向前一个字符()\n\csf:向后一个字符()\n\m~sf:向前一词()\n\msf:向后一词()\n\cj:新行并缩进()\n\c~sk:kill(删)到行结尾()\n\csk:kill(删)到行开头()\n\cl:重画显示()\n\cm:新行()\n\csn:进程继续()\n\c~sn:进程关闭()\n\co:新行并备份()\n\c~sp:进程继续()\n\csp:进程关闭()\n\第17章管理应用程序资源、字体和颜色261表17–3DtEditor.
text转换(续下)修饰符键键操作例程c~su:kill(删)到行开头()\n\csu:kill(删)到行结尾()\n\c~sv:下一页()\n\csv:前一页()\n\m~sv:前一页()\n\msv:下一页()\n\cw:kill(删除)选择部分()\n\c~sy:unkill(不删除)()\n\m]:向前一段()\n\m[:向后一段()\n\c~scomma:向后一词()\n\cscomma:向前一词()\n\m\\period:向前一词()\n\csperiod:向后一词()\n\m\\>:文件结尾()\n\c~sReturn:文件结尾()\n\csReturn:文件开头()\n\~c~s~m~aosfDelete:删除前一字符()\n\~cs~m~aosfDelete:删除下一字符()管理字体使用"式样管理器字体"对话框,可以选择为所有应用程序所要的字体组和字体大小.
也可以在命令行中指定字体,或使用资源来:I设置单个应用程序的字体资源I指定不同字体供"字体"对话框使用字体是一种文本字符被打印和显示的类型式样.
桌面包含各种不同式样和大小的字体.

262Solaris公用桌面环境:高级用户和系统管理员指南2002年5月位图字体是由点的矩阵组成.
(缺省情况下,"式样管理器"只配置位图字体.
)字体完全包含在一个文件中.
要有一整套不同的大小、倾斜度和磅值,需要很多文件.

字体被指定为资源的值和命令的参数.
"X逻辑字体描述"(XLFD)名称是请求所需字体的方法.
系统查找到与它所给的描述最匹配的字体.
设置桌面字体资源"式样管理器字体"对话框使您可为类似文本输入和标签这样的事物选择字体(多达七种大小).
也可使您添加或删除字体组.
由字体对话框设置的资源选中字体后,下面的资源写到RESOURCE_MANAGER特性中:I系统字体用于系统区域,象菜单条、菜单窗格、按钮、切换按钮以及标签.
下面的资源由系统字体设置:*FontList—显示在桌面客户机和用OSF/Motif工具包创建的其他客户机的系统区域中.
I用户字体用于窗口的文本输入.
下面的资源由用户字体设置:*Font—支持X应用程序的较早版本*FontSet—主设置*XmText*FontList—显示在文本输入框中*XmTextField*FontList—显示在文本输入框中字体对话框所使用的资源用于字体对话框中每个选择的字体在/usr/dt/app-defaults/Dtstyle资源文件中指定.
最多可指定七种大小.
NumFonts—字体对话框中字体大小的数字.
SystemFont[1-7]—最多七种资源,将特定字体指定给某一"字体"对话框选择,以作为系统字体UserFont[1-7]—最多七种资源,将特定字体指定给某一"字体"对话框选择,以作为用户字体第17章管理应用程序资源、字体和颜色263注意:已选择了这些资源的缺省字体,以便满足在各种显示器上的可读性.
如果要在应用程序中使用特定字体,请使用应用程序字体资源设置字体,而不要更改这些桌面字体.
有关应用程序字体的详细信息,请参见DtStdAppFontNames(5)和DtStdInterfaceFontNames(5)手册页.
M列出可用的字体1.
键入下面的命令:xlsfonts[-options][-fnpattern]显示了系统中可用的XLFD名称和字体别名的列表.
位图字体在全部14个XLFD字段中的显示值.
可缩放字样在PixelSize,PointSize,ResolutionX和ResolutionY位置显示0.
2.
要检查特定字体,请使用xlsfonts的模式匹配能力.
在不打算匹配的模式部分使用通配符来代替.
3.
如果xlsfonts未显示任何以dt开头的字体名,则字体路径未包含桌面字体.
键入下面的命令,将桌面字体包含到可用字体中:xset+fp目录名其中目录名是包含桌面字体的目录.
会话启动所设置的缺省位置为/usr/dt/config/xfonts/language.
有关附加信息:Ixset和xlsfonts手册页列出可用的选项.
I使用XWindow系统解释字体别名和xset客户.
M在命令行上指定字体G使用-xrm命令行选项来指定特定客户的字体资源.
例如:applicationname-xrm"*bitstream-charter-medium-r-normal-8-88-75-75-p-45-iso8859-1"X逻辑字体描述(XLFD)通过列出14个不同的字符来指定字体,每个字符间用破折号(-)隔开.
这称作X逻辑字体描述(XLFD).
在某些情况下,列表中的特性可由一个*通配符代替,并且,特性中的一个字符可由一个通配符代替.
表17–4列出字体特性字符串说明.
特性字符串说明的形式是:264Solaris公用桌面环境:高级用户和系统管理员指南2002年5月"-Foundry-FamilyName-WeightName-Slant-SetwidthName-AddStyleName-PixelSize-PointSize-ResolutionX-ResolutionY-Spacing-AverageWidth-CharSetRegistry-CharSetCoding"表17–4字体特性字符串说明特性字符串定义Foundry标识字体设计者的字符串FamilyName标识字体的注册商标名称的字符串WeightName给出字体的相对磅值(例如粗体)的字符串Slant描述倾斜方向的代码:R(Roman–无倾斜)I(斜体–向右倾斜)O(倾斜–向右倾斜)RI(反转斜体–向左倾斜)RO(反转倾斜–向左倾斜)SetwidthName描述宽度(例如压缩或扩展)的字符串AddStyleName提供唯一标识字体所需要的任何附加信息的字符串PixelSize以像素为单位,给出em-square大小的整数PointSize以小数点为单位,给出em-square大小的整数ResolutionX以像素为单位,给出水平分辨率的整数ResolutionY以像素为单位,给出垂直分辨率的整数Spacing指定单元间的间隔的代码:M(等间隔--固定间距)P(比例间隔--变化间距)C(字符单元)AverageWidth以1/10个像素为单位,给出平均宽度的整数CharSetRegistry标识已注册了字体编码的注册授权的字符串CharSetEncoding在指定注册中标识字符集的字符串实例下面的XLFD名称描述了名为charter的字体,它是由支持ISO8859-1标准编码的Bitstream生成的:-bitstream-charter-medium-r-normal--8-80-75-75-p-45-iso8859-1第17章管理应用程序资源、字体和颜色265它具有中等磅值,没有特殊倾斜,并且为正常宽度.
字体是成比例的,具有8个像素或8个点的em-square框.
水平和垂直分辨率都是75个像素.
字符的平均宽度为45个1/10像素或4.
5个像素.
此字符串的一部分可由通配符代替.
系统使用找到的第一个与您指定的部分相匹配的字体.
如果您需要的只是8像素的charter字体,可使用:*-charter-8-*查看选定的字体组属性通过从"式样管理器字体"对话框中选择"属性"按钮,可以查看下面的字体组的属性:I字体组I大小I别名I别名XLFDI别名位置I字体I字体XLFD用户的字体组文件系统存储当用户添加字体组时,它被存储在下面的位置:HomeDirectory/.
dt/sdtfonts/host/locale/typeface-nnnnnnhost是本地工作站的主机名locale是用户的当前语言环境,像"C"或"ja".
typeface-nnnnnn是由选中的字体和唯一生成的数字派生的名称此字体组目录包含下面的三个文件Ifonts.
aliasIfonts.
dirIsdtfonts.
group文件fonts.
alias和fonts.
dir是标准的X11字体文件,适于添加到X服务器的字体路径.
sdtfonts.
group文件包含用户指定的字体组名称.
266Solaris公用桌面环境:高级用户和系统管理员指南2002年5月系统管理员字体组创建这样其他的用户可以访问工作站上的字体组,系统管理员可将字体组复制到/etc/dt/sdtfonts/locale目录或复制到/usr/openwin/lib/X11/stdfonts/locale目录.
"会话管理器"首先在HomeDirectory/.
dt/stdfonts/host/locale中查找,接着在/etc/dt/sdtfonts/locale中查找,最后是在/usr/openwin/lib/X11/stdfonts/locale中查找.
管理颜色本节描述:I"式样管理器"如何设置显示颜色.
I"式样管理器"用于控制桌面颜色用法所使用的资源.
颜色调色板调色板由一组颜色集组成.
当前调色板的颜色集显示在"式样管理器颜色"对话框中每个调色板都有一个相对应的文件.
paletteDirectories资源指定了包含调色板文件的目录.
缺省情况下,此资源包含:I内置调色板:/usr/dt/palettesI系统范围调色板:/etc/dt/palettesI个人调色板:HomeDirectory/.
dt/palettes颜色集在"式样管理器"的"颜色"对话框中,当前调色板中的每个颜色集由一个颜色按钮代表.

每种颜色由一个颜色集ID—从1到8的数字,来标识.
第17章管理应用程序资源、字体和颜色267图形17–1HIGH_COLOR的颜色集ID值每个颜色集最多由五种颜色组成.
每个颜色按钮显示颜色集的背景颜色.
每个颜色集中的五种颜色代表下面的显示组件资源:前景—应用程序窗口或窗框的前景.
它总是黑色或白色.
这一般是用于窗口和标题内的文本.
背景—应用程序或窗框的背景.
topShadowColor—应用程序控制(如按钮)和窗框架的顶部和左bevel(斜面)的颜色.
bottomShadowColor—应用程序控制和窗框架的底部和右bevel(斜面)的颜色.
selectColor—指示某些控制活动的活跃状态的颜色,象活动的切换和按钮.

每个调色板所使用的颜色集的数目取决于colorUse资源,用户可以使用"式样管理器要用颜色数目"对话框来设置其数目.
指定颜色值在向其调色板文件写入颜色信息时,"式样管理器"使用RGB值.
RGB数的语法为:#RedGreenBlueRed、Green和Blue是十六进制数,每个1到4位长,这表示所使用的颜色的数目.
每个颜色必须具有相同的位数.
这样,有效的颜色值由3、6、9或12个十六进制位组成.
例如,白色可用下面的任一方式来指定:268Solaris公用桌面环境:高级用户和系统管理员指南2002年5月#fff#ffffff#fffffffff#fffffffffffff如果直接设置颜色资源,可使用颜色名称或RGB值.
文件/usr/lib/X11/rgb.
txt列出了全部已命名的颜色.
颜色集如何映射到资源桌面通过资源将颜色集映射到各种显示单元,并作出如表17–5所示的指定.
表17–5将颜色集映射到资源的资源显示单元activeColorSetId活动窗框颜色inactiveColorSetId非活动窗框颜色textColorSetId文本输入区primaryColorSetId应用程序的主背景区secondaryColorSetId应用程序的菜单条、菜单和对话框这些资源将颜色集ID作为它们的值.
当使用"式样管理器"选定新的调色板时,带有颜色集IDs的彩色显示单元允许单元动态地更改为新的颜色方案.
可将这些资源用于单个应用程序.
例如,下行显示如何通过使用颜色集8作为窗口的主颜色,将所有的dtterm窗口可视地分组.
dtterm*primaryColorSetId:8缺省颜色集赋值用于显示单元的颜色集IDs取决于在"式样管理器"中颜色设置的数目:表17–6显示高保真彩色(8个颜色集)的颜色集IDs—"式样管理器"设置为"桌面使用更多颜色".
表17–6高保真彩色颜色集ID显示单元1活动窗框颜色2非活动窗框颜色第17章管理应用程序资源、字体和颜色269表17–6高保真彩色(续下)颜色集ID显示单元3未用(缺省情况下)4文本输入区5应用程序的主背景区6应用程序的菜单条、菜单和对话框7缺省情况下未用8"前面板"背景表17–7显示中某彩色(4个颜色集)的颜色集IDs—"式样管理器"设置为"应用程序使用更多颜色".
表17–7中等彩色颜色集ID显示单元1活动窗框颜色2非活动窗框颜色3"应用程序"和"前面板"背景颜色4文本输入区表17–8显示低彩色(2个颜色集)的颜色IDs—"式样管理器"设置为"应用程序使用大多数颜色".
表17–8低彩色颜色集ID显示单元1活动窗框,工作区选择按钮2所有其他显示单元用式样管理器控制颜色可以通过"式样管理器"动态地更改桌面应用程序和其他合作应用程序的颜色.
由"式样管理器"设置的前景和背景颜色可用于非合作应用程序.
对于这些客户程序而言,要响应"式样管理器"的颜色更改,客户机程序必须在使用桌面Motif库.
用其他工具包写入的客户机程序无法动态地更改颜色来响应"式样管理器"的更改.
对于客户机程序的颜色更改只有在重新启动客户机程序后才生效.
必须不存在其它特别的颜色资源适用于客户程序.
这包括指定用户的资源、appdefaults(应用缺省)和在应用程序中内置的资源.
270Solaris公用桌面环境:高级用户和系统管理员指南2002年5月客户机程序可指定primaryColorSetId和secondaryColorSetId资源在桌面调色板中使用某些颜色.
式样管理器所用的颜色数目"式样管理器"所使用的颜色数取决于下面的资源的值:colorUse—配置桌面所使用的颜色数shadowPixmaps—指示桌面用像素图来替换这两种阴影颜色foregroundColor—指定前景颜色是否动态地更改dynamicColor—当切换调色板时控制应用程序是否更改颜色表17–9列出由桌面分配的最大颜色数.
表17–9桌面颜色的数目显示最大颜色数数字采自B_W2黑色和白色LOW_COLOR12两个颜色集乘以五种颜色,再加上黑色和白色MEDIUM_COLOR22四个颜色集乘以五种颜色,再加上黑色和白色HIGH_COLOR42八个颜色集乘以五种颜色,再加上黑色和白色要决定最大颜色数:1.
将调色板中颜色集的数目与每个颜色集中的颜色数相乘.
2.
加上2(用于黑色和白色).
但是,在下面的配置情况下,在调色板中将只有十种颜色:四个颜色集乘以每个集中的两种颜色(background和selectColor),再加上黑色和白色:*colorUse:MEDIUM_COLOR*shadowPixmaps:True*foregroundColor:White注意:多重颜色图标使用14种附加颜色.
第17章管理应用程序资源、字体和颜色271colorUse资源colorUse资源的缺省值是MEDIUM_COLOR.
此资源的值影响在调色板中使用的颜色集的数目.
其他资源影响用于制造阴影的颜色数.
colorUse资源的值也影响多重颜色图标的使用.
值描述B_W"黑色和白色""式样管理器"将"显示"用1到3个颜色平面设置颜色集的数目:2最大颜色数:2缺省颜色数:2无多重颜色图标LOW_COLOR"应用程序使用大多数颜色""式样管理器"将"显示"用4到5个颜色平面设置颜色集的数目:2最大颜色数:12缺省颜色数:12无多重颜色图标MEDIUM_COLOR"应用程序使用更多颜色""式样管理器"将"显示"用6个颜色平面设置颜色集的数目:4最大颜色数:22缺省颜色数:22多重颜色图标HIGH_COLOR"桌面使用更多颜色""式样管理器"将"显示"用7个或更多个颜色平面设置颜色集的数目:8最大颜色数:42缺省颜色数:42多重颜色图标缺省桌面为显示选择正确的值.
(为减少桌面用于高保真彩色的颜色数,缺省的colorUse资源设置为MEDIUM_COLOR.
)shadowPixmaps资源shadowPixmaps资源指示桌面用像素图来代替两个阴影颜色.
这些像素图将黑色或白色与背景颜色相混合,以便模拟顶部或底部阴影值.
这将需要的颜色数减少了两个,因为不需要为阴影颜色分配颜色单元.
值描述真桌面创建topShadowPixmap和bottomShadowPixmap来代替阴影颜色使用.
假从调色板使用topShadowColor和bottomShadowColor.
shadowPixmaps的缺省值取决于您的colorUse资源和显示器的硬件支持.
272Solaris公用桌面环境:高级用户和系统管理员指南2002年5月foregroundColor资源foregroundColor资源指定在调色板中前景是如何配置的.
设置结果白色前景设置为白色.
黑色前景设置为黑色.
动态(缺省)前景被动态地设置为黑色或白色,取决于background的值.
例如,白色字母在黄色背景上很难阅读,所以系统选择黑色.
如果foregroundColor被设置为黑色或白色,则颜色集中的颜色数将减少一个,并且前景将不随背景颜色的更改而更改.
foregroundColor的缺省值是动态的,但在colorUse的值为B_W的地方例外.
dynamicColor资源dynamicColor资源控制应用程序是否动态地更改颜色;就是说,当切换调色板时,客户机程序是否更改颜色.
值描述真当选中新的调色板时,客户机程序动态地更改颜色.
这是缺省值.
假客户机程序不动态地更改颜色.
当选中了新的调色板时,客户机程序将在会话重新启动时,使用新的颜色.
当dynamicColor资源的值为"真"时,不能动态地更改颜色的客户程序(non-Motif应用程序)与能动态地更改颜色的客户程序在颜色颜色影射图中分配不同的单元,即使您看到相同的颜色.
注意:由于所有的客户机程序可以共享相同的颜色单元,将dynamicColor设置为"假"将减少桌面消耗的颜色数.
第17章管理应用程序资源、字体和颜色273设置应用程序窗口的阴影厚度桌面定义在应用程序窗口中的组件的缺省阴影厚度为一个像素,这些组件包括按钮阴影和焦点高亮显示.
Motif1.
2应用程序使用此资源值;其他应用程序可能未获得此资源值,因而在显示上将有所不同.
将non-Motif1.
2应用程序的阴影厚度设置为一个像素:1.
以超级用户登录.
2.
创建/etc/dt/config/language/sys.
resources文件.
3.
在/etc/dt/config/language/sys.
resources中指定应用程序专用的资源如下:application_class_name*XmCascadeButton*shadowThickness:1有关为所有桌面用户覆盖系统缺省资源和指定附加资源的详细信息,请参见第42页"装入会话资源"274Solaris公用桌面环境:高级用户和系统管理员指南2002年5月第18章配置本地化的桌面会话如果要配置本地化的桌面会话,需要:I设置LANG环境变量及其他"国家语言支持"(NLS)环境变量I访问与语言相关的消息目录和资源文件I通过国际化系统,远程执行应用程序I第275页"管理LANG环境变量"I第278页"查找字体"I第278页"本地化app-defaults资源文件"I第278页"本地化操作和数据类型"I第279页"本地化图标和位图"I第280页"本地化帮助卷"I第281页"本地化信息目录"I第281页"远程执行本地化了的桌面应用程序"I第281页"重新设置键盘映射"管理LANG环境变量要使用操作系统中对语言敏感的例程,就必须为桌面设置LANG环境变量.
桌面支持:I西欧及拉丁语系语言I日语I繁体中文I简体中文I韩语注意:桌面供应商可能已经添加了对其他类型语言的支持.
275可以将LANG设置为操作系统所支持的任何值.
登录屏幕中的"选项"菜单显示了系统所支持的语言和地区列表.
为桌面设置LANG的方法有四种:I编辑Xconfig文件中的资源I使用登录屏幕中的"选项"菜单I创建可执行的sh或ksh的Xsession.
d脚本.
(有关使用Xsession.
d脚本的详细信息,请参见第39页"查找Xsession.
d脚本".
)I通过编辑用户的.
dtprofile文件当设置完LANG后,桌面使用下面的与语言相关的文件来决定本地化接口.
颜色—/usr/dt/palettes/desc.
language背景—/usr/dt/backdrops/desc.
language为多个用户设置语言如果通过Xconfig文件来设置语言,登录屏幕将本地化,并为所有用户设置了LANG.
该方法是在多重显示器系统中为所有显示器更改LANG的唯一方法.
(要修改Xconfig,请将/usr/dt/config/Xconfig复制到/etc/dt/config/Xconfig.
)设置语言的方法是,在/etc/dt/config/Xconfig文件中插入如下一行:dtlogin.
host_display.
language:language例如,下面一行将显示器my_host:0中的LANG设置为Swedish_locale.
dtlogin.
my_host_0.
language:Swedish_localedtlogin客户机程序读取该语言相应的消息目录,并调用本地化的登录屏幕.
然后,dtlogin客户机程序使用/etc/dt/config/Xresources资源文件中的如下资源来决定语言环境列表:Idtlogin*languageIdtlogin*languageListIdtlogin*languageNameXconfig文件可能需要为所选择的语言来适当设置NLSPATH环境变量.
如果不是这种情况,或者希望自己来设置NLSPATH,请参见第277页"NLSPATH环境变量".
设置一个会话的语言要为一个会话设置语言,请使用登录屏幕"选项"菜单.
登录屏幕将本地化,并为该用户设置了LANG.
在会话结束时,LANG将返回其缺省值(在dtlogin中设置).
276Solaris公用桌面环境:高级用户和系统管理员指南2002年5月设置一个用户的语言用户可以在HomeDirectory/.
dtprofile文件中覆盖登录的LANG设置.
登录屏幕将不会本地化,而为用户设置LANG.
I如果使用sh或ksh:LANG=languageexportLANGI如果使用csh:setenvLANGlanguageLANG环境变量和会话配置LANG环境变量更改了在其中搜索会话配置文件的目录名.
本地化的会话的配置文件为:I/usr/dt/config/language/Xresources("登录管理器"资源文件)I/usr/dt/config/language/sys.
font("会话管理器"资源文件)I/usr/dt/config/language/sys.
resources("会话管理器"资源文件)I/usr/dt/config/language/sys.
session("会话管理器"可执行shell)I/usr/dt/config/language/sys.
dtwmrc("窗口管理器"资源文件)I/usr/dt/appconfig/types/language/dtwm.
fp("窗口管理器"前面板)设置其他的NLS环境变量除了LANG外,还有一些其他的NLS环境变量,例如LC_CTYPE和LC_ALL.
.
这些变量不受dtlogin语言资源或登录屏幕"选项"菜单的影响.
它们必须在下述文件中设置:I系统范围变量:/etc/dt/config/Xsession.
dI个人变量:HomeDirectory/.
dtprofileNLSPATH环境变量NLSPATH环境变量决定了应用程序搜索消息目录的目录路径.
必须将LANG和NLSPATH都设置为使用该消息目录.
有关本地化消息的位置的详细信息,请参考第281页"本地化信息目录".
大多数桌面客户机程序将预先指定NLSPATH启动时的路径.
第18章配置本地化的桌面会话277查找字体桌面包含的字体在/usr/lib/X11/fonts目录中.
每个目录含一个目录文件fonts.
dir和一个别名文件fonts.
alias.
有关创建fonts.
dir和fonts.
alias文件的详细信息,请参见mkfontdir手册页.
要列出服务器上所有可用的字体,请使用xlsfonts命令.
要添加或删除服务器的字体,请使用xset命令.
本地化app-defaults资源文件桌面客户的app-defaults文件的缺省位置为/usr/dt/app-defaults/language.
例如,如果将LANG设置为Swedish_locale,那么应用程序就会在/usr/dt/app-defaults/Swedish_locale中查找app-defaults文件.
如果没有设置LANG,将忽略语言,应用程序在/usr/app-defaults/C目录中寻找其app-defaults文件.
要更改app-defaults文件的位置,请使用XFILESEARCHPATH环境变量.
例如,如果要将app-defaults移动到/users目录中,可将XFILESEARCHPATH变量设置为/usr/app-defaults/language/classname.
如果将XFILESEARCHPATH设置在HomeDirectory/.
dtprofile中,其值对运行的所有桌面和X客户机都适用.
非客户机找不到它们的资源文件,除非将这些文件链接或复制到XFILESEARCHPATH指定的目录.
本地化操作和数据类型注意:要定制/usr/dt/appconfig目录中的文件,可在定制之前将该文件复制到/etc/dt/appconfig目录中.
操作和数据类型定义文件的查找路径包括语言相关的目录:I个人:HomeDirectory/dt/typesI系统范围:/etc/dt/appconfig/types/languageI内置:/usr/dt/appconfig/types/language278Solaris公用桌面环境:高级用户和系统管理员指南2002年5月"应用程序管理器"的配置文件的查找路径是:I个人:HomeDirectory/dt/appmanagerI系统范围:/etc/dt/appconfig/appmanager/languageI内置:/usr/dt/appconfig/appmanager/language该目录下的文件和目录名均被本地化.
本地化图标和位图要本地化图标,可用"图标编辑器"编辑图标,并将它保存在:/etc/dt/appconfig/icons/language如果将它保存在其他目录中,请将XMICONSEARCHPATH环境变量设置为包含保存该图标的目录.
XMICONBMSEARCHPATH环境变量控制着用于搜寻图标的路径.
本地化背景名+背景的本地化是通过使用说明文件(desc.
language和desc.
backdrops)来实现的.
无任何指定的本地化目录(例如/usr/dt/backdrops/language)供背景文件使用.
所有的语言环境使用相同的背景文件集,但是它们有各自的desc.
language文件,其中含有背景的译名.
说明文件包含已翻译的背景名称的资源说明.
例如:Backdrops*Corduroy.
desc:VeloursBackdrops*DarkPaper.
desc:PapierKraftBackdrops*Foreground.
desc:AvantPlandesc.
language文件用以检索关于language语言环境的背景说明,以便在"式样管理器"中显示背景.
如果有描述说明,则它将在"式样管理器"的背景列表中显示.

否则,将使用背景文件名.
用户可以在HomeDirectory/.
dt/backdrops/desc.
backdrops文件中添加自己的背景说明.
该文件用于在忽略语言环境的情况下,检索所有用户添加的背景的背景说明.

说明文件的查找路径是:I个人:HomeDirectory/.
dt/backdrops/desc.
backdropsI系统范围:/etc/dt/backdrops/desc.
language第18章配置本地化的桌面会话279I内置:/usr/dt/backdrops/desc.
language本地化调色板名调色板的本地化是通过使用说明文件(desc.
language和desc.
palettes)实现的.
不存在特定的本地化目录(例如/usr/dt/palettes/language).
所有语言环境使用相同的调色板文件集,但是它们都有各自含有调色板的译名的desc.
palettes文件.
说明文件含有有关调色板译名的资源说明.
例如:Palettes*Cardamon.
desc:CardamonePalettes*Cinnamon.
desc:CannellePalettes*Clove.
desc:Brundesc.
language文件用于检索调色板有关语言环境language的说明,以使在"式样管理器"的列表中显示调色板.
如果有描述说明,它将显示在"式样管理器"的调色板列表中.

spinservers($179/月),1Gbps不限流量服务器,双E5-2630Lv3/64GB/1.6T SSD/圣何塞机房

中秋节快到了,spinservers针对中国用户准备了几款圣何塞机房特别独立服务器,大家知道这家服务器都是高配,这次推出的机器除了配置高以外,默认1Gbps不限制流量,解除了常规机器10TB/月的流量限制,价格每月179美元起,机器自动化上架,一般30分钟内,有基本自助管理功能,带IPMI,支持安装Windows或者Linux操作系统。配置一 $179/月CPU:Dual Intel Xeon E...

御云(RoyalYun):香港CN2 GIA VPS仅7.9元每月起,美国vps仅8.9/月,续费同价,可叠加优惠

御云怎么样?炎炎暑期即将来临,御云(royalyun)香港、美国服务器开启大特惠模式。御云是新成立的云服务提供商,主要提供香港、美国的云服务器,不久将开启虚拟主机业务。我们的香港和美国主机采用CN2 GIA线路。目前,香港cn2 gia vps仅7.9元每月起,美国vps仅8.9/月,续费同价,可叠加优惠,香港云服务器国内延迟一般在50ms左右,是搭建网站的最佳选择,但是请不要用于违法用途。点击进...

酷番云-618云上秒杀,香港1核2M 29/月,高防服务器20M 147/月 50M 450/月,续费同价!

官方网站:点击访问酷番云官网活动方案:优惠方案一(限时秒杀专场)有需要海外的可以看看,比较划算29月,建议年付划算,月付续费不同价,这个专区。国内节点可以看看,性能高IO为主, 比较少见。平常一般就100IO 左右。优惠方案二(高防专场)高防专区主要以高防为主,节点有宿迁,绍兴,成都,宁波等,节点挺多,都支持防火墙自助控制。续费同价以下专场。 优惠方案三(精选物理机)西南地区节点比较划算,赠送5...

日历转换为你推荐
iphone360手机卫士苹果手机支持360手机卫士吗?邮箱打不开怎么办我的邮箱打不开怎么办pwlosera,pw是什么,是不认识的人发的短信。请解释::9flash在“属性”对话框中的“Move”后面的框中输入Flash动画文件的绝对路径及文件名,这句话怎么操作?唱吧电脑版官方下载唱吧有电脑版的么? 在哪里下载啊?xp系统停止服务XP停止服务后该怎么办?宕机宕机是什么意思?bluestackbluestacks下载的东西在哪电子商务网站模板电子商务网站模板哪个好?电子商务网站模板免费建站怎么样?系统分析员考系统分析员有什么好处?
vps交流 域名服务器上存放着internet主机的 burstnet 老鹰主机 windows主机 国外php主机 512av 网络星期一 网站保姆 主机合租 刀片服务器是什么 200g硬盘 cloudlink 美国盐湖城 华为k3 中国联通宽带测试 97rb 七牛云存储 umax ncp 更多