Solaris 公用桌面环境: 高级用户和系统管理员指南

第 16 章 定制工作区管理器

本章描述如何定制桌面"工作区管理器"。

"工作区管理器"是桌面提供的窗口管理器。 类似于其它的窗口管理器,它控制:

另外,"工作区管理器"控制这些桌面组件:

其中许多可以用"式样管理器"更改。"式样管理器" 能够快速而不费力地作经常性更改。 其它资源必须手动设置。

"工作区管理器"是 dtwm。它基于"Motif 窗口 管理器"。

关于设置资源的附加信息,请参阅"设置应用程序资源"

工作区管理器配置文件

"工作区管理器"从配置文件得到关于窗口菜单、工作区菜单、 按钮绑定以及键绑定的信息。

它使用下列文件之一:

"工作区管理器"以上述次序搜索配置文件, 并使用最先找到的那个。

对于使用不止一个会话语言的用户,可以创建个人的、与语言相关 的配置文件 HomeDirectory/.dt/language/dtwrmc, 其优先级高于 HomeDirectory/.dt/dtwmrc

创建或修改个人配置文件

个人的工作区管理器配置文件是 HomeDirectory/.dt/dtwmrc。若该文件存在,则它就是所使用的文件。

  1. 双击 Desktop_Tools 应用程序组中的 Edit Dtwmrc 。

    如果已有个人的 dtwmrc 文件,那么它就被装入 编辑器。如果没有,那么 sys.dtwmrc 就被复制到 HomeDirectory/.dt/dtwmrc 中,然后装入编辑器。

  2. 编辑文件。

  3. 退出编辑器。

    不管文件最初来源如何,它都被保存为个人 dtwmrc

创建系统范围的配置文件

系统范围的"工作区管理器"的配置文件是 /etc/dt/config/language/sys.dtwmrc

    /usr/dt/config/language/sys.dtwmrc 复制到 /etc/dt/config/language/sys.dtwmrc


注意:

如果 HomeDirectory/.dt/dtwmrc 存在,则不使用此文件。


包括(包括)其它文件

    使用语法:

include  	
  {  
		   path   	 
		 path  
	  ...
  }  	 

例如,下列行包含在文件 /users/ellen/mymenu中:

include  	
  {    	 
   /users/ellen/mymenu
  }  	

对于无需复制整个配置文件即可提供附加功能而言,包括语句很有用。例如,用户可能想无需管理 整个配置文件而创建新的键绑定。用户可以创建含有 下列内容的文件 HomeDirectory/.dt/dtwmrc

include  
  {   
   /etc/dt/config/C/sys.dtwmrc   
  }
Keys DtKeyBindings  
  {    
   Alt<Key>F5 root  f.menu  Applications
  }
Menu Applications  
  {    
   "GraphicsApp" f.exec "/usr/bin/GraphicsApp/GApp"    
   ...  
  }

重新启动工作区管理器

为了使对配置文件所作的更改生效,必须重新启动"工作区管理器"。

    从"工作区"菜单选择"重新启动工作区管理器"(当指针落在背景上时,按鼠标按钮 3)。

定制工作区

用户可以用桌面界面完成大多数工作区定制,比如更改工作区名称和工作区的数目等。但是, "工作区管理器"为设置系统范围的缺省值提供了资源。

更改系统范围内的工作区数目

缺省的桌面配置提供四个工作区。用户可使用与工作区开关相关联的弹出式菜单 来添加和删除工作区。

/usr/dt/app-defaults/C/Dtwm 文件将 workspaceCount 设置成下列缺省的工作区数目:

Dtwm*0*workspaceCount: 4 	
 Dtwm*workspaceCount:  1

在屏幕 0 上指定多个工作区。在任何其它屏幕上指定单个的工作区。

可创建(或修改已有的) /etc/dt/config/C/sys.resources 文件,以便为工作站上所有新用户更改缺省的工作区数目。

    使用 0*workspaceCount 资源在主屏幕上 设置系统范围的缺省值:

    Dtwm*0*workspaceCount: 数目
    

例如,下列资源在主屏幕上设置系统范围的工作区数目为 6 :

Dtwm*0*workspaceCount: 6

关于设置"工作区管理器"资源的信息,请参阅"设置应用程序资源"

例如,下列资源设置工作区数目为 6 :

	Dtwm*workspaceCount: 6

提供系统范围的工作区名称

在内部,工作区按编号惯例wsn编号,其中 n 是 0、1、2等等。例如,缺省的 四个工作区在内部被编号为 ws0ws3

    使用标题资源更改指定工作区的名称:

	Dtwm*wsn: 名称

关于设置"工作区管理器"资源的信息,请参阅"设置应用程序资源"

例如,下列资源将缺省的四个工作区设置为指定的名称:

Dtwm*ws0*title:	Anna 
Dtwm*ws1*title:	Don 
Dtwm*ws2*title:	Julia 
Dtwm*ws3*title:	Patti

创建附加的背景

  1. 创建背景图象。它们可以是位图或象素图文件。

  2. 将背景放进下列目录之一。(可能需要创建此目录。)

    • 系统范围背景:/etc/dt/backdrops

    • 个人背景:HomeDirectory/.dt/backdrops

  3. 从"工作区"菜单选择"重新启动工作区管理器"。

    系统范围和个人的背景被添加到 /usr/dt/backdrops 中的内置背景中。

    可以创建与其同名的个人或系统范围背景,来替换现有的内置背景。

用图形图象替换背景

背景被迭置在显示的根窗口之上。"式样管理器背景"对话框提供"无背景"设置,在此设置下,背景 为透明的。

在所有的工作区背景后面只有一个根窗口。因此,放置在根窗口中的图形图象始终保持在所有的工作区中。 可以指定哪些工作区用背景覆盖根窗口。然而,当"无背景"有效时,每个工作区 可见的图象是相同的。

  1. 创建图形图象。

    图象必须是有工具能够在根窗口中将其显示出来的格式。例如,如果要使用 xsetroot,必须创建一个位图文件。

  2. 如果它还不存在,就要创建一个可执行文件 HomeDirectory/.dt/sessions/sessionetc

    sessionetc 文件在用户每次登录时运行。

  3. sessionetc 文件中放置用于显示图象的命令。

    例如,下列命令用指定的位图平铺根窗口:

    	xsetroot -bitmap /users/ellen/.dt/icons/root.bm

工作区管理器菜单

"工作区管理器"有三个缺省菜单:

工作区菜单-又称作根菜单。当指针落在背景上时,用户按鼠标按钮 3 ,即显示该菜单。该菜单通过按钮绑定与鼠标按钮相关联。

窗口菜单-用户在指针位于"窗口"菜单按钮(窗框的左上角)上时按鼠标按钮 1 或 3,即显示该菜单。该菜单通过 windowMenu 资源与按钮相关联。

前面板菜单-用户在指针位于"前面板"的"窗口"菜单按钮上时按鼠标按钮 1 或 3,即显示该菜单。

工作区管理器菜单语法

"工作区管理器"菜单具有下列语法:

Menu MenuName  
  {     
   selection1 [mnemonic] [accelerator] function [argument]     
   selection2 [mnemonic] [accelerator]function [argument]     
   ... 
  } 

其中:

selection-出现在菜单中的文本或位图。如果文本包含 空格,就用引号将文本括起。对于位图,使用语法 @/path

mnemonic-是显示菜单时用作键盘快捷方式 的单个字符。在 form _character 中指定。

accelerator-无论菜单是否显示, 键盘快捷方式都是活动的。加速器具有语法 modifier <Key> Keyname ,其中modifier 是 CtrlShiftAlt(扩展字符)或 Lock。关于所有可能键名称的列表, 请参阅 "X11 include"目录中的 keysymdef.h 文件。

function-作出选择后要执行的功能。 关于功能的列表,请参阅 dtwmrc(4) 的手册页。

argument-函数参数。关于进一步细节, 请参阅 dtwmrc(4) 的手册页。

例如,下列标记为"恢复"的菜单项使窗口 normalize(规范化)。在显示菜单时,键入"R"也将恢复窗口。按"扩展"字符 F5 键也将恢复窗口。

Restore   _R   Alt<Key> F5   f.normalize

注意:

关于"工作区管理器"菜单语法的完整信息,请参阅 dtwmrc(4) 的手册页。


向工作区菜单添加新的菜单项

  1. 单击"前面板"的"工具"子面板中的"向菜单添加项"控制。

    显示"向工作区菜单添加项"对话框。

    Graphic

  2. 键入完整路径,或者单击"浏览"并选择新菜单项所要运行的文件的路径。

    所指向的文件在正常情况下应该可以为该主机所用。它应该是可执行文件或是已将其数据类型(例如 "音频"或"手册页")注册到主机的文件。

    包含文件名的完整路径显示在文本框中。

  3. 单击"添加",向菜单中添加文件。

    文件被添加到"工作区菜单"的第一个位置。它的缺省图标(如果有的话)和文件名将用作菜单项的图标和文本。


注意:

要更改"工作区菜单"中的菜单项位置,请参阅"修改工作区菜单"


修改工作区菜单

  1. 单击"前面板"的"工具"子面板上的"定制工作区菜单"控制。

    所显示"文件管理器"显示出"工作区菜单"的配置文件夹。注意,该文件夹中的文件代表每个菜单项,子 文件夹代表每个子菜单。通过重新安排"工作区菜单"文件夹,可重新安排"工作区菜单"。

    Graphic

  2. 将任何想要移动的菜单项拖放到该子文件夹下的新位置。

    关于在"树状浏览"模式下使用"文件管理器"的帮助,请参阅 《Solaris 公共桌面环境:用户指南》

  3. 把不需要的菜单项文件拖到"前面板"的"垃圾篓"中,将其删除。

  4. 通过编辑其文件或文件夹名称,来重命名需要重命名的菜单项。

  5. 对作出的更改感到满意后,从"文件管理器"的"文件"菜单中选择"更新工作区菜单",并退出"文件管理器"。

    "工作区菜单"现在反映出在"工作区菜单"文件夹中所作的更改。

创建新的工作区(根)菜单

  1. 打开相应的文件,以便进行编辑:

    • 个人的:HomeDirectory/.dt/dtwmrc

    • 系统范围的:/etc/dt/config/language/sys.dtwmrc

      关于创建这些文件的信息,请参阅"工作区管理器配置文件"

  2. 创建新菜单:

    	Menu menu_name  	
      {  	        
       ...  	
      }

    请参阅"工作区管理器菜单语法"

  3. 创建或编辑按钮绑定来显示新菜单。

    如果该菜单替换了现有的菜单,则编辑用于显示"工作区"菜单的键绑定。

    <Btn3Down> root  f.menu  menu_name
    

    如果该菜单是附加菜单,则创建一个新的鼠标按钮绑定。例如,在背景上同时按 Shift 键和鼠标按钮 3 ,下列按钮绑定就显示该菜单:

    	Shift<Btn3Down> root  f.menu  menu_name
    
  4. 从"工作区"菜单选择"重新启动工作区管理器"。

创建新的窗口菜单


注意:

"窗口"菜单内置在"工作区管理器"中,通常不被定制。为保持窗口性能在应用程序间的一致性, 应该避免对"窗口"菜单进行大量的修改。


  1. 打开相应的文件,以便进行编辑:

    • 个人的: HomeDirectory/.dt/dtwmrc

    • 系统范围的:/etc/dt/config/language/sys.dtwmrc

      关于创建这些文件的信息,请参阅"工作区管理器配置文件"

  2. 创建新的菜单:

    Menu menu_name  	
      {  	        
       ...  	
       }
  3. 使用 windowMenu 资源指定新的菜单:

    Dtwm*windowMenu: menu_name
    
  4. 从"工作区"菜单选择"重新启动工作区管理器"。

定制按钮绑定

按钮绑定 将鼠标按钮操作与可能的键盘修饰符键与窗口管理器功能相关联。按钮绑定 适用于所有的工作区。

桌面缺省按钮绑定定义在"工作区管理器"配置文件中的名为 DtButtonBindings 按钮绑定集之中,:

按钮 DtButtonBindings  
  {   
    ...
  }  

按钮绑定语法

按钮绑定的语法是:

Buttons ButtonBindingSetName  
  {      
   [modifier]<button_nameMouse_action>  context  function  [argument]      
   [modifier]<button_nameMouse_action>   context  function  [argument]

其中:

button_name-Btn1-鼠标左键 Btn2-中间键(三键鼠标)或两键(双键鼠标) Btn3-右键 Btn4-在三键鼠标上的键 1 和 键 2 Btn5-在三键鼠标上的键 2 和键 3

modifier-CtrlShiftAltLock

mouse_action-Down-按住鼠标;键 Up-释放鼠标按钮;Click-按下 然后释放鼠标键;Click2-双击鼠标键; Drag-当按住鼠标键时拖动鼠标

context-表示绑定生效时指针必须在的 位置。必要时,使用"|"字符将多个内容分开。

root-工作区窗口;window-客户窗口 或窗框;frame-窗框,不包括内容: icon-图标;title-标题条;app-客户窗口(不包括框架)

function-窗口管理器功能之一。关于有效功能的列表,请参考 dtwmrc(4) 的手册页,。

argument-任何所需要的窗口管理器功能的参数。 关于详细信息,请参考 dtwmrc(4) 的手册页。

例如,当指针落在工作区窗口(而不在客户窗口)中,按鼠标键3时,下列行的功能是显示 DtRootMenu 中描述的菜单。

<Btn3Down>      root     f.menu     DtRootMenu

注意:

关于键绑定的语法完整信息,请参阅 dtwmrc(4) 的手册页。


添加按钮绑定

  1. 打开相应的文件,以便进行编辑:

    • 个人的: HomeDirectory/.dt/dtwmrc

    • 系统范围的:/etc/dt/config/language/sys.dtwmrc

      关于创建这些文件的信息,请参阅"工作区管理器配置文件"

  2. 将按钮绑定添加到 DtButtonBindings 定义中。

    不要将相同按钮的单击和按下操作绑定到不同的功能。也不要将多个功能绑定到相同的 按钮和上下文。

  3. 从"工作区"菜单选择"重新启动工作区管理器"。

创建新的按钮绑定集

  1. 打开相应的文件,以便进行编辑:

    • 个人的: HomeDirectory/.dt/dtwmrc

    • 系统范围的:/etc/dt/config/language/sys.dtwmrc

      关于创建这些文件的信息,请参阅"工作区管理器配置文件"

  2. 创建新的按钮绑定集合。请参阅"按钮绑定语法"

  3. buttonBindings 资源设置为新的名称:

    	Dtwm*buttonBindings: ButtonBindingsSetName 
    
  4. 从"工作区"菜单中选择"重新启动工作区管理器"。


    注意:

    新的按钮绑定将替换现有的按钮绑定。从DtButtonBindings 复制任何需要的按钮绑定。


定制键绑定

键盘绑定,也称作键绑定,将键的组合 与"工作区管理器"功能相关联。键绑定适用于所有工作区。


注意:

使用公共键组合作为键盘绑定时要细心。例如,Shift-A 一般是在当前窗口中输入 字母"A"。如果将 Shift-A 绑定到某功能,将失去它的正常用法。


缺省的桌面键绑定

桌面缺省的键绑定定义在"工作区管理器"配置文件中,在名为 DtKeyBindings 的键绑定集合中:

Keys DtKeyBindings  
  {   
   ...
  }  

键绑定语法

键绑定的语法是:

Keys KeyBindingSetName  
  {     
   [Modifiers]<Key>key_name  context   function  [argument]     
   [Modifiers]<Key>key_name  context   function  [argument]     
   ... 
  }

其中:

Modifiers-CtrlShiftAltLock。 允许多个修饰符;用空格把它们分开。

key_name-功能所映射的键。对于 字母键或数字的键,key_name 名称通常打印在键上。例如,"a"键的名称为"a",而"2" 键的名称为"2"。"Tab"键名为"Tab"。"F3" 键名为"F3"。

至于其它键,其名称被拼写出来-例如,plus 为"+"键。位于与系统相关的目录中的文件 keysymdef.h 中, 包含了关于键名的附加信息。

context-该要素必须具有使该动作生效的键盘焦点。 如果绑定适用于不止一个上下文,则这些可连结在一起。多个上下文用"|" 字符分开。

root-工作区背景; window-客户窗口; icon-图标

function-窗口管理器功能。关于有效功能的列表,请参考 dtwmrc(4) 的手册页。

argument-任何所需要的窗口管理器的功能参数。 请参考 dtwmrc(4) 的手册页,以获得详细信息。

例如,下列键绑定使用户通过按 Alt+F6 ,将键盘焦点切换到应用程序中下一个瞬时窗口。

Alt<Key>F6     window     f.next_key     transient

注意:

关于键绑定的完整信息,请参阅 dtwmrc(4) 的手册 页。


创建定制的键绑定集合

  1. 打开相应的文件,以便进行编辑:

    • 个人的:HomeDirectory/.dt/dtwmrc

    • 系统范围的:/etc/dt/config/language/sys.dtwmrc

      关于创建这些文件的信息,请参阅"工作区管理器配置文件"

  2. 用专用的 KeyBindingSetName 创建新的键绑定集合。 使用桌面缺省的键绑定集合,DtKeyBindings,作为指南。

  3. keyBindings 资源设置为新的名称:

    	Dtwm*keyBindings: KeyBindingSetName 
    
  4. 从"工作区"菜单中选择"重新启动工作区管理器"。


    注意:

    新的键绑定将替换现有的键绑定。将任何要保留的键绑定从 DtKeyBindings 复制到新的集合中。


在缺省和定制的特性之间切换

在 Motif 缺省的和 CDE 桌面窗口性能之间切换:

  1. 按 Alt+Shift+Ctrl+!

  2. 选择对话框中"确定"。

    切换到缺省性能的动作去除了"前面板"和任何定制键和按钮绑定。