第7章 构建桌面环境

计算机领域中的桌面环境(Desktop Environment)其实是一种比喻的说法,即图形用户界面就像物理书桌一样,其上可以放置文件夹、文档等。桌面最初用来特指个人计算机(PC),但是现在不只个人计算机有图形界面环境,服务器、嵌入式设备等基本都提供桌面环境。桌面环境包括窗口管理器、任务条等基本组件,除了这些基本的组件外,有的桌面环境还提供文件管理器、控制面板等。

桌面环境是操作系统中人机交互的关键部分,理解它的基本运作原理,无论是对理解操作系统,还是对开发应用程序,都有极大的帮助。我们处于这样一个追求个性的年代,无论是用于消费类电子设备的移动系统,还是用于PC的中规中矩的桌面系统,人们都已不再满足于千篇一律的桌面。打造一个全新的个性化桌面,绝不只是停留在更改个背景图、换个主题这个层面,我们需要更大的革新。但是如果对桌面环境的基本原理都不甚了解,那又何谈去开发打造具有创造性的用户交互。

因此,在本章中我们带领读者从头构建一个基本的桌面环境,包括窗口管理器、任务条以及一个显示桌面背景的组件。为了使读者更能深刻体会X的客户/服务器模型,窗口管理器基于Xlib编写,而任务条等组件则展示了使用GTK图形库的编程方法。

限于篇幅,我们没有将全部源代码全部贴到书中,所以请读者结合随书光盘中附带的源代码进行阅读。另外,本章虽然涉及Xlib和GTK编程,但是为了不干扰主线——构建桌面环境,我们不会过多讨论它们的编程,其中涉及的API,如有必要请参考Xlib和GTK各自的参考手册。