milka巧克力官网:Gnome 3 相关整理(三)

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 09:09:38
一、Gnome Shell 目标:基于当前的硬件水平,为更大范围具有不同OS使用需求和习惯的用户,提供更好的体验,使其专注与应用,同时也为用户定制,尤其是熟悉JS和CSS的年轻人提供低门槛。
GNOME Shell is designed to fit your lifestyle. Whether you: use a computer all day or infrequently, for work or play, are highly connected or solitary, use a few apps or lots, are a heavy document user or do not use any, store all your data locally or rely on the cloud, use a netbook/tablet or a workstation. It is flexible and scalable and puts you in control.
二、所依赖的技术

A bit about the technology behind GNOME Shell.

GNOME Shell acts as a compositing manager for the desktop, and displays both application windows and other objects in a Clutter scene graph. Much of the code of the shell is written in Javascript but uses Clutter and GNOME platform libraries via GObject Introspection and JavaScript bindings for GNOME. For window management and compositing, the shell builds off of a Metacity branch called Mutter, which adds Clutter-based compositing to Metacity. See Owen Taylor's blog post for the explanation of the technology choices that were made for the GNOME Shell.

The Shell is using OpenGL graphics. It's built on top of Clutter, which is a scene graph that uses OpenGL for rendering. For the window management and compositing, the Shell uses Mutter window manager, which is a branch of the traditional window manager for GNOME called Metacity that includes Clutter-based compositing.

We have a Shell Toolkit on top of Clutter, which implements many custom widgets, such as boxes that help with the layout, buttons or scrollbars. The Shell Toolkit also adds support for CSS, which makes the Shell easily themeable.

The GObject Introspection technology is used for automatically generating the GObject bindings for JavaScript. So while we have some code written in C, most of the user interface code is written in JavaScript, which is very easy to use and allows for a rapid development cycle with no need for compilation between changes.

We also have a custom Javascript console called Looking Glass that allows evaluating arbitrary JavaScript statements, as well as accessing and manipulating objects in the Shell from within the Shell. So it is similar to the Firebug in Firefox or to the interactive lisp facilities in Emacs in its nature.
三、编程相关
1. 文档:无,下面是两个零星的注释:
http://sander.github.com/tmp/gsdoc/documentation.html
http://student.science.uva.nl/~sqdh/gs-mockup/doc/index.html
2. 扩展:https://live.gnome.org/GnomeShell/Extensions
https://live.gnome.org/GnomeShell/Development
3 .三个关于编写extension的blog:
http://blog.fpmurphy.com/2011/04/gnome-3-shell-extensions.html
http://blog.fpmurphy.com/2011/05/more-gnome-shell-customization.html
http://blog.fpmurphy.com/2011/11/updating-gnome-shell-extensions-to-work-with-gnome-3-2.html
4. Looking Glass的介绍
https://live.gnome.org/GnomeShell/LookingGlass
5. GObject Introspection中定义的类接口介绍:
http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/;
6. Clutter文档及tutorial:
http://docs.clutter-project.org/docs/clutter/stable/index.html
http://www.openismus.com/documents/clutter_tutorial/0.9/docs/tutorial/html/index.html

附 Gnome架构: