定制Linux GUI:从哪里开始? [英] Custom Linux GUI: Where to begin?

查看:74
本文介绍了定制Linux GUI:从哪里开始?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

长期以来,我一直在开发适合自己需求和兴趣的OS UI.在我小的时候,我就疯狂地使用Windows的Stardock蒙皮工具.我喜欢开发自己的窗口样式和布局想法.从那以后,我一直痒痒难耐.

I've had a long standing interest in developing an OS UI tailored to my needs and interests. When I was younger, I went crazy playing with the Stardock skinning tools for Windows. I loved developing my own window styles and layout ideas. Since then I've had an unscratchable itch.

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

我正在寻找什么:

我对什么样的Linux/OS风格可能有意义,哪些工具/框架对完成任务有用(Qt在这里似乎是一个受欢迎的建议)以及有关如何/在何处开始开发的基本信息很感兴趣. /测试这样的UI.对于人们可能开发的任何个人"用户界面,我也很感兴趣.

I'm interested in what Linux/OS flavors might make sense, what tools / frameworks would be useful for accomplishing the task ( Qt seems to be a popular suggestion here ), and basic info on how / where one might start developing / testing such a UI. I'd also be interested reading about any "personal" UI's that people may have developed.

这是我正常开发工作之外的一种兴趣,因此,作为免责声明,如果我看上去很困惑,请原谅我的天真.欢迎提供纠正见识.

This is an interest far outside my normal development work, so as a disclaimer, forgive my naivete if I appear to be confused. Corrective insight welcomed.

我意识到这是一个大问题,因此感谢那些花时间提出建议的人.

I realize this is a big question, so thanks to those for taking the time to make suggestions.

推荐答案

您要构建自己的DE(桌面环境).常见的例子是GNOME和KDE,尽管它们中的更多者很受欢迎.实际上,在构建自己的DE时,它非常流行,并且经常创建专用的脚本工具.

You want to build your own DE (desktop environment). Common examples are GNOME and KDE, although more of them were popular. It actually used to be very popular to build your own DE, and dedicated scripting tools were often created.

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

You will usually need to combine multiple tools: a window manager, a toolbar program, a desktop manager (icons), session manager, possibly more. Out of that only a window manager is a required part (it usually doesn't make any sense not to run any WM inside X server), and others are optional. You will usually not write these tools from scratch (it is a lot of work), but use already available components.

请注意,GNOME和KDE实际上都由这些元素组成(高度集成).例如,GNOME由窗口管理器(metacity),工具栏(gnome-panel),桌面管理器(nautilus)等组成.您可以根据需要将一个元素更改为另一个元素:过去流行使用sawfish作为窗口管理器而不是metacity,从而使所有其他元素保持不变.现在流行使用compiz代替metacity.

Note that both GNOME and KDE actually consists of these elements (well integrated). For example GNOME consists of a window manager (metacity), toolbars (gnome-panel), desktop manager (nautilus) and so on. You can change one element into another if you want: it used to be popular to use sawfish as a window manager instead of metacity, keeping all the other elements intact. Now it is popular to use compiz instead of metacity.

我曾经使用 FVWM ,这是一个窗口管理器,具有附加的(非常好的)脚本编写功能,可以用于创建工具栏,菜单和其他内容.很好的例子之一是 FVWM-Crystal ,它是一个基于FVWM的完整DE.混合使用FVWM脚本和Python编写的工具.通过打开FVWM的脚本控制台并键入命令,您实际上可以在运行时更改任何行为.如果您想从已经可用的东西开始,FVWM-Crystal可以是一个很好的起点.如果您想从头开始构建DE,则裸露的FVWM很好.

I used to use FVWM, which is a window manager with an additional (quite good) scripting capabilities that could be used to create toolbars, menus and other things. One of nice examples is FVWM-Crystal, which is a complete DE built on FVWM and few other tools, written in a mix of FVWM scripting and Python. You could actually change any kind of behaviour at runtime by just opening FVWM's scripting console and typing commands. FVWM-Crystal can be a good starting point if you want to start from something already usable; bare FVWM is good if you want to build your DE from scratch.

[更新:看来 gnome-shell 在这方面与FVWM非常相似.它的大多数行为都使用JavaScript(而不是FVWM中的自定义语言)编写脚本,并且非常容易更改.它也是GNOME3的重要组成部分,因此得到了非常积极的开发,并为合成提供了很好的支持.这是黑客的天堂;-)]

[UPDATE: it seems that gnome-shell is very similar in this regard to FVWM. Most of its behavior is scripted using JavaScript (instead of a custom language in FVWM), and is very easy to change. It is also very actively developed, as it is an important part of GNOME3, with very good support for composition. It's a hacker's heaven ;-)]

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

[UPDATE2: so it seems I was right on gnome-shell. There's a Cinnamon, which uses the same framework (mutter window manager) as gnome-shell, yet builds a desktop which works in a different way than gnome-shell.]

有一个网站可以很好地实施思想: lynucs.org .现在已经有两年了,但是它已经已存档.

There was a website that was a good source of ideas to implement: lynucs.org. It is down for two years now, but it got archived.

警告:不再维护这些组件中的许多组件,尤其是自从GNOME/KDE开始实际可用以来.该领域的开发通常更多地受嵌入式设备的特定要求驱动:电话

Warning: lots of these components are not maintained any more, especially since GNOME/KDE started to become actually usable. Development in this area is usually driven more by specific requirements of embedded devices: phones or netbooks.

现在,回答您的实际问题:

Now, to answer your actual questions:

  • Linux/OS flaver:易于定制的任何东西:Debian,Arch,Gentoo, LFS ...
  • 工具/框架:这取决于您要实现的目标.如果要编写自定义工具栏,则可以只使用某些脚本语言(例如FVWM),例如 adesklets ,或在Qt(如果您的大多数其他组件都在Qt中)或GTK(如果您的其他大多数组件都在GTK中)编写自己的代码.
  • 个人用户界面:有很多,而lynucs.org之类的网站则是对它们的很好的汇编(lynucs列出了每个桌面中使用的组件).
  • 复杂的透明效果:较旧的工具通常无法原生处理它,或做一些简单的事情,例如仅将桌面墙纸的一部分重新用作自己的背景(所谓的假透明).很可能您需要编写自己的代码,例如作为compiz的插件.
  • Linux/OS flaver: anything easily customizable: Debian, Arch, Gentoo, LFS...
  • Tools/frameworks: it depends on what do you want to achieve. If you want to write a custom toolbar you might just use some scripting languages (like FVWM's), custom tools like adesklets, or write your own in Qt (if most of your other components is in Qt) or GTK (if most of your other components is in GTK).
  • Personal UIs: there were lots of them, and sites like lynucs.org was a nice compilation of them (lynucs listed components used in each desktop).
  • Complex transparency effects: older tools usually do not handle it natively, or do a simple things like just reusing part of desktop wallpaper as its own background (so-called fake transparency). Most probably you'll need to write your own code, f.e. as a plugin to compiz.

这篇关于定制Linux GUI:从哪里开始?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆