Ken
Tom
根据 X.Org 的 X11 服务修改此文档
Marc
Fonvieille
X Window 系统
概述
FreeBSD 使用 X11 来为用户提供功能强大的图形用户界面。
X11 是一种可以免费使用的 X 视窗系统,
其实现包括 &xorg; 和
&xfree86; (以及一些其他这里没有讨论的软件包)。 &os; 在包括
&os; 5.2.1-RELEASE
在内的版本之前, 都默认安装
&xfree86;, 一种由 &xfree86; Project, Inc.
发布的 X11 服务。 从 &os; 5.3-RELEASE 开始,
默认并且为官方支持的 X11 变成了
&xorg;, 它是由 X.Org
基金会开发的 X11 服务, 采用与 &os; 类似的授权。 此外,
也有一些用于 &os; 的商业 X 服务器。
这章将介绍 X11 的安装和配置, 并着重强调
&xorg; 的 &xorg.version; 版。
如欲了解关于 &xfree86;
的详细信息 (在较早的 &os; 版本中,
&xfree86; 是默认的 X11
软件包) 或较早版本的 &xorg;,
则可以访问存档的旧版 &os; 使用手册, 其网址为 。
欲了解 X11 所支持的显示卡等硬件,
请访问 &xorg; 网站。
在阅读完这一章后,您将会了解:
X 视窗系统的不同组件,它们是如何协同工作的。
如何安装和配置 X11。
如何安装和使用不同的窗口管理器。
如何在 X11 中使用 &truetype; 字体。
如何为您的系统设置图形登录
(XDM)。
在阅读这一章之前,您应该:
知道如何安装额外的第三方应用程序()。
理解 X
对于那些熟悉其他图形环境,比如
µsoft.windows; 或者
&macos; 的用户来说,第一次使用 X 可能会感觉很惊讶。
通常您并不需要深入了解各种 X 组件的作用以及它们之间的相互影响,
不过, 了解一些关于它们的基础知识, 有助于更好地利用 X 的强大功能。
为什么要使用 X?
X 不是第一个为 &unix; 而开发的视窗系统, 但它是最流行的。
X 的原始开发团队在开发 X 之前就已经在另外一个视窗系统上工作了。
那个系统的名字叫做
W
(就是 Window
)。X 只是罗马字母中 W 后面
的一个。
X 可以被叫做 X
, X Window 系统
,
X11
, 等等。把 X11 称做
X Windows
可能会冒犯某些人;
查看 &man.X.7; 可以了解更多的信息。
X 客户机/服务器模型
X 一开始就是针对网络而设计的,所以
采用了 client-server
模型。在 X 模型中,
X server
运行在有键盘,显示器,鼠标的计算机上。
服务器用来管理显示信息,处理来自键盘和鼠标的输入等。
每一个 X 应用程序 (比如 XTerm, 或者
&netscape;) 就是一个 客户程序 (client)
。
客户程序给服务器发送信息,如 请在这些坐标上画一个窗口
,
而服务器则返回处理信息, 如
用户刚刚点击了 OK 按钮
。
如果您家或办公环境中只有一台使用 FreeBSD 的计算机,
就只能在同一台计算机上运行 X server 和 X client 了。 然而, 如果您有很多运行
FreeBSD 的机器, 您可以在您的桌面计算机上运行 X server,
而在比较高档的服务器上运行 X 应用程序。 在这样的环境中, X server 和 X client
之间的通信就可以通过网络来进行。
这可能会让一些人感到困惑, 因为 X 的术语和他们料想的有些不同。
他们以为 X server
是运行在功能强大的大型机上的,而
X client
是运行在他们桌面上的计算机上的。
记住,X server 是有键盘和显示器的那台计算机,而
X client 是那些显示窗口的程序。
Client 和 server 不一定都要运行在同一种操作系统上,
它们甚至无需在同一种类型的计算机上运行。 在 µsoft.windows; 或
Apple 公司的 &macos; 上运行 X server 也是可以的,
在它们上面也有很多免费的和商业化的应用程序。
窗口管理器
X 的设计哲学很像 &unix; 的设计哲学,
tools, not policy
。这就意味着 X 不会试图去规定任务应该如何
去完成,而是,只给用户提供一些工具,至于决定如何使用这些工具是用户自己的
事情。
这套哲学扩展了 X,它不会规定窗口在屏幕上应该是什么样子,要如何移动鼠标,
应该用什么键来切换窗体 (比如,
Alt
Tab
按键,在 µsoft.windows; 环境中的作用), 每个窗口的工具条应该
看起来像什么,他们是否应该有关闭按钮等等。
实际上,X 行使了一种叫做
窗口管理器
的应用程序的职责。有很多这样的程序可用:
AfterStep,
Blackbox, ctwm,
Enlightenment,
fvwm, Sawfish,
twm,
Window Maker,等等。每一个窗口管理器
都提供了不同的界面和观感;其中一些还支持
虚拟桌面
;有一些允许您可以定制一些键来管理您的桌面;
一些有开始
按钮,或者其他类似的设计;一些是 可定制主题的(themeable)
,
通过安装新的主题, 可以完全改变外观。 这些以及很多其他的窗口管理器,
都可以在 Ports Collection 的
x11-wm 分类目录里找到。
另外,KDE 和
GNOME 桌面环境都有他们自己的窗口管理器
与桌面集成。
每个窗口管理器也有不同的配置机制;有些需要手工来写配置文件,
而另外一些则可以使用 GUI 工具来完成大部分的配置任务, 举例而言,
(Sawfish) 就使用 Lisp 语言书写配置文件。
焦点策略
窗口管理器的另一个特性是鼠标的 focus policy
。
每个窗口系统都需要有一个选择窗口的方法来接受键盘的输入信息,以及当前
哪个窗口处于可用状态。
您通常比较熟悉的是一个叫做 click-to-focus
的焦点策略。
这是 µsoft.windows; 使用的典型焦点策略,也就是您在一个窗口上点击
一下鼠标,这个窗口就处于当前可用的状态。
X 不支持一些特殊的焦点策略。确切地说,窗口管理器控制着在什么时候哪个窗口
拥有焦点。不同的窗口管理器支持不同的焦点方案。它们都支持点击即获得焦点,
而且它们中的大多数都支持好几种方案。
最流行的焦点策略:
focus-follows-mouse
鼠标指示器下面的窗口就是获得焦点的窗口。
这个窗口不一定位于其他所有窗口之上。
通过将鼠标移到另一个窗口就可以改变焦点,
而不需要在它上面点击。
sloppy-focus
这种方式是对 focus-follows-mouse 策略的一个小小扩展。对于
focus-follows-mouse, 如果您把鼠标移到了根窗口(或桌面背景)上,
则所有的其它窗口都会失去焦点, 而相关的全部键盘输入也会丢失。
如果选择了 sloppy-focus, 则只有当指针进入新窗口时,
窗口焦点才会发生变化, 而当退出当前窗口时是不会变化的。
click-to-focus
当前窗口由鼠标点击来选择。窗口被突出显示
,
出现在所有其他窗口的前面。即使指针被移向了另一个窗口,所有的键盘输入
仍会被这个窗口接收。
许多窗口管理器支持其他的策略,与这些相比又有些变化。您可以看具体
窗口管理器的文档。
窗口部件
提供工具而非策略的 X 方法使得在每个应用程序屏幕上看到的窗口部件得到了
大大的扩展。
Widget
只是针对用户接口中所有列举项目的一个术语,它
可以用某种方法来点击或操作;如按钮,复选框,单选按钮,图标,列表框等等。
µsoft.windows; 把这些叫做控件
。
µsoft.windows; 和苹果公司的 &macos; 都有一个严格的窗口部件策略。
应用程序开发者被建议确保他们的应用程序共享一个普通的所见即所得的用户界面。
对于 X,它并不要求一个特殊的图形风格或一套相结合的窗口部件集。
这样的结果是您不能期望 X 应用程序只拥有一个普通的所见即所得的界面。
有很多的流行的窗口部件集设置,包括来自于 MIT 的 Athena,
&motif; (模仿
µsoft.windows; 的窗口风格, 所有部件都具有斜边和3种灰色度),
OpenLook,
等等。
如今, 绝大多数比较新的 X 应用程序采用一组新式的窗口设计,
这包括 KDE 所使用的 Qt,
以及 GNOME 所使用的 GTK+。
在这样一种窗口系统下,&unix; 桌面的一些所见即所得特性作了一些收敛,
以使初学者感到更容易一些。
安装 X11
&xorg; 是 &os;
上的默认 X11 实现。 &xorg;
是由 X.Org 基金会发行的开放源代码 X Window 系统实现中的 X 服务。
&xorg; 基于
&xfree86 4.4RC2 和 X11R6.6 的代码。
从 &os; Ports 套件可以安装 &xorg;
的 &xorg.version; 版本。
如果需要从 Ports Collection 编译和安装 &xorg;:
&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install clean
要完整地编译 &xorg; 则需要至少
4 GB 的剩余磁盘空间。
另外 X11 也可以直接从 package 来安装。
我们提供了可以与 &man.pkg.add.1; 工具配合使用的 X11 安装包。
如果从远程下载和安装, 在使用
&man.pkg.add.1; 时请不要指定版本号。
&man.pkg.add.1; 会自动地下载最新版本的安装包。
想要从 package 安装
&xorg;, 简单地输入下面的命令:
&prompt.root; pkg_add -r xorg
上面的例子介绍了如何安装完整的
X11 软件包, 包括服务器端,客户端,字体等等。
此外, 也有一些单独的 X11 的 ports 和 packages.
这一章余下的部分将会讲解如何配置
X11, 以及如何设置一个高效的桌面环境。
Christopher
Shumway
Contributed by
配置 X11
&xorg;
X11
开始之前
在配置 X11 之前,
您需要了解所安装的系统的下列信息:
显示器规格
显示卡的芯片类型
显示卡的显存容量
水平刷新率
垂直刷新率
显示器的规格被 X11 用来决定显示的分辨率和刷新率。
这些规格通常可以从显示器所带的文档中,
以及制造商的网站找到。
需要知道两个数字范围: 垂直刷新率和水平刷新率。
显示卡的芯片类型将决定
X11 使用什么模块来驱动图形硬件。
尽管系统能自动检测出绝大多数的硬件,
但事先了解在自动检测出错的时候还是很有用处的。
显示卡的显存大小决定了系统支持的分辨率和颜色深度。
了解这些限制非常重要。
配置 X11
配置 X11 需要几步。 第一步是以超级用户的身份建立初始的配置文件:
&prompt.root; Xorg -configure
这会在 /root 中生成一个叫做
xorg.conf.new 的配置文件
(无论您使用 &man.su.1; 或直接登录,
都会改变默认的 $HOME 目录变量)。
X11 程序将尝试探测系统中的图形硬件,并将探测到的硬件信息写入配置文件,
以便加载正确的驱动程序。
下一步是测试现存的配置文件,
以确认 &xorg;
能够同系统上的图形设备正常工作。
要完成这个任务,只需:
&prompt.root; Xorg -config xorg.conf.new
如果用户看到一个黑灰的格子和一个 X 形的鼠标指针,那么配置就是成功的。
要退出测试, 只要同时按下
Ctrl
Alt
Backspace
。
如果鼠标工作不正常, 则需要先配置它。
参见 &os; 安装一章中的 。
X11 调优
接下来是调整 xorg.conf.new
配置文件并作测试。 用文本编辑器如
&man.emacs.1; 或 &man.ee.1; 打开这个文件。 要做的第一件事是为当前系统的显示器设置刷新率。
这些值包括垂直和水平的同步频率。 把它们加到
xorg.conf.new 的
"Monitor" 小节中:
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSection
在配置文件中也有可能没有 HorizSync 和
VertRefresh。
如果是这样的话, 就只能手动添加, 并在
HorizSync 和 VertRefresh
后面设置合适的数值了。 在上面的例子中, 给出了相应的显示器的参数。
X 能够使用显示器所支持的 DPMS (能源之星) 功能。
&man.xset.1; 程序可以控制超时时间, 并强制待机、挂起或关机。
如果希望启用显示器的 DPMS 功能, 则需要把下面的设置添加到 monitor 节中:
Option "DPMS"
xorg.conf
关闭 xorg.conf.new
之前还应该选择默认的分辨率和色深。
这是在 "Screen" 小节中定义的:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSection
DefaultDepth 关键字描述了要运行的默认色深。
这可以通过 &man.Xorg.1; 的
命令行开关来替代配置文件中的设置。
Modes 关键字描述了给定颜色深度下屏幕的分辨率。
需要说明的是, 目标系统的图形硬件只支持由 VESA 定义的标准模式。
前面的例子中, 默认色深是使用 24位色。
在采用这个色深时, 允许的分辨率是 1024x768。
最后就是将配置文件存盘, 并使用前面介绍的测试模式测试一下。
在发现并解决问题的过程中, 包含了与 X11 服务器相关的各个设备的信息的
X11 日志文件会为您发现和排除问题有所帮助。
&xorg; 日志的文件名是
/var/log/Xorg.0.log 这样的格式。
实际的日志文件名可能是 Xorg.0.log 到
Xorg.8.log 等等。
如果一切准备妥当, 就可以把配置文件放到公共的目录中了。
您可以在 &man.Xorg.1; 里面找到具体位置。
这个位置通常是 /etc/X11/xorg.conf 或
/usr/local/etc/X11/xorg.conf。
&prompt.root; cp xorg.conf.new /etc/X11/xorg.conf
现在已经完成了 X11 的配置全过程。 &xorg;
可以通过 &man.startx.1; 工具来启动。
除此之外, X11 服务器也可以用
&man.xdm.1; 来启动。
有一个图形配置工具
&man.xorgcfg.1;, 会随 X11 软件包一同安装。
它可以通过选择合适的驱动和设置交互式地定义配置。
这个程序可以从控制台通过命令 xorgcfg -textmode 来直接启动。
欲了解详情, 请参考 &man.xorgcfg.1; 的联机手册。
另外还有一个叫做 &man.xorgconfig.1; 的文本界面配置工具
这是一个控制台工具, 对用户而言不太友好, 但也正因它使用的是纯文本界面,
因此当其他工具无法工作时, 您仍可使用这个工具。
高级配置主题
配置 &intel; i810 显示芯片组
Intel i810 显示芯片
配置Intel i810芯片组的显示卡需要有针对 X11
的能够用来驱动显示卡的 agpgart AGP程序接口。
请参见 &man.agp.4; 驱动程序的联机手册了解更多细节。
这也适用于其他的图形卡硬件配置。
注意如果系统没有将 &man.agp.4;
驱动程序编译进内核,尝试用 &man.kldload.8; 加载模块是无效的。
这个驱动程序必须编译进内核或者使用 /boot/loader.conf
在启动时加载进入内核。
添加宽屏平板显示器
widescreen flatpanel configuration
这一节假定您了解一些关于高级配置的知识。
如果使用前面的标准配置工具不能产生可用的配置,
则在日志文件中提供的信息应该足以修正配置使其正确工作。
如果需要的话, 您应使用一个文本编辑器来完成这项工作。
目前的宽屏 (WSXGA、 WSXGA+、 WUXGA、 WXGA、 WXGA+, 等等)
支持 16:10 和 10:9 或一些支持不大好的显示比例。 常见的一些
16:10 比例的分辨率包括:
2560x1600
1920x1200
1680x1050
1440x900
1280x800
有时, 也可以简单地把这些分辨率作为 Section
"Screen" 中的 Mode 来进行配置,
类似下面这样:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1680x1050"
EndSubSection
EndSection
&xorg; 能够自动地通过 I2C/DDC 信息来自动获取宽屏显示器的分辨率信息,
并处理显示器支持的频率和分辨率。
如果驱动程序没有对应的 ModeLines,
就需要给 &xorg; 一些提示了。
使用 /var/log/Xorg.0.log 能够提取足够的信息,
就可以写一个可用的 ModeLine 了。
这类信息如下所示:
(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz
这些信息称做 EDID 信息。 从中建立
ModeLine 只是把这些数据重新排列顺序而已:
ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>
如此, 本例中的 Section "Monitor" 中的 ModeLine
应类似下面的形式:
Section "Monitor"
Identifier "Monitor1"
VendorName "Bigname"
ModelName "BestModel"
ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option "DPMS"
EndSection
经过简单的编辑步骤之后, X 就可以在您的宽屏显示器上启动了。
Murray
Stokely
供稿
在 X11 中使用字体
Type1 字体
X11 使用的默认字体不是很理想。
大型的字体显得参差不齐,看起来很不专业, 并且, 在
&netscape; 中, 小字体简直无法看清。
有好几种免费、 高质量的字体可以很方便地用在 X11 中。 例如,URW字体集合
(x11-fonts/urwfonts) 就包括了高质量的
标准 type1 字体 (Times Roman,
Helvetica、 Palatino 和其他一些)。 在 Freefont 集合中
(x11-fonts/freefonts) 也包括更多的字体,
但它们中的绝大部分使用在图形软件中,如
Gimp,在屏幕字体中使用并不完美。另外,
只要花很少的功夫,可以将
&xfree86; 配置成能使用
&truetype; 字体:请参见后面的
&truetype; 字体一节。
要安装上面的Type1字体,您只需要运行下面的命令:
&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install clean
freefont 或其他的字库和上面所说的大体类似。 为了让 X
服务器能够检测到这些字体, 需要在
X 服务器的配置文件 (/etc/X11/xorg.conf)
中增加下面的配置:
FontPath "/usr/local/lib/X11/fonts/URW/"
或者,也可以在命令行运行:
&prompt.user; xset fp+ /usr/local/lib/X11/fonts/URW
&prompt.user; xset fp rehash
这样会起作用,但是当 X 会话结束后就会丢失,
除非它被添加到启动文件 (~/.xinitrc 中,
针对一个寻常的 startx 会话,或者当您通过一个类似
XDM 的图形登录管理器登录时添加到
~/.xsession 中)。
第三种方法是使用新的
/usr/local/etc/fonts/local.conf 文件: 查看
anti-aliasing 章节。
&truetype; 字体
TrueType 字体
fonts (字体)
TrueType
&xorg; 已经内建了对
&truetype; 字体的支持。有两个不同的模块能够启用这个功能。
在这个例子中使用 freetype 这个模块,因为它与其他的字体描绘后端
是兼容的。要启用 freetype 模块,只需要将下面这行添加到
/etc/X11/xorg.conf 文件的
"Module" 部分。
Load "freetype"
现在,为 &truetype; 字体创建一个目录 (比如,
/usr/local/lib/X11/fonts/TrueType)
然后把所有的 &truetype; 字体复制到这个目录。记住您不能直接从
&macintosh; 计算机中提取 &truetype; 字体;
能被 X11 使用的必须是
&unix;/&ms-dos;/&windows; 格式的。
一旦您已经将这些文件复制到了这个目录, 就可以用
ttmkfdir 来创建
fonts.dir 文件,
以便让X字体引擎知道您已经安装了这些新文件。
ttmkfdir 可以在 FreeBSD
Ports 套件中的
x11-fonts/ttmkfdir 中找到。
&prompt.root; cd /usr/local/lib/X11/fonts/TrueType
&prompt.root; ttmkfdir -o fonts.dir
现在把 &truetype; 字体目录添加到字体路径中。
这和上面 Type1 字体的步骤是一样的,
那就是,使用
&prompt.user; xset fp+ /usr/local/lib/X11/fonts/TrueType
&prompt.user; xset fp rehash
或者把 FontPath 这行加到
xorg.conf 文件中。
就是这样。现在 &netscape;,
Gimp,
&staroffice; 和其他所有的 X 应用程序
应该可以认出安装的 &truetype;
字体。一些很小的字体(如在 Web 页面上高分辨率显示的文本)
和一些很大的字体(在
&staroffice; 下) 现在看起来已经很好了。
Joe Marcus
Clarke
Updated by
Anti-Aliased 字体
anti-aliased fonts
fonts
anti-aliased
X11 从 &xfree86; 4.0.2 开始支持字体的反走样。
但是, 字体配置在
&xfree86; 4.3.0 之前是非常繁琐的。
从 &xfree86; 4.3.0 开始,
对于所有支持 Xft 的应用程序, 所有放到 X11
/usr/local/lib/X11/fonts/ 和
~/.fonts/ 中的字体都自动地被加入反走样支持。
并不是所有的应用程序都支持 Xft, 但已经有相当多的程序提供 Xft 支持了。
支持 Xft 的应用程序包括 Qt 2.3 以及更高版本
(用以开发 KDE 桌面的工具包)、
GTK+ 2.0 和更高版本 (用于开发
GNOME 桌面的工具包), 以及
Mozilla 1.2 和更高版本。
要控制哪些字体是 anti-aliased,或者配置 anti-aliased 特性,
创建(或者编辑,如果文件已经存在的话)文件
/usr/local/etc/fonts/local.conf。Xft 字体系统的几个
高级特性都可以使用这个文件来调节;
这一部分只描述几种最简单的情况。要了解更多的细节,请查看
&man.fonts-conf.5;.
XML
这个文件一定是 XML 格式的。注意确保所有的标签都完全的关闭掉。
这个文件以一个很普通的 XML 头开始, 后跟一个 DOCTYPE 定义,
接下来是 <fontconfig> 标签:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
像前面所做的那样,在
/usr/local/lib/X11/fonts/ 和
~/.fonts/ 目录下的所有字体已经可以被支持 Xft 的
应用程序使用了。如果您想添加这两个目录以外的其他路径,
简单的添加下面这行到
/usr/local/etc/fonts/local.conf文件中:
<dir>/path/to/my/fonts</dir>
添加了新的字体,尤其是添加了新的字体目录后,
您应该运行下面的命令重建字体缓存:
&prompt.root; fc-cache -f
Anti-aliasing 会让字体边缘有些模糊,这样增加了非常小的文本的可读性,
并从大文本字体中删除 锯齿
。
但如果使用普通的文本, 则可能引起眼疲劳。
要禁止 14磅 以下字体的反走样, 需要增加如下配置:
<match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
fonts
spacing
用 anti-aliasing 来间隔一些等宽字体也是不适当的。
这似乎是 KDE 的一个问题。
要修复这个问题需要确保每个字体之间的间距保持在100。
加入下面这些行:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
(这里把其他普通的修复的字体作为
"mono"),然后加入:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match>
某些字体,比如 Helvetica,当 anti-aliased 的时候可能存在问题。
通常的表现为字体本身似乎被垂直的切成两半。
糟糕的时候,还可能导致应用程序比如
Mozilla 崩溃。
为了避免这样的现象,考虑添加下面几行到
local.conf文件里面:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match>
一旦您完成对
local.conf 文件的编辑,确保您使用了
</fontconfig> 标签来结束文件。
不这样做将会导致您的更改被忽略。
X11 默认的字库当使用反走样时会比较难看。
更好的字库可以在
x11-fonts/bitstream-vera
port 中找到。 这个 port 会创建一个
/usr/local/etc/fonts/local.conf 文件,
如果这个文件不存在的话。 反之,
port 将创建 /usr/local/etc/fonts/local.conf-vera
文件。 将其内容合并到
/usr/local/etc/fonts/local.conf 中,
则 Bitstream 字体将自动地代替默认的
X11 Serif, Sans Serif, 以及单倍距字体。
最后,用户可以通过他们个人的
.fonts.conf 文件来添加自己的设定。
要完成此项工作, 用户只需简单地创建
~/.fonts.conf 并添加相关配置。
此文件也必须是 XML 格式的。
LCD screen
Fonts
LCD screen
最后:对于LCD屏幕, 可能希望使用子像素的取样。 简单而言,
这是通过分别控制 (水平方向分开的) 红、绿、蓝 像素,
来改善水平分辨率; 这样做的效果一般会非常明显。
要启用它, 只需在
local.conf 文件的某个地方加入:
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
随您显示器的种类不同, 可能需要把
rgb 改为 bgr、
vrgb 或 vbgr:
试验一下看看那个更好。
Mozilla
disabling anti-aliased fonts (禁用反锯齿字体)
在下次启动 X server 时, 反锯齿 (anti-aliasing) 功能就启用了。
不过, 应用程序必须了解如何使用它, 才能因此而受益。
目前 Qt 工具包已经对其提供了全面支持,
因此整个 KDE 环境都能使用反锯齿字体。
GTK+ 和
GNOME 也可以通过 Font
capplet
来使用反锯齿功能 (进一步细节请参见 )。 默认情况下,
Mozilla 1.2 及更高版本有能力自动使用反锯齿。
要禁用这一特性, 则需要使用指定 -DWITHOUT_XFT
并重新联编
Mozilla。
Seth
Kingsley
Contributed by
X 显示管理器
概要
X Display Manager
X 显示管理器(XDM)
是一个X视窗系统用于进行登录会话管理的可选项。
这个可以应用于多种情况下,包括小
X Terminals
,
桌面,大网络显示服务器。既然 X 视窗系统不受网络和协议的限制,
那对于通过网络连接起来的运行 X 客户端和服务器端的不同机器,
就会有很多的可配置项。
XDM
提供了一个选择要连接到哪个显示服务器的图形接口,
只要键入如登录用户名和密码这样的验证信息。
您也可以把 XDM 想象成与
&man.getty.8 工具一样(see for
details)。为用户提供了同样功能。它可以完成系统的登录任务,
然后为用户运行一个会话管理器
(通常是一个 X 视窗管理器)。接下来 XDM
就等待这个程序退出,发出信号用户已经登录完成,应当退出屏幕。
这时,
XDM
就可以为下一个登录用户显示登录和可选择屏幕。
使用 XDM
XDM 精灵程序在
/usr/local/bin/xdm 中。您可以在任何时候
用 root 来运行这个程序,
在本地机器上,它将启动管理X的画面。如果要
XDM 每次机器一启动就开始运行,
一个简单的办法是在 /etc/ttys 中加入一个记录。
有关这个文件的更多的格式和使用方法,可以看看 。在默认的
/etc/ttys 文件中用于运行
XDM 守护程序的一行是这样的:
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure
默认情况下,这个记录是关闭的,要启用它,
您需要把第5部分的 off 改为
on 然后按照 的指导
重新启动 &man.init.8;。第一部分,这个程序将管理的终端名称是
ttyv8。这意味着
XDM 将运行在第9个虚拟终端上。
配置 XDM
XDM 的配置目录是在
/usr/local/lib/X11/xdm中。在这个目录中,
您会看到几个用来改变
XDM 行为和外观的文件。您会找到这些文件:
文件
描述
Xaccess
客户端授权规则。
Xresources
默认的X资源值。
Xservers
远程和本地显示管理列表。
Xsession
用于登录的默认的会话脚本。
Xsetup_*
登录之前用于加载应用程序的脚本。
xdm-config
运行在这台机器上的所有显示的全局配置。
xdm-errors
服务器程序产生的错误。
xdm-pid
当前运行的 XDM 的进程 ID。
当 XDM 运行时,
在这个目录中有几个脚本和程序可以用来设置桌面。
这些文件中的每一个的用法都将被简要地描述。
这些文件的更详细的语法和用法在
&man.xdm.1; 中将有详细描述。
默认的配置是一个矩形的登录窗口,上面有机器的名称,
Login:
和
Password:
。如果您想设计您自己个性化的
XDM 屏幕,这是一个很好的起点。
Xaccess
用以连接由
XDM 所控制的显示设备的协议,
叫做 X 显示管理器连接协议 (XDMCP)。
这个文件是一组用以控制来自远程计算机的 XDMCP 连接的规则。
除非您修改 xdm-config
使其接受远程连接, 否则其内容将被忽略。 默认情况下,
它不允许来自任何客户端的连接。
Xresources
这是一个默认的用来显示选项和登录屏幕的应用程序文件。
您可以在这个文件中对登录程序的外观进行定制。 其格式与
X11 文档中描述的默认应用程序文件是一样的。
Xservers
这是一个选择者应当提供的作为可选的远程显示列表。
Xsession
这是一个用户登录后针对
XDM 的默认会话脚本。通常,在
~/.xsession
中每个用户将有一个可定制的会话脚本。
Xsetup_*
在显示选择者或登录接口之前,这些将被自动运行。
这是一个每个显示都要用到的脚本,叫做
Xsetup_,
后面会跟一个本地显示的数字(比如
Xsetup_0)。典型的,这些脚本将在后台
(如 xconsole)运行一个或两个程序。
xdm-config
此文件以应用程序默认值的形式,
提供了在安装时所使用的普适的显示设置。
xdm-errors
这个文件包含了
XDM 正设法运行的的 X 服务器 的输出。
如果 XDM 正设法运行的显示由于某种原因被挂起,
那这是一个寻找错误信息的好地方。
这些信息会在每一个会话的基础上被写到用户的
~/.xsession-errors
文件中。
运行一个网络显示服务器
对于其他客户端来说, 如果希望它们能连接到显示服务器,您就必须编辑访问控制规则,
并启用连接侦听。 默认情况下, 这些都预设为比较保守的值。
要让 XDM 能侦听连接, 首先要在
xdm-config
文件中注释掉一行:
! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0
然后重新启动XDM。
记住默认应用程序文件的注释以!
字母开始,不是#
。
您需要设置严格的访问控制 — 看看在
Xaccess 文件中的实例, 并参考
&man.xdm.1; 的联机手册, 以了解进一步的细节。
替换 XDM
有几个替换默认
XDM程序的方案。 其中之一是
上一节已经描述过的kdm (与
KDE捆绑在一起)。
kdm 提供了许多视觉上的改进和局部的修饰,
同样能让用户在启动时能选择他们喜欢的窗口管理器。
Valentino
Vaschetto
Contributed by
桌面环境
这节描述了 FreeBSD 上用于 X 的不同桌面环境。
桌面环境
可能仅仅是一个简单的窗口管理器,
也可能是一个像
KDE 或者 GNOME这样的完整桌面应用程序套件。
GNOME
有关 GNOME
GNOME
GNOME 是一个用户界面友好的桌面环境,
能够使用户很容易地使用和配置他们的计算机。
GNOME
包括一个面板(用来启动应用程序和显示状态),
一个桌面(存放数据和应用程序的地方),
一套标准的桌面工具和应用程序,
和一套与其他人相互协同工作的协议集。
其他操作系统的用户在使用
GNOME提供的强大的图形驱动环境时会觉得很好。
更多的关于 FreeBSD 上 GNOME 的信息
可以在 FreeBSD GNOME
Project 的网站上找到。 此外,
这个网站也提供了相当详尽的关于安装、 配置和管理
GNOME 的常见问题解答 (FAQ)。
安装 GNOME
这个软件可以很容易地通过预编译包或
Ports 套件来安装:
要从网络安装GNOME,
只要键入:
&prompt.root; pkg_add -r gnome2
从源代码编译GNOME,可以使用
ports树:
&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install clean
一旦装好了 GNOME,
就必须告诉 X server 启动
GNOME 而不是默认的窗口管理器。
最简单的启动
GNOME 的方法是使用
GDM, GNOME 显示管理器。
随 GNOME 桌面一同安装的
GDM (但默认是禁用的), 可以通过在
/etc/rc.conf 中加入
gdm_enable="YES" 来启用。 这样在重新启动的时候,
GNOME 就会在登录时自动启动 —
除此之外不需要进一步设置了。
GNOME 也可以通过适当地配置名为
.xinitrc 的文件来启动。
如果已经有了自定义的 .xinitrc,
将启动当前窗口管理器的那一行改为启动
/usr/local/bin/gnome-session 就可以了。
如果还没有, 那么只需简单地:
&prompt.user; echo "/usr/local/bin/gnome-session" > ~/.xinitrc
接下来输入 startx,
GNOME 桌面环境就启动了。
如果之前使用了一些旧式的显示管理器, 例如
XDM, 则这样做是没用的。
此时应建立一个可执行的 .xsession
文件, 其中包含同样的命令。 要完成这项工作, 需要用
/usr/local/bin/gnome-session
取代现有的窗口管理器:
&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "/usr/local/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsession
还有一种做法, 是配置显示管理器,
以便在登录时提示您选择窗口管理器; 在
KDE 细节
环节中介绍了关于如何为 kdm
(KDE 的显示管理器)进行这样的配置。
在GNOME上使用Anti-aliased字体
GNOME
anti-aliased fonts
X11 通过RENDER
扩展来支持 anti-aliasing。
GTK+ 2.0 以及更高的版本(被
GNOME使用的工具包)可以使用这个功能。
配置 anti-aliasing 在
描述。所以,使用最近的软件,
anti-aliasing 可以应用在
GNOME桌面环境中。只需要依次选择
应用程序
桌面首选项
字体,然后选上
最佳形状,
最佳对比度,或者
像素圆滑(LCD)。对于
GTK+ 应用程序,它们不是
GNOME 桌面的一部分,在启动程序前需要设置
环境变量GDK_USE_XFT的值为
1。
KDE
KDE
有关 KDE
KDE 是一个容易使用的现代桌面环境。
KDE 有很多很好的特性:
一个美丽的现代的桌面。
一个集合了完美网络环境的桌面。
一个集成的帮助系统,能够方便、高效地帮助您使用
KDE 桌面和它的应用程序。
所有的KDE应用程序具有一致的所见即所得界面。
标准的菜单和工具栏,键盘布局,颜色配置等。
国际化:KDE
可以使用超过40种语言。
集中化、 统一的对话框驱动的桌面配置
许多有用的
KDE应用程序。
KDE 附带了一个名为
Konqueror 的 web 浏览器,
它是其他运行于 &unix; 系统上的 web 浏览器的一个强大的竞争对手。
要了解关于 KDE
的更多详情, 可以访问 KDE
网站。 与 FreeBSD 相关的 KDE
信息和资源, 可以在 FreeBSD 上的 KDE
团队 的网站找到。
安装 KDE
与 GNOME 和其他桌面环境类似,
这个软件可以很容易地通过预编译包或 Ports 套件来安装:
要从网络安装 KDE 只需要:
&prompt.root; pkg_add -r kde
&man.pkg.add.1; 就会自动的下载最新版本的应用程序。
要从源代码编译 KDE,
可以使用 ports 树:
&prompt.root; cd /usr/ports/x11/kde3
&prompt.root; make install clean
KDE 安装完成后,
X server必须被告知启动这个应用程序以代替默认的窗口管理器。
这可以通过编辑 .xinitrc 文件来完成:
&prompt.user; echo "exec startkde" > ~/.xinitrc
现在,无论您什么时候用
startx进入 X 视窗系统,
KDE 就将成为您的桌面环境。
如果使用一个像
XDM这样的显示管理器,
那配置文件可能有点不同。需要编辑一个
.xsession 文件,有关
kdm 的用法会在这章的后面介绍。
有关 KDE 的更多细节
现在 KDE 已经被安装在系统中了。
通过帮助页面或点击多个菜单可以发现很多东西。
&windows; 或 &mac; 用户会有回到家的感觉。
有关 KDE 的最好的参考资料是
它的在线文档。KDE
拥有它自己的 web 浏览器
Konqueror,
还有很多其他的应用程序和丰富文档。
这节的余下部分将讨论一些很难用走马观花的方法来学习的技术项目。
KDE 显示管理器
KDE
display manager
如果在同一系统上有多个用户, 则管理员通常会希望使用图形化的登录界面。
前面已经提到, 使用
XDM 可以完成这项工作。 不过,
KDE 本身也提供了另一个选择,
即 kdm, 它的外观更富吸引力,
而且提供了更多的登录选项。 值得一提的是,
用户还能通过菜单很容易地选择希望使用的桌面环境 (KDE、
GNOME 或其它)。
要启用 kdm, 需要修改
/etc/ttys 中的 ttyv8 项。
将其改为类似下面的样子:
ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure
XFce
有关XFce
XFce是以被GNOME
使用的 GTK+ 工具包为基础的桌面环境,
但是更加轻巧,适合于那些需要一个易于使用和配置并且简单而高效的桌面的人。
看起来,它非常像使用在商业&unix;系统上的
CDE环境。
XFce的主要特性有下面这些:
一个简单,易于使用的桌面。
完全通过鼠标的拖动和按键来控制等。
与CDE
相似的主面板,菜单,applets和应用launchers。
集成的窗口管理器,文件管理器,声音管理器,
GNOME 应用模块等等。
可配置界面的主题。(因为它使用GTK+)
快速,轻便,高效:对于比较老的/旧的机器或带有很少内存的机器仍然很理想。
更多有关XFce
的信息可以参考XFce
网站。
安装XFce
有一个二进制的XFce
软件包存在(在写作的时候)。要安装的话,执行下面的命令:
&prompt.root; pkg_add -r xfce4
另外,要从源代码建立,使用Ports Collection:
&prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install clean
现在,要告诉X服务器在下次X启动时执行
XFce。
只要执行下面的命令:
&prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrc
接下来就是启动 X,
XFce将成为您的桌面。
与以前一样,如果使用像
XDM 这样的显示管理器,需要创建一个
.xsession文件,就像有关
GNOME 的那节描述的,
使用/usr/local/bin/startxfce4
命令,或者,配置显示管理器允许在启动时选择一个桌面,
就像有关kdm的那节描述的。