GNOME Shell

GNOME Shell is the defining technology of the GNOME 3 desktop user experience. It provides core interface functions like switching to windows and launching applications. GNOME Shell takes advantage of the capabilities of modern graphics hardware and introduces innovative user interface concepts to provide a delightful and easy to use experience.

Availability and Status

The GNOME Shell is currently in active development and while many planned features are not yet implemented it is stable enough for everyday use.

Previews of GNOME Shell should be available in most GNOME based distributions. You can follow these instructions to try out the GNOME Shell package on your distribution. If you are interested in trying out the latest features or being a part of the development of the future of GNOME please check out the instructions for building it yourself.

A stable version of GNOME Shell will be released as an integral part of GNOME 3 in September 2010.

Tune in for the latest status from any of:

Technology

The 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.

Design

GNOME Shell project takes a highly considered and open approach to design. Designers are involved in every stage of the development process from start to finish. The design process is not a hit and run - slap it on in the end affair. If you are a designer and would like to get involved we'd love to hear from you. Details are available on the the design page.

More Information

Getting Involved

Building

Our goal is to be able to develop the GNOME Shell as much as possible with existing GNOME components and to keep the build process simple. However, the shell requires several modules such as gobject-introspection and gjs that are not yet part of current operating system releases. So, there is a small self-contained JHBuild moduleset that can be used to build the shell and its dependencies.

Having this JHBuild setup will not affect your main system, so there is no need to run the GNOME Shell inside a virtual machine. To run the GNOME Shell inside a virtual machine would require good 3D support, and we don't know of any virtualization system that can handle it. In particular, problems have been reported with the GNOME Shell and the 3D support in VirtualBox.

To start with this, download and run the setup script:

curl -O http://git.gnome.org/browse/gnome-shell/plain/tools/build/gnome-shell-build-setup.sh
/bin/bash gnome-shell-build-setup.sh

(Experts: If you have an existing ~/.jhbuildrc it moves it to ~/.jhbuildrc.bak. If you actually need to maintain another jhbuild you may want to rename the gnome-shell .jhbuildrc to .jhbuildrc-gnome-shell and create a shell alias 'gsbuild' that does 'jhbuild -f ~/.jhbuildrc-gnome-shell.)

The script creates an example ~/.jhbuildrc-custom with some comments about things you may want to change. Edit that as desired. Then build the shell and its dependencies by running:

jhbuild build

Note: the above is supposed to work reliably. Current reasons why it isn't. Feel free to ask for help on the IRC channel.

If you have successfully built in the past, but it suddenly stops working, try:

jhbuild build -f -a -c

which will force it to rebuild everything from scratch.

Running

You can either start gnome-shell "nested" in a window within your current session, or you can run it within your session replacing gnome-panel and window manager.

Depending on the state of your X drivers, one or of the other of these may work better. So, if the first one you try doesn't work, try the other.

Running gnome-shell replacing the panel

This approach is best when trying out the GNOME Shell and wanting to see its full potential.

cd ~/gnome-shell/source/gnome-shell/src
./gnome-shell --replace

When gnome-shell exits (you can kill it with Control-C in the terminal in which you started it), gnome-panel and metacity are restarted. (The script hardcodes /usr/bin/metacity and /usr/bin/gnome-panel, if that doesn't work in your setup, please make the script smarter and submit a patch.)

Running gnome-shell nested

This approach is useful when developing the GNOME Shell and wanting to quickly test some changes. NOTE: It isn't useful for getting a good feel for how the shell works since it will be really slow, and won't properly integrate with the rest of your desktop.

cd ~/gnome-shell/source/gnome-shell/src
./gnome-shell

(This requires a relatively recent version of Xephyr with GLX support to be installed on your system. E.g. xorg-x11-server-Xephyr package on Fedora.)


CategoryProject

GnomeShell (last edited 2010-02-06 06:20:44 by WilliamJonMcCann)