Chapter 14. X

Table of Contents
14.1. 何谓 X?
14.2. 设定
14.3. 鼠标
14.4. 键盘
14.5. 屏幕
14.6. 显示卡和 X server
14.7. 启动 X
14.8. X 的个人化设定
14.9. 其它的窗口管理者
14.10. 使用 xdm 做图形化登入

14.1. 何谓 X?

X 窗口系统是在 NetBSD 及许多 Unix(和非 Unix)上所使用的 图形化的环境。事实上则不仅只于此:感谢 X 协议的使用,X 窗口系统是可以"由网络传送"的,而且可以执行 来自他处的应用程序(主-从架构)。这表示你可以执行在主机 (使用者端)上的应用程序,经由传送将它的图形化输出展示到 另一台主机(服务器)上;传送是表示你不需要修改应用程序来 达到这个效果。X 窗口系统是由 X 协会所制造和维护的而现今的 版本是 X11R6。NetBSD 上常用的 X 是 XFree86,一个免费的 X 窗口系统并有可散布的开放原始码。

当你开始使用 X,你将会发现许多令人困扰的新的术语。 要使用 X 的基本要件有:

摘要:要使用图形化环境,你需要

Note: 现在我们可以清楚地知道,像 GNOME 和 KDE 桌面并不提供 X servers。它们执行在由 XFree86 提供的 X servers 之上。 KDE and GNOME 可以使用它们特有的窗口管理者或另外自行安装的。

通常你同时最多只能执行一个窗口管理者在单一的 X server 之上。 (但是在单一的机器可以执行许多 X server)如果你不执行你所选定 的窗口管理者而启动 KDE/GNOME,则桌面环境会自动执行它们特有的 窗口管理者。

14.2. 设定

如果你在安装时不选择最小安装,则 X 已经被安装且准备在你的 计算机上执行了;你只需编辑 /etc/XF86Config。 要了解这个档案的格式,可以参考 /usr/X11R6/lib/X11/XF86Config.eg。 在 XF86Config(4/5) 中,可以利用以下指令:

# man XF86Config
    

在设定系统以前,建议你最好先仔细地阅读在 /usr/X11R6/lib/X11/doc 里的文件:有各种 显示卡的 README,关于鼠标甚至是 NetBSD 特有的相关数据。 (README.NetBSD.)我建议以 QuickStart.doc 作为开头。或许你会觉得 其它的系统让你很快地完成,而不需花费心力,但是阅读这些文件 并不会造成时间的浪费:设定 X 的知识在往后是很有帮助的,这 会让你更了解你的硬件(和软件)。

你可以利用编辑器建立 /etc/XF86Config 或 经由交谈式设定程序自动产生。最著名的程序是 xf86configXF86Setup。 前者是文字模式,已经随附在 X 中;后者是图形接口,可由 package 集合安装。

混合使用是个不错的方法:先利用其中一个程序建立 XF86Config, 然后用手动地编辑它。

这两个程序虽然有不同的接口,但都需要相同的信息:

在设定系统之前,你需要搜集相关的信息。

14.3. 鼠标

第一件事要你所使用的鼠标种类(例如,序列或 PS/2, ...)和 鼠标装置(例如,wsmouse 需要不同的协议)。 如果你使用序列鼠标,选择必要的协议和指明所连接的串行端口。 例如,连接在第一个串行端口的序列鼠标:

Section "Pointer"
  Protocol    "Microsoft"
  Device      "/dev/tty00"
EndSection
    

要使用鼠标装置,你必须:

Section "Pointer"
  Protocol    "wsmouse"
  Device      "/dev/wsmouse0"
EndSection
    

在 "Device" 选项中,你也可以指明 /dev/mouse 并使它炼结到适当的装置。 例如:

# ln -sf /dev/wsmouse0 /dev/mouse
    

14.4. 键盘

即使你已经在 wscons 中设定好了你的键盘,你还是要在 X 中 设定来使用非美式的键盘。

最简单的方法是使用 XKB 协议, 指明键盘的种类和配置。

这是设定程序的缺点所在,你必须手动地修改想要的键盘配置。

# XkbDisable
# XkbKeymap   "xfree86(us)"

XkbModel        "pc102"
XkbLayout       "de"
XkbVariant      "nodeadkeys"
    

如果想要使用在你键盘上的 "Windows" 键, 在 XkbModel 选项中使用 pc105 取代pc102。

14.5. 屏幕

这是非常重要的,而且必须正确地指明屏幕的水平和垂直更新频率: 正确的屏幕定义可以避免让不兼容的显示卡设定,使屏幕受到伤害。 可以从屏幕的手册中,找到这项信息。在 X 的文件目录中也有包含 许多屏幕的设定文件;可以用作设定的开始。

14.6. 显示卡和 X server

显示卡可以从自动设定程序的数据库中选择;程序会做必要的设定。

当你选择了正确的显示卡,你必须为它选定一个 X server。通常, 设定程序会自动选择正确的 X server,但是某些显示卡可以被另一 个 server 所驱动(例如,S3 Virge 可被 SVGA 和 S3V server 所 支援);在此情况,可以研读 server 的文件并选择你所需要的: 不同的 server 通常有 不同的能力和不同的角度来支持显示卡。

14.7. 启动 X

examined and modified by hand. 当你离开设定程序之后,它建立了 /etc/XF86Config, 可以做进一步的检查和修改。

在启动 X 之前,你应该:

现在你可以用以下的指令启动 X:

# startx
    

如果 X 没有启动,可能是设定档有一些错误。

如果 X 能启动但却不如你所预期的情况(例如,不能移动鼠标光标), 你可以使用组合键 Ctrl-Alt-Backspace 做快速地离开(不是所有平台 都有效)。如果一切正常,你可以使用预设的窗口管理者离开 X 环境 (twm):虽然这是一个简单的窗口管理 者,但许多使用者认为已经足够符合他们的需求。如果你想要可以简单 设定的或具有华丽外表的窗口管理者,在 package 集合中,你可以有 许多选择。

要启动个人化的 X,在 xterm 中执行以下指令来改变背景颜色:

# xsetroot -solid DarkSeaGreen
    

14.8. X 的个人化设定

有好几个方法可以使 X 环境看起来更具特色。最简单的方法复制预设档 .xinitrc 到你的所在目录底下并修改它。例如:

# cp /usr/X11R6/lib/X11/xinit/xinitrc ~/.xinitrc
# vi .xinitrc
    

以下的例子展示如何启动窗口管理程序 (twm),立即在屏幕右下角开启 xclock 程序和两个 xterm 窗口。 使用"浅褐"色作为背景。

the first part of the file is the same
...
# start some nice programs
twm &
xclock -geometry 50x50-1-1 &
xterm -geometry 80x34-1+1 -bg OldLace &
xsetroot -solid Bisque4 &
exec xterm -geometry 80x44+0+0 -bg AntiqueWhite -name login
    

使用这个设定离开 X,你必须关闭最后的 xterm (具有 "login" 标题的)。

即使用这个简单的设定,X 也能有不错的外观。要增加环境的 美观,你可以从 package 集合中安装一些工具。例如:

xcolorsel

展示在 rgb.txt 中,所有色彩的定义。 可以用来替背景或 xterm 选择颜色。

xpmroot

让你在背景使用图示。

xscreensaver

X 屏幕保护程序。

xdaemon

没有这个 package 就没有桌面,它可以展示 BSD 标记 的位图成两种尺寸。

14.9. 其它的窗口管理者

如果你不喜欢 twm,认为它太简化, 缺乏许多特征,难以设定等,你可以从 package 集合中,选择其它的 窗口管理者。一些较受欢迎的有: fvwm2, olwm/olvwm (Open Look Window Manager), WindowMaker, Enlightenment, AfterStep

这一段将以 WindowMaker 的安装 作为范例。WindowMaker 是一个具有美观外表又容易设定的窗口 管理者。可以使用编译好的 windowmaker-0.60.tgz package 来安装,而它所依存的 package 也必须安装。,通常, pkg_addmake install 都会自动取回需要的 package,所以无须手动地加入。

# cd /usr/pkgsrc/x11/windowmaker
# make depends-list
xpm-3.4k
jpeg-6b
pkglibtool-1.2p2
giflib-3.0
libproplist-0.9.1
tiff-3.5.2
    

Note: 也可以使用以下指令来查看:

# pkg_info -f windowmaker-0.61.0.tgz | grep depends
      

在安装完需要的 package后,WindowMaker 和预先设定好的 布景主题可以被增加:

# pkg_add windowmaker-0.61.0.tgz wmthemes-0.6x.tgz
      

现在 WindowMaker 已经安装完成;要启动它,你必须修改你的 .xinitrc 和/或 .xsession: 置换这一行 twmwmaker。例如:

# start some nice programs
# start WindowMaker
wmaker &
xclock -geometry 50x50-1-1 &
xdaemon2 -geometry +0-70 &
...
      
此例中,xdaemon 也自动地被启动。

在开始启动 WindowMaker 之前, 必须执行设定程序:

$ wmaker.inst
$ startx
    

14.10. 使用 xdm 做图形化登入

如果你总是使用 X 来执行工作,而且在你登入系统后的第一件事 就是执行 startx,你可以设定你的工作站 做图形化登入并自动地完成它。这非常简单:

  1. 在你的所在目录建立 .xsession 檔。 这个档案类似于 ~/.xinitrc,甚至 可以使用炼结。

  2. 修改 /etc/rc.conf

    xdm=YES       xdm_flags=""       # x11 display manager
    	  
    或是加入这一行到 /etc/rc.local 档 的结尾以取代修改 rc.conf:
    /usr/X11R6/bin/xdm
    	  
    这个方法可以用来启动,如 kdmgdm 以取代 xdm。

xdm 的设定档是在 /usr/X11R6/lib/X11/xdm 目录中。 在 Xservers 档中,X 预设被启动在 vt05 虚拟终端机上;如果你想使用另一个终端机,这就是 修改设定的地方。为了避免键盘同时被 getty 和 xdm 同时 包含它,建议启动 xdm 在一个虚拟终端机巨额关掉 getty。 例如,如果在 Xservers 中你有:

:0 local /usr/X11R6/bin/X :0 vt04
    

/etc/ttys 中你应该有

ttyE3   "/usr/libexec/getty Pc"         vt220   off secure
    

(请注意,vt04 是对照 ttyE3,因为 vt 从 1 开始,而 ttyE 从 0 开始)

如果在 xdm 登入时要有一个好看的外观,你可以修改 xdm 的 设定档。例如,要更改背景颜色,你可以这一行到 Xsetup_0

xsetroot -solid SeaGreen
    

也可以放置影像到背景上,使用 xpmroot :例如:

xpmroot /path_to_xpm/netbsd.xpm
    

在你熟悉了设定档之后,可以达成许多美观的效果,并且 建立一个漂亮的登入画面。