无谓的窗口装饰,第 1 部分

作者:Marcel Gagné

Linux 赋予您定义工作方式的能力。它给您 选择

当您日复一日地使用那个其他操作系统时,选择并不是您真正需要担心的事情。只有一种做事方式,而且基本上就是那样。Linux 出于好意,使事情变得复杂。选择?我应该用它做什么?嗯,首先,通过定义您的工作方式和工作环境,您可能会发现自己工作得更好——毕竟,机器应该适应 您的需求,而不是反过来。至少我们最初被引导相信是这样的。

整个桌面 体验 源于我们的老朋友 XFree86,免费的 X 窗口系统。当您启动 GNOMEKDE 会话时,您启动的远不止 X-Windows。事实上,大多数运行 Linux 的人从未见过他们的系统仅运行 X-Windows,因为我们通常使用窗口管理器。窗口管理器定义了您的会话对您的外观、窗口的定位方式、所涉及的装饰类型、背景、标题栏、主题等等。您使用的窗口管理器取决于几个不同的因素。如果您使用像 gdm (GNOME 显示管理器) 或 kdm (KDE 显示管理器) 这样的东西登录,您可以选择要使用的桌面环境。如果您像我一样,您喜欢键入如下内容来启动您的 X-Windows 会话。

     startx -- -bpp 16

这样,我使用的窗口管理器在我的 $HOME/.xinitrc 文件中定义。也有该文件的系统级版本(如果您在主目录中没有一个),您通常可以在 /etc/X11/xinit 目录中找到它。它实际上被称为 system.xinitrc,但需要被称为 .xinitrc 才能在您的主目录中读取。对于我们将要探讨的示例,我希望您尽可能使用基本的文件,因此我们将从头开始。我想做的是向您展示如何在相当低的级别上操作您的 X-Windows 环境。准备好了吗?

好吧,谁想看看他们的 X 窗口系统是什么样子的,嗯,呃,好吧,裸奔?那就和我一起试试这个小实验。使用您最喜欢的编辑器,无论是 nanopicovi 还是 Emacs(我将使用 vi),编辑您的“.xinitrc”文件。等等。我应该警告您,根据您的 Linux 发行版,您可能有一个“.Xclients”文件代替(我们稍后会讨论)。我用来撰写本文的系统运行的是 Red Hat 6.2,无论我使用 .xinitrc 还是 .Xclients,一切都运行良好。就我个人而言,我总是使用 .xinitrc 文件进行我的捣鼓。

快速注意事项。在您的主目录中执行 ls -al .xinitrc。如果您在那里找到一个 .xinitrc 文件,请将其重命名为类似 .xinitrc.bak 的名称以进行此实验。如果您找到一个 .Xclients 文件,也做同样的事情(好吧,将其重命名为 .Xclients.bak,而不是 .xinitrc.bak——但您知道的)。这样我们以后总能把它找回来。事实上,在我向您展示之后,您可能会想要这样做。这是我的文件;创建一个看起来相同的文件。

     rxvt

如果您的系统上没有 rxvt(终端模拟器程序),请改用 xterm。在我们进一步深入之前,我们将使用 free 命令并记下一些关于内存使用情况的笔记。您可能需要打印出来,因为我将暂时移除您的桌面,无论是 GNOME、KDE 还是 twm(tw 是什么?)。关闭所有应用程序,注销您的桌面并返回控制台模式。如果您的桌面在启动时自动启动,则有几种关闭它的方法。如果您运行的是像 Debian 或 Storm 这样的系统,您可以在关闭所有其他 X-Windows 应用程序(不包括您的 xterm 窗口)后,运行此命令

     /etc/init.d/kdm stop

顺便说一句,kdm 可以很容易地是 gdm 甚至 xdm,这取决于您使用的登录显示管理器。在 Red Hat 系统中,显示管理器从 /etc/inittab 文件控制,您应该编辑该文件并注释掉以下行(通过在该行前面放置一个 # 符号)

     x:5:respawn:/etc/X11/prefdm -nodaemon 

现在,键入 init q(小心不要键入数字而不是“q”),然后关闭您的桌面。从登录显示管理器,您可能需要 Ctrl-Alt-Backspace 来完成整个过程。另一种方法是执行“ps”并杀死登录显示管理器进程。当然,您可以直接 重启,但是 我们在这里不重启,除非我们必须这样做……即使那样……。当需要将事情恢复正常时,请记住取消注释该行。

唷!这么多不同的方法来做同样的事情。无论如何,当您回到控制台模式时(我听到后面有聪明人评论说他们一直处于控制台模式),键入 free 命令并查看输出。以下是我自己系统的信息。

             total       used       free     shared    buffers     cached
Mem:        127784      78540      49244      14212      16380      38560
-/+ buffers/cache:      23600     104184
Swap:       122936      70780      52156

特别注意第二行,“used”标题下。不算分配给缓冲区和缓存的内存,我正在使用 23600 千字节的内存(运行着许多服务器,邮件、httpd、postgresql、fonttastic 等)。我在我一直在玩的 Storm Linux 系统上做了同样的事情(没有运行那么多服务),数字几乎只有 7.5 兆字节。现在,让我们试试我们的裸奔 X 窗口系统,好吗?在命令提示符下,键入 startx

您会注意到一个完全朴素的 rxvt 终端会话,它位于一个没有特征的背景上。我要您做的第一件事是运行 free 命令,并注意在这个简单而乏味的 X-Windows 会话运行时内存利用率的变化。现在移动您的鼠标指针。您是否尝试抓住终端窗口以移动它?没用,不是吗?好吧,让我们在该终端窗口中键入一个命令,例如 xcalc。会发生什么?

计算器出现了,但它在与 X-Windows 终端相同的位置启动,这并没有形成一个特别有用的工作环境。这足以让您认为您的常规桌面环境不仅仅是 GWD。使用 control-C 中断 xcalc,并在命令提示符下键入 exit。系统将使您返回控制台。

好的,在我们返回常规桌面之前,让我们尝试另一件事。在您的微型 .xinitrc 文件中,将显示“rxvt”(或“xterm”)的行更改为此行

     exec twm

完成此操作后,再次启动 X-Windows。再一次,您有一个非常乏味的 X-Windows 显示,但是如果您用鼠标左键单击,它会弹出一个菜单。这是 Tab 窗口管理器(即 twm 的含义)的界面。您可以移动窗口、调整大小、图标化,但仅此而已。顺便说一句,您可以修改该菜单。事实上,根据您的 Linux 版本,您可能会发现该菜单中甚至没有可用的 xterm。最好的选择是直接注销(是的,它在菜单上,尽管您始终可以使用 X-Windows 紧急出口,Ctrl-Alt-Backspace)。要向该菜单添加内容,请将系统 twmrc 文件从其在 /etc/X11/twm 目录中的位置复制到您的主目录中。系统文件名为 system.twmrc,您希望主目录中的文件名为 .twmrc。使用您最喜欢的编辑器,向下滚动到文件底部附近。菜单部分以“menu defops”字样开头。在 "" f.nop 行之一之后,添加您希望在菜单上看到的命令。我决定保持简单。

""              f.nop
"Rxvt"          !"/usr/bin/rxvt &"
"Xcalc"         !"/usr/x11R6/bin/xcalc &" 

现在,再次启动 startx,然后左键单击乏味的 X-Windows 屏幕。看到菜单中的新命令了吗?启动一个 X-Windows 终端。酷,是吧?也许不是?那么,到底为什么您要这样做呢?再次键入 free 命令。查看 内存使用情况。现在,退出 X-Windows,删除您过于基本的 .xinitrc 文件,并使用您自己的常规窗口管理器(无论是 GNOME 还是 KDE)重新启动。打开一个 xterm 窗口并再次键入 free

就此而言,下次再见。大家保重,记住一点无谓的窗口装饰永远不会伤害任何人。X-Windows 不需要警告标签。

电子邮件:ljeditors@ssc.com

加载 Disqus 评论