定制X Window的基本方法
与其他图形界面相比,X Window是高度可配置的,这是因为X Window 本身只是定义了一系列最基本的显示功能调用,而并没有规定图形窗口应该是 什么样子的,因此大批程序员为X Window开发了各种不同风格的开发工具包和 窗口管理程序,使得X Window的风格多种多样。因此X Window的使用者有多种 选择,可以根据自己的喜好来定制工作站的图形界面。
- 颜色深度、分辨率与字体配置:
在前面的设置过程中可以设置X服务器使用多种色彩深度,如8bpp、 16bpp、24bpp和32bpp,一般来讲色彩深度越大,所能表现的色彩越丰富,而 24bpp就被称为真彩色,能真实的表现图象的色彩(32bpp实际也只是24bpp, 它是为了让每个象素都占据独立的32位双字,以对齐象素边界,加速处理速度) 。缺省的色彩深度为对应于256色的8bpp,显然这不足于表现图象的色彩,在硬 件能力满足的条件下应该使用更高的色彩深度(要受显存大小和分辨率大小的 限制)。例如要设置X服务器工作在16bpp的准真彩色下,可以使用带参数的 startx或xinit。
$ startx -- -bpp 16
其中前面的两个--线表示将后面的参数不加改变的传递给X服务器。另 一种设置缺省色彩深度的方法是在X的设置文件XF86Config中设置DefaultColorDepth 选项。
由于X Window中的色彩深度是可以改变的,为了帮助客户程序使 用具体的色彩,X客户程序中使用的色彩将通过X服务器映射为真实的色彩。X中 还定义了多种标准色的名字,在X程序或资源定义文件中直接使用色彩名字,如 Red、Blue,就得到常用的颜色。
X服务器也可以同时支持多种分辨率,
并能够在运行时刻动态切换它所支持的分辨率。在前面XF86Setup设置程序中的
显示器设置选项中,有部分显示器能同时设置了几个显示模式,然而这些分辨率
并不是该显示器能支持的分辨率的全部,如果是使用xf86config或者手工更改设
置文件,还能设置更多的分辨率。当设置了多个分辨率模式的时候,就能在X
Window下使用热键
虽然存在不同的分辨率模式,但是X服务器显示的虚屏大小仍然相同,虚拟 显示屏大于实际显示屏,但可以通过鼠标的移动,在实际显示屏上显示虚拟显示屏 的不同部分。因此在有多个分辨率的时候,虚拟显示屏至少应该等同于最大分辨率 的大小,这样不论切换到哪个分辨率,应用程序的窗口仍然保持原有的样子,只是 窗口有可能位于真实的显示屏外,需要通过移动鼠标来移动虚拟显示屏,看到应用 程序窗口的全貌。由于移动虚拟显示屏是通过直接控制显示卡上的寄存器来进行的 ,不需要在显存或内存中进行额外的移动或复制操作,因此几乎不消耗资源,也不 影响任何显示速度。
虽然XFree86缺省已经支持了相当丰富的字体,但是还是有可能需要安装新 的字体,例如某种中文字体。X Window的字体应该在配置文件中设置其搜寻路径, 但在启动X Window之后,也可以使用xset命令来重新设置字体的搜寻路径。
xset fp+ :增加一个字体搜寻目录。
xset fp- :删除一个字体搜寻目录。
xset fp= :重新设置字体搜寻目录。
xset fp rehash:更改某个字体目录中的内容后,强迫系统刷新字体搜寻路径。
要想使用一些使用者自己设置的字体,就要按下面的步骤将这些字体加入 到X Window的搜寻路径。
- 将这些字体单独放在一个目录下,或者放到系统原有的字体目录下。
- 运行 “mkfontdir 该字体目录” ,构建这个字体目录(将按照所有的字体, 重新生成fonts.dir文件)。
- 使用 “xset fp+ 该字体目录” 或 “xset fp rehash” ,使设置生效。
fonts.dir文件中包含该字体目录下所有字体的名字,以下为一个例子的部分 内容,该文件每一行都给出一个字体的名字。
gb16st.pcf.gz -isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0 gb24st.pcf.gz -isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0 10x20.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1 gb16fs.pcf.gz -isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0 |
可以看出font.dir中的内容分为两部分,第一部分为字体文件的名字,第二部 分为字体的名字。每个字体的名字用 “-” 将不同的部分分隔开了,这些相互分隔的部 分包括字体的开发者、字体的类别、字体本身的尺寸(磅数)、倾斜度和点的大小,字 符间距的类型、字体所为的字符集,以及字符的风格。
可以看出,每个字体的名字相当复杂,然而可以通过定义别名的方式来简化具 体字体的名字,在一个字体目录下,都有一个对应的fonts.alias的文件,这里就登记 了很多字体的别名,使用者也可以自己根据需要增添。
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1 5x7 -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1 5x8 -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso646.1991-irv |
上面就是某个font.alias的一部分,它的第一列就为简单易记的别名。在运行 X Window时,可以使用xlsfonts来查看系统中可以使用的字体信息,使用xfontsel来 查看每种字体的外观。
- 定制客户桌面基本方法
根窗口的特征可以使用xsetroot命令来设置,可以使用它来定制窗口的颜色(背 景色和前景色),或者使用一个位图作为背景等。也可以使用”xset s seconds”来定义屏 幕保护的激活时间,”xset s default”将屏幕保护设为系统的缺省配置。
还有很多更强大的X程序能用来定制X的根窗口,设置壁纸和屏幕保护。例如可以使 用xv来将gif或jpg等类型的图片设置为壁纸,这些程序都可以在FreeBSD的Packages Collection 和Ports Collection中找到。
X客户程序通常使用标准的构件,通常这些构件都有一些标准的参数来定义它们使 用的字体、文字的前景色、背景色、滚动条等。这些参数可以通过更改构件的资源设置, 来改变其设置。一般使用用户个人目录下的.Xdefaults或.Xresoures作为用户的个人资源 文件,资源文件在启动时在.xinitrc文件中由xrdb命令载入系统。
除了资源设置之外,标准X客户程序中的构件也支持标准的命令行选项,可以用来 改变窗口构件的属性:
-borderwith或-bw,框架的宽度,以像素为单位
-foreground或-fg,前景色
-background或-bg,背景色
-display,客户程序要使用的X服务器的显示位置
-font或-fn,显示特殊文字使用的字体
-geometry,窗口的几何结构,包括位置和大小
-iconic,以图标方式启动
-title,标题栏的标题
- 选择窗口管理器和桌面环境
在FreeBSD安装好XFree86之后,缺省的窗口管理器是twm,这是一个比较简单的 窗口管理器,会使得第一次接触X Window的使用者对X Window产生不好的印象,但是如 果进一步了解X Window系统,就会知道X Window本身并没有包括真正好用的窗口管理器 ,但是却存在很多种优秀的窗口管理器能达到这个目的,使X Window变得更华丽、更易 用。
因此必须从Packages Collection中选择安装相应的窗口管理器或桌面环境,可 供选择的有fvwm95、AfterStep、KDE等。
fvwm95是从另一个窗口管理器fvwm2的进行改进之后的版本,它被设置为与Windows95 的桌面非常相似,因此习惯于Windows95界面的个人计算机使用者常常会选择这个窗口管 理器,然而既然使用的是X Window,没有必要一定还要使用Window95的显示风格,使用 fvwm2、AfterStep等其他窗口管理器来尝试其他风格更为有益。一般情况下使用者还是 会安装一个fvwm95,fvwm95使用的配置文件是用户主目录下的.fvwm2rc95文件,而缺省 配置文件为/usr/X11R6/lib/fvwm95/system.fvwm2rc95文件。使用fvwm95时最简单的启 动文件.xinitrc应包括:
/usr/X11R6/bin/fvwm95
AfterStep是模仿NextStep的窗口管理器,这个窗口管理器精巧而且漂亮,如果 不是过于沉迷于Windows95的操作方式,不妨使用这个窗口管理器,它还有几个派生的管 理器,如WindowMaker、enlightenment等。为了充分发挥AfterStep的华丽,X的显示屏 应该大于800x600的分辨率,并至少使用16bpp的色彩深度。AfterStep的所有配置文件均 放置在用户主目录下的GNUStep目录中,相应的启动文件为:
/usr/X11R6/bin/AfterStep
与前面两者不同,gnome和KDE不仅仅是一个窗口管理器,还包括大量的应用程序 和相关工具(gnome使用enlightenment作为其缺省窗口管理器)。这些桌面环境包括各种 应用程序、控制条、图形化的设置程序等,使用它们能够全面享受到图形桌面环境的优 点,但它们占用的系统资源也相对较多。如果是将安装FreeBSD的计算机用做一台工作站 ,那么就应该选择其中一种桌面环境,用户可以根据自己的喜好来选择安装gnome或者KDE。
如果选择安装了KDE时,在.xinitrc及.xsession中应该包含的相应启动命令为:
/usr/local/bin/startkde
在3.2=RELEASE之后,FreeBSD能通过Sysinstall来设置不同的桌面环境,Sysinstall 能安装相应的软件包,并在/usr/share/skel中添加dot.xinitrc和dot.xsession文件,这样 在生成用户时就自动生成.xinitrc和.xsession文件。
- 配置和使用KDE
KDE不单单是一个窗口管理程序,它包括了使用X Window图形界面进行操作所 需要的各种应用程序。它的主要部分为一个拥有任务条、工具条、快捷图标的桌面环 境,并包括可用于浏览WWW网页的文件管理器、编辑器、计算器、CD播放器、邮件处 理程序、新闻组阅读程序等等大量的应用程序。
KDE的另一个特点就是包括了对图形界面外观的定制程序,一般情况下Unix中进 行配置需要修改对应的配置文件,虽然这种方式提供了很大的灵活性,但对于很多不重 要的设置,并不需要这么灵活的方式,而要求方便、简易。在KDE下不需要使用手工更 改配置文件,而是通过图形界面的设置程序进行设置,因此更容易使用。下面为一个KDE 界面的例子:
由于KDE是为了高性能的图形界面开发的,因此为了获得较好的观感,至少应该 以800x600分辨率运行X Window,建议使用1024x768以上的分辨率,以充分发挥KDE的显 示效果。
KDE图形桌面由桌面背景、快捷图标、工作栏和任务条组成,每个可以点击的位 置上通常使用左键一次点击启动相应的功能,使用右键点击出现一个菜单,可以进行相 关设置。上图为进行工作栏和任务条的外观设置,设置它们显示的不同的大小和位置。 此外,在桌面上使用右键可以配置桌面外观,包括墙纸和屏幕保护。点击左下角的K图标 可以弹出一个菜单,菜单中包括了KDE环境提供个多种应用程序,也可以添加对其他应用 程序的连接。
与MS Windows不同,KDE(以及大部分X窗口管理器),使用一次点击启动应用程 序,而不是双击。KDE下切换窗口的热键与Windows相同为Alt-Tab。
KDE界面低部工作栏上的各个按钮都对应一个相应的应用程序,而其中并列的四 个按钮,对应四个不同虚拟屏幕,每个屏幕上的内容各不相同,可以分别配置。KDE最 多可支持八个虚拟屏幕,每个窗口只显示在一个屏幕上,除非使用鼠标将窗口左上角的 图钉标志打开,这样操作之后这个窗口总显示在屏幕上,而不管如何切换虚拟屏幕。
KDE的配置工作全部可以通过KDE配置中心(KDE Control Center)来完成。点中 左下角的 “K” 图标,在菜单中选中KDE Control Center或使用工作栏上的快捷图标,就 可以启动它对KDE的外观进行配置。
KDE控制中心可以设置KDE桌面环境的排列方式,如工作栏、任务栏的大小和位 置,窗口的风格,使用的颜色,屏幕保护以及其他一些应用程序的相关设置。这些设置 也可以在KDE桌面环境中,使用鼠标右键弹出的菜单中的选项来启动。
由于KDE是一种国际化的应用程序,因此可以使用上面的设置程序将KDE使用的字符 设置为中文。当将KDE使用的语言设置为中文时,那么所有KDE的菜单都使用中文,但是这 需要中文X服务器或其他中文系统的中文显示能力的支持,否则KDE虽然显示的是中文字符, 但是显示的却会是乱码。
对于使用XDM登录方式的系统,需要使用xdm以提供系统登录。虽然用户登录后可以 从.xsessin中启动KDE,但仍然摆脱不了xdm过于简陋的登录画面。而KDE的另一个特点就是 提供一个xdm的替代程序kdm,这使得系统管理员可以替换掉简单的xdm界面,使用kdm来提 供更漂亮的XDM登录界面,这使得X Window系统表现得更为华丽。
上图就是一个kdm的外观,它同样也是在KDE控制中心中来进行配置的,只是由于 kdm属于系统程序,因此只有root运行的KDE控制中心才能选择这一项配置功能。设置KDM ,需要选择KDE配置中心的第一个选项Desktop Manager。
这个选项中可以设置kdm的图标、出现在kdm的用户列表中的用户、或者不出现在kdm 的用户列表中的用于,以及在会话结束时用于关闭系统的指令等。
- 将工作站用作专用X终端
专用机房中常常使用X终端为公共使用者提供服务,使用者可以通过这些终端以XDM 方式登录到机房中的Unix主机上去。X终端不允许使用者登录到自己系统中,而只能使用本 地X服务器的处理能力,登录到其他主机上进行使用。
由于个人计算机硬件更为便宜,并且由于硬件的发展其性能也并不落后,使用个 人计算机作X终端也是一种在使用专用X终端之外很不错的选择。可以使用FreeBSD作操作 系统,Xfree86支持X Window系统,就能将FreeBSD系统用作专用X终端,这样的优势是所 有的软件都可以免费得到,就使得在实现几乎同样的性能的条件下,却减少了大量的资金 投入。
同样也可以通过设置使得用户不能登录进本地系统,而是直接登录到网络上的其 他Unix主机中去。这需要那台提供登录服务的Unix主机运行xdm,这样X终端就能通过xdmcp 协议在网络中通过广播或者直接查询的方式,查找到运行xdm的主机,并连接上来提供登录 登录画面,就如同在本地系统一样。用作X终端的FreeBSD系统需要以使用特别的参数运行X, 以查找XDM主机。
如果运行XDM的Unix主机和用作X终端的FreeBSD系统在同一个以太网段上,可以使 用广播的方式寻找运行XDM的主机,此时启动X的命令为:
# /usr/X11R6/bin/X -broadcast
这样系统上将列出本地所有运行XDM的Unix主机,供使用者选择登录。或者可以直 接查询方式,通过query参数直接与某台Unix主机相连接,这可以用在客户机和服务器不在 同一个网段上的时候。
# /usr/X11R6/bin/X -query Unixhost
为了使系统一启动就进入这个登录状态,可以将这个命令写入shell脚本,并放入 系统启动目录/usr/X11R6/etc/rc.d中。然而此时使用ttys文件进行设置更佳,因为此时可 能同时想关闭虚拟控制台,以防止X终端使用者切换到虚拟控制台上。
未完,待续。。。
标签: