📄 x-understanding.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>理解 X</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="X Window 系统" href="x11.html" /><link rel="PREVIOUS" title="X Window 系统" href="x11.html" /><link rel="NEXT" title="安装 XFree86" href="x-install.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="x11.html"accesskey="P">Prev</a></td><td width="80%" align="center" valign="bottom">Chapter 5. X Window 系统</td><td width="10%" align="right" valign="bottom"><a href="x-install.html"accesskey="N">Next</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="X-UNDERSTANDING" name="X-UNDERSTANDING">5.2. 理解 X</a></h1><p>对于那些熟悉其他图形环境,比如 <spanclass="TRADEMARK">Microsoft</span>® <span class="TRADEMARK">Windows</span>®或者 <span class="TRADEMARK">Mac OS</span>®的用户来说,第一次使用 X可能会感觉很惊讶。</p><p>你不需要了解各种 X 组件的所有细节和它们是如何互相影响的;然而,了解一些基本的知识可以让你很好地利用X的强大功能。</p><div class="SECT2"><h2 class="SECT2"><a id="AEN5875" name="AEN5875">5.2.1. 为什么要使用 X?</a></h2><p>X 不是第一个为 <spanclass="TRADEMARK">UNIX</span>®而开发的视窗系统,但它是最流行的。 X的原始开发团队在开发 X 之前就已经在另外一个视窗系统上工作了。 那个系统的名字叫做 ``W''(就是 ``Window'')。X 只是罗马字母中 W 后面 的一个。</p><p>X 可以被叫做 ``X'', ``X Window 系统'', ``X11'', 和其他的一些。把 X11 称做 ``XWindows'' 可能会冒犯某些人; 查看 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">X</span>(7)</span> 可以了解更多的信息</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN5889" name="AEN5889">5.2.2. X 客户机/服务器模型</a></h2><p>X 一开始就是针对网络而设计的,所以 采用了 ``client-server''模型。在 X 模型中, ``Xserver''运行在有键盘,显示器,鼠标的计算机上。服务器用来管理显示信息,处理来自键盘和鼠标的输入等。 每一个 X 应用程序 (比如 <bclass="APPLICATION">XTerm</b>, 或者 <b class="APPLICATION"><spanclass="TRADEMARK">Netscape</span>®</b>) 就是一个 ``client''。 一个 client给服务器发送信息,如 ``Please draw a window at these coordinates'',然后服务器就返回处理信息,如 ``The user just clicked on the OK button''.</p><p>如果你在只有一台计算机的家里或小型办公环境中使用 FreeBSD,你就需要在同一台计算机上运行 X server和 X client。然而,如果你有很多运行 FreeBSD的机器,你可以在你的桌面计算机上运行 X server,而在比较高档的服务器上运行X应用程序。在这样的环境中,X server 和 X client 之间的通信就可以通过网络来进行。</p><p>这迷惑了一些人,因为 X 的术语和他们料想的有些不同。 他们以为 ``X server''是运行的功能强大的大型机上的,而 ``X client'' 是运行在他们桌面上的计算机上的。</p><p>记住,X server 是有键盘和显示器的那台计算机,而 X clients 是那些显示窗口的程序。</p><p>并不需要 client 和 server 都运行在同一种操作系统上,或甚至运行在同一种类型的计算机上。在 <span class="TRADEMARK">Microsoft</span> <spanclass="TRADEMARK">Windows</span> or?Apple\'s <span class="TRADEMARK">Mac OS</span>上运行 一个 X server 也是可以的,在它们上面也有很多免费的和商业化的应用程序。</p><p>在 FreeBSD 上使用的 X server 叫做 <b class="APPLICATION"><spanclass="TRADEMARK">XFree86</span>™</b>, 是在遵循一个和 FreeBSD 的许可协议相似的协议下可以免费使用的。针对 FreeBSD 的商业化 X servers 也是可用的。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN5912" name="AEN5912">5.2.3. 窗口管理器</a></h2><p>X 的设计哲学很像 <span class="TRADEMARK">UNIX</span> 的设计哲学, ``tools, notpolicy''。这就意味着 X 不会试图去规定任务应该如何去完成,而是,只给用户提供一些工具,至于决定如何使用这些工具是用户自己的 事情。</p><p>这套哲学扩展了 X,它不会规定窗口在屏幕上应该是什么样子,要如何移动鼠标,什么键应该用来切换窗体 (比如, <b class="KEYCAP">Alt</b>+<bclass="KEYCAP">Tab</b>按键,在 <span class="TRADEMARK">Microsoft</span> <spanclass="TRADEMARK">Windows</span> 环境中的作用), 每个窗口的工具条应该看起来像什么,他们是否应该有关闭按钮等等。</p><p>实际上,X 代表了一种叫做 ``Window Manager''的应用程序的职责。有很多这样的程序可用: <bclass="APPLICATION">AfterStep</b>, <b class="APPLICATION">Blackbox</b>, <bclass="APPLICATION">ctwm</b>, <b class="APPLICATION">Enlightenment</b>, <bclass="APPLICATION">fvwm</b>, <b class="APPLICATION">Sawfish</b>, <bclass="APPLICATION">twm</b>, <b class="APPLICATION">WindowMaker</b>,等等。这些窗口管理器的每一个 都提供了不同的界面和观感;其中一些还支持``虚拟桌面''; 有一些允许你可以定制一些键来管理你的桌面; 一些有 ``Start''按钮,或者其他类似的设计;一些有 ``themeable'',通过安装一个新的主题允许外观的完全改变。这些窗口管理器,还有很多其他的,都可以在 Ports Collection 的<tt class="FILENAME">x11-wm</tt> 分类目录里找到。</p><p>另外,<b class="APPLICATION">KDE</b> 和 <b class="APPLICATION">GNOME</b>桌面环境都有他们自己的窗口管理器 与桌面集成。</p><p>每个窗口管理器也有不同的配置机制;针对绝大多数的配置任务,有些 GUI工具需要你手工来写配置文件, 至少如 (<b class="APPLICATION">sawfish</b>) 需要一个用 Lisp语言来写的配置 文件。</p><div class="NOTE"><blockquote class="NOTE"><p><b>焦点策略:</b> 窗口管理器的另一个特性是鼠标的 ``focus policy''。每个窗口系统都需要有一个选择窗口的方法来接受键盘的输入信息,以及当前哪个窗口处于可用状态。</p><p>你通常比较熟悉的是一个叫做 ``click-to-focus''的焦点策略。 这是 <spanclass="TRADEMARK">Microsoft</span> <span class="TRADEMARK">Windows</span>使用的典型焦点策略,也就是你在一个窗口上点击 一下鼠标,这个窗口就处于当前可用的状态。</p><p>X不支持一些特殊的焦点策略。而是,窗口管理器控制着在什么时候哪个窗口拥有焦点。不同的窗口管理器支持不同的焦点方案。它们都支持点击即获得焦点,而且它们中的大多数都支持好几种方案。</p><p>最流行的焦点策略:</p><div class="VARIABLELIST"><dl><dt>focus-follows-mouse</dt><dd><p>鼠标指示器下面的窗口就是获得焦点的窗口。这可以不是位于其他所有窗口顶部的窗口。你可以通过将鼠标移到另一个窗口就可以来改变焦点,你不需要在它上面点击。</p></dd><dt>sloppy-focus</dt><dd><p>这种方式是对focus-follows-mouse策略的一个小小扩展。对于focus-follows-mouse,如果你在根窗口(或桌面背景)上移动鼠标,键盘的输入也会丢失。对于sloppy-focus,只有当指针在键入一个新窗口时,窗口焦点才会发生变化,当退出当前窗口时是不会变化的。</p></dd><dt>click-to-focus</dt><dd><p>当前窗口由鼠标点击来选择。窗口被``突出显示'' ,出现在所有其他窗口的前面。即使指针被移向了另一个窗口,所有的键盘输入仍会被这个窗口接收。</p></dd></dl></div><p>许多窗口管理器支持其他的策略,与这些相比又有些变化。你可以看具体窗口管理器的文档。</p></blockquote></div></div><div class="SECT2"><h2 class="SECT2"><a id="AEN5967" name="AEN5967">5.2.4. 窗口部件</a></h2><p>提供工具而非策略的X方法使得在每个应用程序屏幕上看到的窗口部件得到了 大大的扩展。</p><p>``Widget'' 只是针对用户接口中所有列举项目的一个术语,它可以用某种方法来点击或操作;如按钮,复选框,单选按钮,图标,列表框等等。 <spanclass="TRADEMARK">Microsoft</span> <spanclass="TRADEMARK">Windows</span>把这些叫做``控件''。</p><p><span class="TRADEMARK">Microsoft</span> <span class="TRADEMARK">Windows</span>和苹果公司的 <span class="TRADEMARK">Mac OS</span> 都有一个严格的窗口部件策略。应用程序开发员被建议确保他们的应用程序共享一个普通的所见即所得的用户界面。对于X,它并不要求一个特殊的图形风格或一套相结合的窗口部件集。</p><p>这样的结果是你不能期望 X 应用程序只拥有一个普通的所见即所得的界面。有很多的流行的窗口部件集设置,包括来自于 MIT 的 Athena, <b class="APPLICATION"><spanclass="TRADEMARK">Motif</span>®</b> (模仿 <spanclass="TRADEMARK">Microsoft</span> <span class="TRADEMARK">Windows</span>的窗口风格), <b class="APPLICATION">OpenLook</b>, 和其他一些窗口部件集。</p><p>今天,绝大多数比较新的X应用程序将使用一个现代风格的窗口设计, 像 Qt, 用来设计 <bclass="APPLICATION">KDE</b>, 或 <b class="APPLICATION">GTK</b>, 用来设计 <bclass="APPLICATION">GNOME</b>。 在这样一种窗口系统下,<span class="TRADEMARK">UNIX</span>桌面的一些所见即所得特性作了一些收敛,以使 初学者感到更容易一些。</p></div></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="x11.html" accesskey="P">Prev</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">Home</a></td><td width="33%" align="right" valign="top"><a href="x-install.html"accesskey="N">Next</a></td></tr><tr><td width="33%" align="left" valign="top">X Window 系统</td><td width="34%" align="center" valign="top"><a href="x11.html" accesskey="U">Up</a></td><td width="33%" align="right" valign="top">安装 <spanclass="TRADEMARK">XFree86</span>™</td></tr></table></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -