GNOME Shell

http://www.twitter.com/gnomeshell http://www.facebook.com/pages/GNOME-Shell/109319839095028 http://vimeo.com/user2664247

GNOME Shell is the defining technology of the GNOME 3 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 March 2011. Here is a roadmap of features we are focusing on in preparation for this release.

Tune in for the latest status from any of:

Frequently Asked Questions

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

GNOME Shell JHBuild builds a number of modules that GNOME Shell requires, as well as the gnome-shell module itself.

JHBuild enables you to run GNOME Shell in a sandbox environment and doesn't install it globally on your system, so there is no need to run GNOME Shell inside a virtual machine. To run 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.

If you are a user of Ubuntu, Debian, Mandriva, Gentoo or any other distribution that has .la files in /usr/lib or /usr/lib64, you need to remove them before you run the build. The explanation and the instructions on how to keep things working even after your system installs new updates are here.

sudo find /usr/lib{,32,64} -name "*.la" -delete

Now you can build the modules GNOME Shell depends on and the GNOME Shell module itself. This will take a while as there are several dozen modules being built.

jhbuild build

The above is supposed to work reliably, but check the list of commonly encountered problems if it doesn't. Also 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 -afc

which will force it to rebuild everything from scratch.

While developing, for instance to rebuild the gnome-shell component without its libs, from the current git branch that is not the master branch,

jhbuild buildone -n gnome-shell

should build the one gnome-shell component without switching/pulling git branches.

Running

To run gnome-shell after a build, enter a jhbuild shell, and run the installed binary:

jhbuild shell
gnome-shell --replace

When the script exits (you can kill it with Control-C in the terminal in which you started it), your panel and window manager are restarted. These are found in certain gconf keys.

If you get a cryptic error about D-Bus and then gnome-shell exits at startup:

(mutter:12345): GdmUser-WARNING **: Failed to connect to the D-Bus daemon: Failed to connect to socket /opt/gnome/var/run/dbus/system_bus_socket: No such file or directory

(mutter:12345): GdmUser-WARNING **: Couldn't connect to system bus: Failed to connect to socket /opt/gnome/var/run/dbus/system_bus_socket: No such file or directory

This probably means that you installed D-Bus as part of your jhbuild setup. However that D-Bus is not running as the system bus; your system's standard D-Bus is running as the system bus. You'll want to include this in your .jhbuildrc (make sure it points to the right path in your distribution):

os.environ["DBUS_SYSTEM_BUS_ADDRESS"] = "unix:path=/var/run/dbus/system_bus_socket"

(This is mentioned in the D-Bus page for Jhbuild)

Setting up gnome-shell to run on login

If you're satisfied with gnome-shell, you can set it to be your default window manager when you log in:

ln -s ~/gnome-shell/install/share/applications/gnome-shell.desktop ~/.local/share/applications/gnome-shell.desktop
gconftool-2 -s /desktop/gnome/session/required_components/windowmanager "gnome-shell" -t string

Then log out and log back in. Your session should open in gnome-shell.


CategoryProject

GnomeShell (last edited 2011-12-10 03:27:07 by Srikanth S)