您想构建自己的DE(桌面环境)。常见的例子是 GNOME 和 KDE,尽管其中更流行。实际上,构建自己的 DE 曾经非常流行,并且经常创建专用的脚本工具。
您通常需要组合多个工具:窗口管理器、工具栏程序、桌面管理器(图标)、会话管理器,可能还有更多。其中只有窗口管理器是必需的(在 X 服务器内不运行任何 WM 通常没有任何意义),其他部分是可选的。您通常不会从头开始编写这些工具(这需要大量工作),而是使用已经可用的组件。
请注意,GNOME 和 KDE 实际上都包含这些元素(集成良好)。例如,GNOME 由一个窗口管理器组成(metacity
), 工具栏 (gnome-panel
)、桌面管理器(nautilus
) 等等。如果需要,您可以将一个元素更改为另一个元素:它曾经很流行使用sawfish
作为窗口管理器而不是metacity
,保持所有其他元素完好无损。现在流行使用compiz
代替metacity
.
我以前用过FVWM http://fvwm.org/,这是一个窗口管理器,具有额外的(相当不错的)脚本功能,可用于创建工具栏、菜单和其他东西。很好的例子之一是FVWM-水晶 http://gna.org/projects/fvwm-crystal/,这是一个基于 FVWM 和其他一些工具构建的完整 DE,用 FVWM 脚本和 Python 混合编写。实际上,您只需打开 FVWM 的脚本控制台并键入命令即可在运行时更改任何类型的行为。如果您想从已经可用的东西开始,FVWM-Crystal 可能是一个很好的起点;如果你想从头开始构建你的 DE,那么裸 FVWM 是很好的选择。
[更新:看来gnome shell http://live.gnome.org/GnomeShell在这方面与FVWM
。它的大部分行为是使用 JavaScript(而不是 FVWM 中的自定义语言)编写的脚本,并且非常容易更改。它的开发也非常积极,因为它是 GNOME3 的重要组成部分,对组合有很好的支持。这是黑客的天堂;-)]
[更新2:看来我对 gnome-shell 的看法是正确的。有一个Cinnamon http://cinnamon.linuxmint.com/,它使用相同的框架(mutter
窗口管理器)作为gnome-shell
,但构建的桌面的工作方式与gnome-shell
.]
有一个网站是实现想法的良好来源:lynucs.org http://www.lynucs.org/。虽然已经下降了两年了,但还是archived http://web.archive.org/web/20080822072156/http://www.lynucs.org/.
警告:许多这样的组件不再被维护,特别是自从 GNOME/KDE 开始变得实际可用之后。该领域的开发通常更多地由嵌入式设备的特定要求驱动:phones http://www.enlightenment.org/ or netbooks http://maketecheasier.com/unity-new-desktop-environment-for-netbook/2010/05/11.
现在,回答您的实际问题:
- Linux/OS flaver:任何易于定制的东西:Debian、Arch、Gentoo、LFS http://www.linuxfromscratch.org/...
- 工具/框架:这取决于你想要实现什么。如果您想编写自定义工具栏,您可能只需要使用一些脚本语言(例如 FVWM),自定义工具,例如小桌板 http://adesklets.sourceforge.net/,或者用 Qt(如果您的大多数其他组件在 Qt 中)或 GTK(如果您的大多数其他组件在 GTK 中)编写您自己的组件。
- 个人 UI:有很多,像 lynucs.org 这样的网站是它们的一个很好的汇编(lynucs 列出了每个桌面中使用的组件)。
- 复杂的透明度效果:较旧的工具通常不会本地处理它,或者做一些简单的事情,例如仅重复使用桌面壁纸的一部分作为自己的背景(所谓的假透明度)。您很可能需要编写自己的代码,例如作为插件
compiz
.