如何创建一个简单的桌面环境?

60

我想知道如何创建一个简单的桌面环境,比如KDE、Gnome和LXDE,适用于Linux系统,特别是Ubuntu/Kubuntu,但我不知道从哪里开始以及它有多复杂。

我想创建一个简单、高效且轻量级的桌面,并从KDE、Gnome和Windows XP中再现一些好的功能。我不想重复造轮子,我想设计图形界面和主要对话框。

我可以使用C++和Qt,或者可能使用X11调用。像TWM这样的简单桌面将是第一步,然后我可以添加任务栏、启动菜单、新功能并尝试新的想法。

谢谢。

编辑

我已经安装了icewm,我认为这就是我需要开始的东西。在登录屏幕上,我可以选择是否使用KDE(桌面环境)或icewm(窗口管理器)。我不理解窗口管理器实际上是什么。

我已经下载了icewm的源代码,但我感到困惑。有一些概念我需要理解,例如,在加载桌面时登录屏幕后会发生什么,窗口如何工作等等。

编辑 2

我认为我需要一个好的教程。我必须了解窗口管理器或桌面环境是如何工作的。有一些概念我需要了解。


8
理解“桌面环境”和“窗口管理器”的区别可能会有所帮助。窗口管理器负责管理窗口。许多窗口管理器几乎不支持在"桌面"上放置图标和快捷方式,通常将其视为窗口的(可能是)装饰性背景。而“桌面环境”通常指一个更全面的系统,包括各种生产力应用程序、交互式桌面和一个窗口管理器。因此,开始创建一个窗口管理器可能会有所帮助。 - William Linton
3个回答

51

这并不是一个简单的任务,但绝非不可能。

其他人已经做到了,有很多DE或WM可供选择,所以只要你有耐心、技巧和大量咖啡,就可以做出一些伟大的事情。

学习DE和WM之间的区别

测试不同的DE和WM,也许有一个正好符合你的需求

创建自己的定制DE
这里有一个指南可以帮助你入手创建自己的定制DE

完成所有这些步骤后,你应该更好地掌握如何实现自己想要的目标。

复刻一个项目,然后开始动手吧。


解释非常好,确实!谢谢,乔纳斯!然而,MakeTechEasier上关于创建自定义DE的链接都是关于使用现有的DE和一些ShellScript在DE启动时运行自定义程序。它并不是真正意义上从头开始编写DE的内容。 - Stanley Sathler
1
@StanleySathler 简而言之,桌面环境是一套工具,我发现学习它们如何运作最简单的方法是使用 dwm 窗口管理器。当我使用和自定义它时,我注意到它与桌面环境相比缺少什么。当我第一次构建、安装并启动它时,我感到非常困惑,因为我什至不能做任何事情,甚至不能注销或关机。如果您愿意在从头开始编码之前先尝试了解它的工作原理,请试一试。不要像我当时那样感到困惑的提示:尝试使用 alt+a 和 shift+altl+q 快捷键。也许最好先阅读一下 "手册" xD - Fuseteam

16
这些都是开源项目,建议您选择一个简单的窗口管理器并查看其源代码。但需要警告您:这种项目不适合胆小的人,而且您自己开发的小玩具项目成为主流桌面的可能性很低,因此不要指望它成为更多的东西,只当作是学习练手(如果真的成为更多,则会令人惊喜)。
从战略上看,最好的选择是派生现有的窗口管理器,而不是试图从头开始构建全新的窗口管理器。
最后一点:Qt 是一个用于 C++ 的窗口框架,位于窗口管理器之上。 它本身并不像 Gnome/TWM 等一样是一个窗口管理器。 正如 @ptomato 正确指出的那样,Gnome 实际上是一个桌面环境,本身位于窗口管理器之上,可供选择,默认为 Mutter。

@ptomato:感谢您指出。我已经修改了我的答案。 - Marcelo Cantos

1
我会使用X calls并学习如何引导到CLI(命令行界面)。引导到CLI允许您在窗口管理器/桌面环境之间切换。然后我会设计一个窗口管理器。最后完成一个桌面环境。
它始于帧缓冲区。这就是80年代图形的工作方式。
然后你有X窗口系统。但是它一次只能显示一个窗口,而不能同时显示多个窗口。
窗口管理器是控制窗口位置的程序。这允许多个X窗口占用一个屏幕。
然后桌面环境基于此添加诸如任务栏、开始菜单和桌面图标等功能。
"Original Answer"翻译成"最初的回答"

1
这个回答的意图是好的,但并没有提供帮助。 - Nearoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接