首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >定制Linux GUI:从哪里开始?

定制Linux GUI:从哪里开始?
EN

Stack Overflow用户
提问于 2010-09-05 21:51:55
回答 3查看 58.1K关注 0票数 59

长期以来,我一直对开发适合我的需求和兴趣的操作系统UI感兴趣。在我年轻的时候,我疯狂地玩着Windows上的Stardock皮肤工具。我喜欢开发我自己的窗口样式和布局想法。从那时起,我就有了一种无法挠挠的感觉。

  • 我对摆弄底层内核操作不是特别感兴趣,只对表象方面感兴趣。我一直在考虑Linux的一些风格。
  • 虽然我希望自己创建一些基本的集成工具/应用程序,但我主要对基本窗口、工具栏、桌面和文件管理的演示感兴趣。
  • 如果可能,我不想被禁止使用现有的应用程序。例如,我对编写自己的web浏览器没有兴趣,但有能力将现有工具应用到设计中将是一个很大的优势。
  • 我的想法有时非常直观,所以能够产生更复杂的透明效果和不寻常的窗口形状将是有用的。或多或少,能够在OS或Windows上再现当前UI设计的图形逼真度将是理想的。我鼓励使用
  • ,这是一种操作系统风格和工具,可以让我从空白屏幕开始,从头开始工作,或者包括基础知识。传统意义上的“桌面”概念不应该是强制性的。灵活地做不同的事情对我来说很重要。

我要找的是:

我感兴趣的是什么Linux/OS版本可能有意义,什么工具/框架对完成任务有用( Qt在这里似乎是一个流行的建议),以及关于如何/从哪里开始开发/测试这样的UI的基本信息。我也很有兴趣阅读人们可能已经开发出的任何“个人”UI。

这远远超出了我的正常开发工作,所以作为免责声明,如果我看起来很困惑,请原谅我的天真。欢迎纠正洞察力。

我意识到这是一个很大的问题,所以感谢那些花时间提出建议的人。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-05 23:11:22

您希望构建自己的DE (桌面环境)。常见的例子是GNOME和KDE,尽管它们中更多的是流行的。实际上,构建自己的DE曾经非常流行,而且经常会创建专用的脚本工具。

您通常需要组合多个工具:窗口管理器、工具栏程序、桌面管理器(图标)、会话管理器,可能还有更多工具。除此之外,只有窗口管理器是必需的部分(在X服务器中不运行任何WM通常没有任何意义),其他部分是可选的。您通常不会从头开始编写这些工具(这是一项大量的工作),而是使用已有的组件。

请注意,GNOME和KDE实际上都包含这些元素(集成良好)。例如,GNOME由窗口管理器(metacity)、工具栏(gnome-panel)、桌面管理器(nautilus)等组成。如果您愿意,您可以将一个元素更改为另一个元素:以前流行的做法是使用sawfish而不是metacity作为窗口管理器,从而保持所有其他元素不变。现在流行的是用compiz代替metacity

我曾经使用过FVWM,它是一个窗口管理器,具有额外的(相当好的)脚本功能,可以用来创建工具栏、菜单和其他东西。一个很好的例子是FVWM-Crystal,它是一个完整的DE,构建在FVWM和一些其他工具上,由FVWM脚本和Python混合编写而成。你只需打开FVWM的脚本控制台并输入命令,就可以在运行时改变任何类型的行为。如果你想从已经可用的东西开始,水晶可以是一个很好的起点;如果你想从头开始构建你的DE,赤裸裸的FVWM是很好的选择。

[更新:在这方面,gnome-shell似乎与FVWM非常相似。它的大部分行为都是使用JavaScript (而不是FVWM中的自定义语言)编写脚本的,并且很容易更改。它的开发也非常活跃,因为它是GNOME3的重要组成部分,对组合有很好的支持。这是黑客的天堂;-)]

[UPDATE2:看来我在gnome-shell上是对的。有一个Cinnamon,它使用与gnome-shell相同的框架(mutter窗口管理器),但构建的桌面与gnome-shell的工作方式不同。]

有一个网站是一个很好的实现想法的来源:lynucs.org。它现在已经停机两年了,但它得到了archived

警告:许多这样的组件不再需要维护,特别是自从GNOME/KDE开始变得实际可用之后。这一领域的开发通常更多地由嵌入式设备的特定需求驱动:phonesnetbooks

现在,来回答你的实际问题:

  • Linux/OS flaver:任何容易定制的东西: Debian,Arch,Gentoo,LFS...
  • Tools/frameworks:它取决于你想要实现什么。如果你想编写一个自定义工具栏,你可以使用一些脚本语言(如FVWM),自定义工具,如adesklets,或者用Qt (如果你的大多数其他组件是Qt)或GTK (如果你的大多数其他组件是在GTK).
  • Personal UI中:有很多这样的组件,像lynucs.org这样的站点是它们的一个很好的汇编(lynucs列出了每个桌面中使用的组件)。
  • 复杂的透明效果:旧的工具通常不会本机处理它,或者做一些简单的事情,比如重用桌面墙纸的一部分作为它自己的背景(所谓的假透明)。很可能你需要自己写代码,f.e。作为compiz.

的插件

票数 49
EN

Stack Overflow用户

发布于 2010-09-05 22:00:33

我可能会从安装Ubuntu和OpenBox窗口管理器开始,然后从那里开始构建。

OpenBox非常小,但你可以添加应用程序(如Docky、Awn等)来提供桌面界面元素或编写自己的桌面界面元素。

票数 3
EN

Stack Overflow用户

发布于 2013-08-28 22:42:20

如果你的用户界面又快又酷,我建议你去看看Enlightenment。它比Gnome更老,我发现它速度极快,资源消耗也很低。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3646273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档