我对开发适合我的需求和兴趣的操作系统UI有着长期的兴趣.当我年轻的时候,我疯狂地玩Windows的Stardock皮肤工具.我喜欢开发自己的窗口样式和布局思路.从那以后,我有一个不易察觉的痒.
我对摆弄较低级别的内核操作,仅仅是表达方面并不是特别感兴趣.我一直在考虑Linux的一些风格.
虽然我很想拥有自己创建的一些基本集成工具/应用程序,但我主要对基本窗口,工具栏,桌面和文件管理的演示感兴趣.
如果可能的话,我不想被锁定使用现有的应用程序.例如,我没有兴趣编写自己的Web浏览器,但是能够将现有工具应用到设计中将是一个重要的优势.
我的想法有时是非常直观的,因此产生更复杂的透明效果和不寻常的窗口形状的能力将是有用的.或多或少,为OS X或Windows重现当前UI设计的图形保真度的能力将是理想的.
我们鼓励使用OS风格和工具,让我从空白屏幕开始,从头开始工作或包含基础知识.传统意义上的"桌面"概念不应该是强制性的.灵活地做不同的事情对我来说很重要.
我在找什么:
我对Linux/OS风格可能有意义,哪些工具/框架对完成任务有用(Qt似乎是一个受欢迎的建议)以及关于如何/在何处开始开发/测试这样的基本信息感兴趣用户界面.我也有兴趣阅读人们可能开发的任何"个人"用户界面.
这是一个远远超出我正常开发工作的兴趣,所以作为免责声明,如果我看起来很困惑,请原谅我的天真.欢迎纠正见解.
我意识到这是一个很大的问题,所以感谢那些花时间提出建议的人.
您想构建自己的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的脚本控制台并输入命令,就可以在运行时更改任何类型的行为.如果你想从已经可用的东西开始,FVWM-Crystal可以是一个很好的起点; 如果你想从头开始构建你的DE,那么裸FVWM是好的.
[更新:似乎gnome-shell在这方面非常相似FVWM
.它的大部分行为都是使用JavaScript编写的(而不是FVWM中的自定义语言),并且很容易更改.它也是非常积极的开发,因为它是GNOME3的重要组成部分,对组合有很好的支持.这是一个黑客的天堂;-)]
[更新2:所以看来我在gnome-shell上是正确的.有一个Cinnamon,它使用相同的框架(mutter
窗口管理器)gnome-shell
,但构建一个以不同的方式工作的桌面gnome-shell
.
有一个网站是一个很好的实施思想来源:lynucs.org.现在已经停了两年了,但它已经存档了.
警告:许多这些组件不再维护,特别是因为GNOME/KDE开始变得实际可用.这一领域的发展通常更多地受到嵌入式设备的特定要求的驱动:手机或上网本.
现在,回答你的实际问题:
Linux/OS flaver:易于定制的任何东西:Debian,Arch,Gentoo,LFS ......
工具/框架:它取决于您想要实现的目标.如果你想编写一个自定义工具栏,你可能只需要使用一些脚本语言(如FVWM),自定义工具(如adesklets),或者在Qt中编写自己的工具(如果大部分其他组件都在Qt中)或GTK(如果你的大多数其他组件都是如此)组件在GTK中).
个人用户界面:有很多这样的网站,像lynucs.org这样的网站是一个很好的汇编(lynucs列出了每个桌面使用的组件).
复杂的透明效果:较旧的工具通常不会本地处理它,或者做一些简单的事情,比如重复使用桌面壁纸的一部分作为自己的背景(所谓的虚假透明度).很可能你需要编写自己的代码,fe作为插件compiz
.