目录
Debian 系统上的 X Window 系统 基于 X.Org 的源代码。截至 2009 年 7 月,它们是 X11R7.1(etch)、X11R7.3(lenny)、X11R7.3(squeeze) 和 X11R7.4(sid)。
提供了一些(元)软件包以简化安装。
表 7.1. X Window 的关键(元)软件包列表
有关 X 的基础知识,请参阅 X(7),LDP XWindow-User-HOWTO。
桌面环境 通常是 X 窗口管理器、文件管理器和一套兼容的实用程序程序的组合。
您可以从 aptitude
的任务菜单下设置完整的 桌面环境,例如 GNOME、KDE、Xfce 或 LXDE。
![]() |
提示 |
---|---|
在 Debian |
您也可以手动设置一个简单的环境,仅使用 X 窗口管理器,例如 Fluxbox。
有关 X 窗口管理器和桌面环境的指南,请参阅 X 窗口管理器。
Debian 菜单系统 使用 menu
软件包中的 update-menus(1) 为面向文本和 X 的程序提供通用接口。每个软件包将其菜单数据安装在“/usr/share/menu/
”目录中。请参阅“/usr/share/menu/README
”。
每个符合 Freedesktop.org 的 xdg 菜单系统的软件包都将其菜单数据安装在“/usr/share/applications/
”下的“*.desktop
”中。符合 Freedesktop.org 标准的现代桌面环境使用这些数据,并使用 xdg-utils
软件包生成其菜单。请参阅“/usr/share/doc/xdg-utils/README
”。
X Window 系统作为服务器和客户端程序的组合而被激活。这里需要注意 服务器 和 客户端 这两个词相对于 本地 和 远程 这两个词的含义。
表 7.2. 服务器/客户端术语列表
类型 | 描述 |
---|---|
X 服务器 | 在连接到用户显示器和输入设备的 本地主机 上运行的程序。 |
X 客户端 | 在 远程主机 上运行的程序,用于处理数据并与 X 服务器通信。 |
应用服务器 | 在 远程主机 上运行的程序,用于处理数据并与客户端通信。 |
应用程序客户端 | 在连接到用户显示器和输入设备的 本地主机 上运行的程序。 |
有关 X 服务器信息,请参阅 xorg(1)。
![]() |
注意 |
---|---|
X 服务器(post- |
以下命令通过使用 dexconf(1) 生成新的“/etc/X11/xorg.conf
”文件来(重新)配置 X 服务器。
# dpkg-reconfigure --priority=low x11-common # dpkg-reconfigure --priority=low xserver-xorg
如果您手动编辑了此“/etc/X11/xorg.conf
”文件,但希望再次自动更新它,请运行以下命令。
# sudo dpkg-reconfigure -phigh xserver-xorg
请仔细检查您的 X 配置,以了解您的显示器规格。对于大型高分辨率 CRT 显示器,最好将刷新率设置为显示器可以处理的最高值(85 Hz 非常好,75 Hz 还可以),以减少闪烁。对于 LCD 显示器,由于其响应速度较慢,较慢的标准刷新率 (60Hz) 通常就足够了。
![]() |
注意 |
---|---|
请注意不要使用过高的刷新率,这可能会导致显示器系统的致命硬件故障。 |
有几种方法可以使“X 服务器”(显示 端)接受来自“X 客户端”(应用程序 端)的连接。
表 7.3. 连接到 X 服务器的方法列表
方法 | 软件包 | popcon | 大小 | 用户 | 加密 | 相关用途 |
---|---|---|---|---|---|---|
xhost 命令 |
xbase-clients
|
http://qa.debian.org/popcon.php?package=xbase-clients | 61 | 未检查 | 否 | 已弃用 |
xauth 命令 |
xbase-clients
|
http://qa.debian.org/popcon.php?package=xbase-clients | 61 | 已检查 | 否 | 通过管道的本地连接 |
ssh -X 命令 |
openssh-client
|
http://qa.debian.org/popcon.php?package=openssh-client | 2246 | 已检查 | 是 | 远程网络连接 |
GNOME 显示管理器 |
gdm3
|
http://qa.debian.org/popcon.php?package=gdm3 | 5899 | 已检查 | 否 (XDMCP) | 通过管道的本地连接 |
KDE 显示管理器 |
kdm
|
http://qa.debian.org/popcon.php?package=kdm | 3746 | 已检查 | 否 (XDMCP) | 通过管道的本地连接 |
X 显示管理器 |
xdm
|
http://qa.debian.org/popcon.php?package=xdm | 725 | 已检查 | 否 (XDMCP) | 通过管道的本地连接 |
WindowMaker 显示管理器 |
wdm
|
http://qa.debian.org/popcon.php?package=wdm | 1825 | 已检查 | 否 (XDMCP) | 通过管道的本地连接 |
LTSP 显示管理器 |
ldm
|
http://qa.debian.org/popcon.php?package=ldm | 576 | 已检查 | 是 | 远程 SSH 网络连接(瘦客户端) |
![]() |
警告 |
---|---|
除非您有非常好的理由(例如使用加密),否则不要在 不安全 的网络上使用远程 TCP/IP 连接进行 X 连接。未经加密的远程 TCP/IP 套接字连接容易受到 窃听攻击,并且在 Debian 系统上默认禁用。请使用“ |
![]() |
提示 |
---|---|
LTSP 代表 Linux 终端服务器项目。 |
X Window 系统通常作为 X 会话 启动,它是 X 服务器和连接的 X 客户端的组合。对于普通桌面系统,它们都在工作站上执行。
X 会话 通过以下方式启动。
从命令行启动的 startx
命令
从“/etc/rc?.d/
”目录(“?
”对应于运行级别)的启动脚本末尾启动的 X 显示管理器 守护程序 *dm
程序之一
![]() |
提示 |
---|---|
显示管理器守护程序的启动脚本在实际执行自身之前,会检查“ |
![]() |
提示 |
---|---|
有关 X 显示管理器的初始环境变量,请参阅 第 8.3.5 节 “仅在 X Window 下的特定区域设置”。 |
本质上,所有这些程序都执行“/etc/X11/Xsession
”脚本。然后,“/etc/X11/Xsession
”脚本执行类似 run-parts(8) 的操作,以执行“/etc/X11/Xsession.d/
”目录中的脚本。这本质上是使用 exec
内置命令执行在以下顺序中找到的第一个程序。
X 显示管理器指定的作为“/etc/X11/Xsession
”参数的脚本(如果已定义)。
“~/.xsession
”或“~/.Xsession
”脚本(如果已定义)。
“/usr/bin/x-session-manager
”命令(如果已定义)。
“/usr/bin/x-window-manager
”命令(如果已定义)。
“/usr/bin/x-terminal-emulator
”命令(如果已定义)。
此过程受“/etc/X11/Xsession.options
”内容的影响。这些“/usr/bin/x-*
”命令指向的确切程序由 Debian 替代系统确定,并通过“update-alternatives --config x-session-manager
”等命令更改。
gdm3(1) 允许您从其菜单中选择 X 会话的会话类型(或桌面环境:第 7.2 节 “设置桌面环境”)和语言(或区域设置:第 8.3 节 “区域设置”)。它将选定的默认值保留在“~/.dmrc
”中,如下所示。
[Desktop] Session=default Language=ja_JP.UTF-8
在“/etc/X11/Xsession.options
”包含一行“allow-user-xsession
”而没有前导“#
”字符的系统上,任何定义了“~/.xsession
”或“~/.Xsession
”的用户都能够通过完全覆盖系统代码来自定义“/etc/X11/Xsession
”的操作。“~/.xsession
”文件中的最后一个命令应使用“exec some-window/session-manager
”的形式来启动您喜欢的 X 窗口/会话管理器。
以下是自定义 X 会话的新方法,无需像上面那样完全覆盖系统代码。
显示管理器 gdm3
可以选择特定的会话,并将其设置为“/etc/X11/Xsession
”的参数。
“~/.xsessionrc
”文件作为启动过程的一部分执行。(独立于桌面)
“~/.gnomerc
”文件作为启动过程的一部分执行。(仅限 GNOME 桌面)
基于 GUI 程序的会话管理软件可能会使用“~/.gnome2/session
”文件等。
使用“ssh -X
”可以实现从本地 X 服务器到远程应用服务器的安全连接。
如果您想避免使用“-X
”命令行选项,请在远程主机的“/etc/ssh/sshd_config
”中将“X11Forwarding
”条目设置为“yes
”。
在本地主机上启动 X 服务器。
在本地主机中打开一个 xterm
。
运行 ssh(1) 以建立与远程站点的连接,如下所示。
localname @ localhost $ ssh -q -X loginname@remotehost.domain Password:
在远程站点上运行 X 应用程序命令,例如“gimp
”,如下所示。
loginname @ remotehost $ gimp &
此方法可以显示来自远程 X 客户端的输出,就像它通过本地 UNIX 域套接字本地连接一样。
Fontconfig 2.0 创建于 2002 年,旨在提供一个独立于发行版的库,用于配置和自定义字体访问。 squeeze
之后的 Debian 使用 Fontconfig 2.0 进行字体配置。
X Window 系统上的字体支持可以总结如下。
传统的 X 服务器端字体支持系统
原始核心 X11 字体系统为旧版本的 X 客户端应用程序提供向后兼容性。
原始核心 X11 字体安装在 X 服务器上。
现代 X 客户端字体支持系统
现代 X 系统支持以下列出的所有字体(第 7.6.1 节 “基本字体”、第 7.6.2 节 “附加字体” 和 第 7.6.3 节 “CJK 字体”),并具有抗锯齿等高级功能。
Xft 2.0 将现代 X 应用程序(如来自 GNOME、KDE 和 OpenOffice.org 的应用程序)与 FreeType 2.0 库连接起来。
FreeType 2.0 提供字体栅格化库。
Fontconfig 为 Xft 2.0 提供字体规范的解析。有关其配置,请参阅 fonts.conf(5)。
X 渲染扩展 将字体访问和字形图像生成从 X 服务器移动到 X 客户端。
表 7.4. 支持 X Window 字体系统的软件包表
软件包 | popcon | 大小 | 描述 |
---|---|---|---|
xfonts-utils
|
http://qa.debian.org/popcon.php?package=xfonts-utils | 430 | X Window 系统字体实用程序 |
libxft2
|
http://qa.debian.org/popcon.php?package=libxft2 | 160 | Xft,一个将 X 应用程序与 FreeType 字体栅格化库连接起来的库 |
libfreetype6
|
http://qa.debian.org/popcon.php?package=libfreetype6 | 835 | FreeType 2.0 字体栅格化库 |
fontconfig
|
http://qa.debian.org/popcon.php?package=fontconfig | 432 | Fontconfig,一个通用的字体配置库 — 支持二进制文件 |
fontconfig-config
|
http://qa.debian.org/popcon.php?package=fontconfig-config | 340 | Fontconfig,一个通用的字体配置库 — 配置文件数据 |
您可以通过以下方式检查字体配置信息。
“xset q
”用于核心 X11 字体路径
“fc-match
”用于 fontconfig 字体默认值
“fc-list
”用于可用的 fontconfig 字体
![]() |
提示 |
---|---|
“企鹅和 Unicode”是对现代 X Window 系统的良好概述。 http://unifont.org/ 上的其他文档应提供有关 Unicode 字体、启用 Unicode 的软件、国际化以及 自由/开源软件 (FLOSS) 操作系统上的 Unicode 可用性问题的良好信息。 |
有 2 种主要的 计算机字体 类型。
位图字体(适用于低分辨率栅格化)
轮廓/笔画字体(适用于高分辨率栅格化)
虽然位图字体的缩放会导致锯齿状图像,但轮廓/笔画字体的缩放会产生平滑的图像。
Debian 系统上的位图字体通常由压缩的 X11 pcf 位图字体文件 提供,其文件扩展名为“.pcf.gz
”。
Debian 系统上的轮廓字体由以下内容提供。
PostScript Type 1 字体文件,其文件扩展名为“.pfb
”(二进制字体文件)和“.afm
”(字体度量文件)。
![]() |
提示 |
---|---|
OpenType 旨在取代 TrueType 和 PostScript Type 1。 |
表 7.5. 相应的 PostScript Type 1 字体表
字体软件包 | popcon | 大小 | 无衬线字体 | 衬线字体 | 等宽字体 | 字体来源 |
---|---|---|---|---|---|---|
PostScript | N/A | N/A | Helvetica | Times | Courier | Adobe |
gsfonts | http://qa.debian.org/popcon.php?package=gsfonts | 4632 | Nimbus Sans L | Nimbus Roman No9 L | Nimbus Mono L | URW(Adobe 兼容尺寸) |
gsfonts-x11 | http://qa.debian.org/popcon.php?package=gsfonts-x11 | 68 | Nimbus Sans L | Nimbus Roman No9 L | Nimbus Mono L | 对 PostScript Type 1 字体的 X 字体支持。 |
t1-cyrillic | http://qa.debian.org/popcon.php?package=t1-cyrillic | 4984 | Free Helvetian | Free Times | Free Courier | URW extended(Adobe 兼容尺寸) |
lmodern | http://qa.debian.org/popcon.php?package=lmodern | 42620 | LMSans* | LMRoman* | LMTypewriter* | 基于 Computer Modern(来自 TeX)的可缩放 PostScript 和 OpenType 字体 |
表 7.6. 相应的 TrueType 字体表
![]() |
提示 |
---|---|
DejaVu 字体基于 Bitstream Vera 字体,并且是其超集。 |
aptitude(8) 帮助您轻松找到其他字体。
“任务”→“本地化”下的简短软件包列表
使用 debtag 上的正则表达式过滤的字体数据平面软件包列表:“~Gmade-of::data:font
”
使用软件包名称上的正则表达式过滤的 BDF(位图)字体软件包平面软件包列表:“~nxfonts-
”
使用软件包名称上的正则表达式过滤的 TrueType(轮廓)字体软件包平面软件包列表:“~nttf-
”
由于 自由 字体有时受到限制,因此安装或共享一些商业 TrueType 字体是 Debian 用户的选择。为了使此过程对用户来说更容易,创建了一些方便的软件包。
ttf-mathematica4.1
ttf-mscorefonts-installer
您将获得真正好的 TrueType 字体选择,但代价是用非自由字体污染您的 自由 系统。
以下是一些关注 CJK 字符 字体的要点。
表 7.7. CJK 字体名称中用于指示字体类型的关键词表
字体类型 | 日文字体名称 | 中文字体名称 | 韩文字体名称 |
---|---|---|---|
无衬线 | gothic, ゴチック | hei, gothic | dodum, gulim, gothic |
衬线 | mincho, 明朝 | song, ming | batang |
字体名称(例如带有“P”的“VL PGothic”)是比例字体,它对应于固定宽度的“VL Gothic”字体。
例如,Shift_JIS 代码表包含 7070 个字符。它们可以分为以下几组。
JIS X 0201 单字节字符(191 个字符,也称为半角字符)
JIS X 0208 双字节字符(6879 个字符,也称为全角字符)
双字节字符在使用 CJK 等宽字体的控制台终端上占用双倍宽度。为了应对这种情况,文件扩展名为“.hbf
”的 汉字位图字体 (HBF) 文件 可以用于包含单字节和双字节字符的字体。
为了节省 TrueType 字体文件的空间,可以使用文件扩展名为“.ttc
”的 TrueType 字体集合文件。
为了覆盖字符的复杂代码空间,CID 键控 PostScript Type 1 字体与以“%!PS-Adobe-3.0 Resource-CMap
”开头的 CMap 文件一起使用。这在普通的 X 显示中很少使用,但用于 PDF 渲染等(请参阅第 7.7.2 节 “X 实用程序”)。
以下是基本办公应用程序的列表(OO 是 OpenOffice.org)。
表 7.8. 基本 X 办公应用程序列表
这里列出了一些引起我注意的基本实用工具应用程序。
表 7.9. 基本 X 实用工具应用程序列表
软件包 | popcon | 软件包大小 | 类型 | 描述 |
---|---|---|---|---|
evince
|
http://qa.debian.org/popcon.php?package=evince | 1073 | GNOME | 文档 (pdf) 查看器 |
okular
|
http://qa.debian.org/popcon.php?package=okular | 3215 | KDE | 文档 (pdf) 查看器 |
evolution
|
http://qa.debian.org/popcon.php?package=evolution | 4983 | GNOME | 个人信息管理 (群件和电子邮件) |
kontact
|
http://qa.debian.org/popcon.php?package=kontact | 4971 | KDE | 个人信息管理 (群件和电子邮件) |
scribus
|
http://qa.debian.org/popcon.php?package=scribus | 54492 | KDE | 桌面页面布局编辑器 |
glabels
|
http://qa.debian.org/popcon.php?package=glabels | 1269 | GNOME | 标签编辑器 |
gnucash
|
http://qa.debian.org/popcon.php?package=gnucash | 7016 | GNOME | 个人会计 |
homebank
|
http://qa.debian.org/popcon.php?package=homebank | 759 | GTK | 个人会计 |
kmymoney
|
http://qa.debian.org/popcon.php?package=kmymoney | 9488 | KDE | 个人会计 |
xsane
|
http://qa.debian.org/popcon.php?package=xsane | 702 | GTK | 扫描仪前端 |
![]() |
注意 |
---|---|
要使 |
![]() |
注意 |
---|---|
在 GNOME 桌面环境下安装 |
xmodmap(1) 是一个用于修改 X Window 系统中键盘映射和指针按钮映射的实用程序。要获取 keycode,请在 X 中运行 xev(1) 并按下按键。要获取 keysym 的含义,请查看 "/usr/include/X11/keysymdef.h
" 文件(x11proto-core-dev
软件包)中的 MACRO 定义。此文件中的所有 "#define
" 语句都命名为 "XK_
" 前缀加上 keysym 名称。
大多数传统的 X 客户端程序,例如 xterm(1),可以使用一组标准命令行选项启动,以指定几何形状、字体和显示。
它们还使用 X 资源数据库来配置其外观。X 资源的系统范围默认值存储在 "/etc/X11/Xresources/*
" 中,而应用程序默认值存储在 "/etc/X11/app-defaults/*
" 中。使用这些设置作为起点。
"~/.Xresources
" 文件用于存储用户资源规范。此文件在登录时自动合并到默认的 X 资源中。要更改这些设置并使其立即生效,请使用以下命令将它们合并到数据库中。
$ xrdb -merge ~/.Xresources
请参阅 x(7) 和 xrdb(1)。
在 http://dickey.his.com/xterm/xterm.faq.html 了解关于 xterm(1) 的所有信息。
![]() |
警告 |
---|---|
永远不要在 root 帐户下启动 X 显示/会话管理器,方法是在显示管理器(如 |
以 root 身份运行特定 X 客户端(例如 "foo
")的简单方法是使用 sudo(8) 等,如下所示。
$ sudo foo &
$ sudo -s # foo &
$ gksu foo &
$ ssh -X root@localhost # foo &
![]() |
注意 |
---|---|
仅为此目的如上所述使用 ssh(1) 是资源浪费。 |
为了使 X 客户端连接到 X 服务器,请注意以下事项。
旧用户的 "$XAUTHORITY
" 和 "$DISPLAY
" 环境变量的值必须复制到新用户的环境变量中。
"$XAUTHORITY
" 环境变量的值指向的文件必须可供新用户读取。
gksu
软件包 (popcon: ) 是一个专门用于获取 root 权限的 GTK+ GUI 软件包。它可以配置为使用 su(1) 或 sudo(8) 作为其后端,具体取决于 "/apps/gksu/sudo-mode
" gconf 键。您可以使用 gconf-editor(1) 编辑 gconf 键(菜单:“应用程序” → “系统工具” → “配置编辑器”)。