作者:Chris Zhu, Sun Microsystems, Inc
概述
Solaris提供了一种统一的登录界面,但用户需求常常是多样化的。有些用户出于商业需要,希望在登录界面中加入自己的标志,也有用户希望拥有更个性化的登录界面,本文就这样的需要,介绍一下自己修改Solaris 登录界面的历程。
1. 常用的个性化元素
1给出了Solaris 10自带的登录界面,其中可配置的元素有不少,不过来自下列四项的个性化配置需求最多:
  • 可选择的语言菜单
  • 缺省语言
  • 登录背景图
  • 欢迎信息
    DIY_dtlogin_html_m6280effa.jpg
1

2. DIY你的登录界面
2.1 配置可选择的语言菜单
当系统安装的语言很多时,配置可选择的语言菜单就显得很有必要了,否则你只能发挥大浪淘沙的本领。
  1. 拷贝/usr/dt/config/Xconfig 到相应的/etc路径下,如果该路径不存在,自己先建立一个。
    最好不要直接修改/usr/dt/config/Xconfig,否则系统一升级,该文件就被自动替换了,个性化的配置应放在自己的/etc目录下,dtlogin也总是先检查/etc/dt/config/Xconfig,不存在时才会去找/usr/dt/config/Xconfig
    cp /usr/dt/config/Xconfig /etc/dt/config/
  2. 修改/etc/dt/config/Xconfig中的 Dtlogin*languageList 资源
    例:登录界面中的语言菜单只显示Czhzh_CN.GBK三个选项
    修改前: # Dtlogin*languageList: <lang1> <lang2> <lang3>
    修改后: Dtlogin*languageList: C zh zh_CN.GBK
  3. 通知登录服务器重新读取Xconfig信息
/usr/dt/bin/dtlogin -reset
说明:可以选择的语言选项在 /usr/dt/config/language/Xresources 中可以找到,你也可以修改通过修改 Xresources 文件修改语言菜单每一项的内容。

2.2 配置缺省的语言
配置缺省的语言和上面配置语言菜单的方法相似,不过修改的资源名变为Dtlogin*language
例:登录界面中的缺省的语言为zh
修改前: # Dtlogin*language: <lang>
修改后: Dtlogin*language: zh

2.3 配置登录背景贴片
缺省的贴片配置信息在/usr/dt/config/C/styleModern文件中,还是老生长谈一下,一定要把它拷贝到相应的/etc目录下再做修改。StyleModern的查找顺序是:/etc/dt/config/language//etc/dt/config/C//usr/dt/config/language/最后才是/usr/dt/config/C/。所以建议把/usr/dt/config/C/styleModern拷贝到/etc/dt/config/C/目录下配置即可。当然如果你希望每选一种语言都可以换一个背景,就在各种语言环境下都配置一遍吧。

我们可以根据自己显示器的分辨率修改相应的配置信息。
  1. cp /usr/dt/config/C/styleModern /etc/dt/config/C/
  2. 得到自己的显示器分辨率
xdpyinfo |grep dimensions
  1. 根据自己的显示器分辨率修改配置信息,显示器分辨率是向下兼容的。
例:我们把缺省12801024分辨率的背景贴片 /usr/dt/config/p_w_picpaths/styleModern-backdrop-1280.pm.gz换为/etc/dt/config/p_w_picpaths/my-1280.xpm
#elif (WIDTH >= 1280) && (HEIGHT >= 1024)
修改前:Dtlogin*matte1.backgroundPixmap: STYLE_PIXMAP-1280.pm.gz
修改后:Dtlogin*matte1.backgroundPixmap: /etc/dt/config/p_w_picpaths/my-1280.xpm
不过要注意的是这里支持的图片格式很有限,我曾经尝试过bmpjpg,都不成功,所以建议使用xpm;而且图片文件的大小也有限制,参照一下系统缺省的 STYLE_PIXMAP-1280.pm.gz文件吧,最好最后形成的文件可以限制在1M附近,否则可能登录界面经过漫长的等待都不出来,我用的是256色的图形文件。
推荐一个形成xpm的工具gimp,这是solaris10缺省带的工具,在/usr/sfw/bin下,不过你要形成256色的图形文件恐怕只能在windows下做了。

2.4 配置欢迎信息
欢迎信息存储在/usr/dt/config/language/Xresources文件中,修改很方便,见下例。
  1. cp /usr/dt/config/C/Xresources /etc/dt/config/C/Xresources
  2. 修改/etc/dt/config/C/Xresources
    修改前:
    !! Dtlogin*greeting.labelString: Welcome to %LocalHost%
    !! Dtlogin*greeting.persLabelString: Welcome %s
    根据你的需要修改吧
Dtlogin*greeting.labelString: Welcome to Solaris 10
Dtlogin*greeting.persLabelString: Have a nice day
如果你想修改欢迎信息的坐标信息,就要到上面提到的 styleModern 文件中去修改了,这里不再详述。
看一下DIY的效果吧,我的登录界面见图2

DIY_dtlogin_html_1e7676f0.jpg

2

3. 关于锁屏的登录界面
配置了登录界面,也许你也想配置一下锁屏的登录界面。这在CDE下很容易实现,不过对于JDS桌面,探索了很久,却发现这个界面无法修改,它竟然是把位图写死在Xscreensaver程序中的,这不得不说是个小小的遗憾。
CDE下锁屏的登录界面的配置文件缺省是/usr/dt/app-defaults/language/Dtsession,拷贝到相应的/etc/目录下后,自己动手吧。
例:配置锁屏的登录界面的贴片(贴片的缺省路径是/usr/dt/appconfig/icons/language/
修改前:Dtsession*lockLabelPixmap.p_w_picpathName: Dtlogo
修改后:Dtsession*lockLabelPixmap.p_w_picpathName: mylogo

相对于登录界面的DIYJDS桌面系统的配置简单很多,JDS提供了图形化的界面来协助完成相应的配置工作,和WINDOWS十分相似,这里就不再详述了。
除了通过dtlogin来实现图形化的登录外,gdm也提供了一种更容易配置的登录界面,具体的配置可以参见[url]http://blog.gceclub.sun.com.cn/index.php?blogId=503[/url]

4. 参考链接
下面给出了一些有用的链接,可以帮助你了解更多的桌面配置信息,以及登录服务器的响应流程。