Unity is a desktop shell for GNOME. This is not the same as a totally new desktop environment. A desktop shell is the interface that you use. Unity will still use the same GNOME apps and libraries that the current desktop does. GNOME shell is an example of another shell for GNOME.
Unity is developed by Canonical for Ubuntu. It is dual licensed under the GPL and LGPL (version 3). It was originally developed for the netbook edition but is going to be modified to be suitable for the desktop.
Currently, it is not suitable for desktops.
It consists of a top bar, similar to the normal gnome-panel but not the same. Instead of the Applications/Places/System menus is an Ubuntu icon that opens up an overlay called the dash which allows launching of files, folders and applications. It also has a global menu, that embeds the File, Edit etc. menubar from applications into the panel. It shows the menu of the currently focussed window. When windows are maximised, their controls (close, minimise, restore) are embedded into the panel as well. These are space saving features. The desktop edition is planned to not have the global menu because on a large screen it would move the menu far away from the windows being used and so the user would have to move their mouse all the way to the top to get to the menus.
There is a launcher and dock on the left hand side of the screen. This can't be moved. It is planned that for the desktop edition it will be detachable and be able to go on any side of the screen. It is also likely to have an autohide feature.
The expose style feature is like the scale plugin for compiz. It gives you an overview of your windows and allows you to switch between them.
Unity for the netbook edition currently used the mutter window manager. This has had some performance problems so it is being replaced with compiz for better performance. It is planned that it should gracefully degrade if 3D accelerated hardware is not available.
Unity netbook interface:

The interface for the desktop is currently being discussed:
Launchpad Blueprint
.local
, .cache
, and .config
are part of the FreeDesktop Base Directory Specification. They should not actually be hard-coded but instead use the environment variables (i.e. $XDG_DATA_HOME
, $XDG_CACHE_HOME
, and $XDG_CONFIG_HOME
). There are GLib and Python wrappers for the spec that may be helpful as well. Here's an example in Python:
>>> import xdg.BaseDirectory
>>> print xdg.BaseDirectory.xdg_data_home
/home/andrew/.local/share
>>> print xdg.BaseDirectory.xdg_config_home
/home/andrew/.config
>>> print xdg.BaseDirectory.xdg_cache_home
/home/andrew/.cache
.gnome
and .gnome2
are indeed deprecated and should not be used. These were used by libgnome's gnome-config module.
.gconf
does indeed contain the settings that gconf-editor
accesses as xml files. For instance, compare the output of the following commands:
gconftool -a /desktop/gnome/applications/browser
cat ~/.gconf/desktop/gnome/applications/browser/%gconf.xml
Best Answer
The 3 most common applications you will hear about when talking about tweaking Gnome/Unity will be gconf-editor, dconf-editor and ccsm.
You can find those in the
Software Center
and install them from there.The 2 first tools will configure different (sometimes not so different, think of it as a path that leads to the same goal) aspects of your Gnome configuration and the last one is important to configure your Unity/Compiz configuration.
gconf-editor
stores its data in XML files in/etc/gconf/
dconf-editor
uses files called key files stored in/etc/dconf/db/
ccsm
stores its data in XML files in your~/.gconf/apps/compiz
and~/.gconf/apps/compizconfig
folders.Any of these can be read and edited with a plain text editor (
nano
,gedit
, etc.), but it sure is a lot of work. Use the appropriate tools to edit those files, and it will make your life much simpler.