diff --git a/README b/README
index 2b82e5c..66af52b 100644
--- a/README
+++ b/README
@@ -12,7 +12,7 @@ The stable releases so far are 2.4.x, 2.6.x, 2.8.[01], 2.8.1.x, 2.8.5-,
 Unstable branches are 2.3.x, 2.5.x, 2.8.2-4, 2.9.x, 2.11.x, 2.13.x,
 2.15.x, 2.17.x.
 
-COMPILING METACITY
+COMPILING MUTTER
 ===
 
 You need GTK+ 2.2.  For startup notification to work you need
@@ -20,6 +20,7 @@ libstartup-notification at
 http://www.freedesktop.org/software/startup-notification/ or on the
 GNOME ftp site. You also need GConf 1.2 (unless building a funky
 extra-small embedded metacity with --disable-gconf, see below).
+You need Clutter 0.9.3. You need gobject-introspection 0.6.3.
 
 REPORTING BUGS AND SUBMITTING PATCHES
 ===
@@ -36,47 +37,11 @@ Feel free to send patches too; Metacity is relatively small and
 simple, so if you find a bug or want to add a feature it should be
 pretty easy.  Send me mail, or put the patch in bugzilla.
 
-See the HACKING file for some notes on hacking Metacity.
+See the HACKING file for some notes on hacking Mutter.
 
-SHRINKING METACITY
+MUTTER FEATURES
 ===
 
-Not that metacity is huge, but a substantial amount of code is in
-preferences handling, in static strings that aren't essential, and in
-the theme engine.
-
-You can strip about 70K from the metacity binary by compiling with 
-options such as:
-
- --disable-gconf
- --disable-sm
- --disable-verbose 
- --disable-startup-notification
-
-However the result is no good for desktop use, all prefs have to be
-hardcoded in the binary, for example. If you wanted to make a really
-small metacity, here's some additional stuff you might consider
-implementing:
- 
- - add --disable-themes, which would replace theme.c and theme-parser.c 
-   with a hardcoded implementation of the interface in theme.h, 
-   should save about 80K. This should be fairly easy.
-
- - add --disable-gtk, which would implement the interface in ui.h
-   without using GTK. This one is easier than you think because the
-   main part of the window manager doesn't use GTK directly, but is
-   still fairly hard to do.  You would probably have to give up some
-   of the features, such as window menus, as menus are pretty complex
-   to implement well.  So time may be better spent adding a GTK
-   configure script feature to build GTK with only a small core set of
-   functionality.
-
-METACITY FEATURES
-===
-
- - Boring window manager for the adult in you. Many window managers
-   are like Marshmallow Froot Loops; Metacity is like Cheerios.
-
  - Uses GTK+ 2.0 for drawing window frames. This means colors, fonts, 
    etc. come from GTK+ theme.
 
@@ -132,8 +97,6 @@ METACITY FEATURES
    Also try the GNOME keyboard shortcuts control panel, or
    gconf-editor.
 
-   See metacity.schemas for all available bindings.
-
  - Window keybindings:
 
     Alt-space         window menu
@@ -185,13 +148,13 @@ METACITY FEATURES
 
  - Session management:
 
-    Metacity connects to the session manager and will set itself up to
+    Mutter connects to the session manager and will set itself up to
      be respawned. It theoretically restores sizes/positions/workspace
      for session-aware applications.
 
- - Metacity implements much of the EWMH window manager specification
+ - Mutter implements much of the EWMH window manager specification
    from freedesktop.org, as well as the older ICCCM.  Please refer to
-   the COMPLIANCE file for information on metacity compliance with
+   the COMPLIANCE file for information on mutter compliance with
    these standards.
 
  - Uses Pango to render text, so has cool i18n capabilities. 
@@ -210,7 +173,7 @@ METACITY FEATURES
  - handles the window manager selection from the ICCCM. Will exit if
    another WM claims it, and can claim it from another WM if you pass
    the --replace argument. So if you're running another
-   ICCCM-compliant WM, you can run "metacity --replace" to replace it
+   ICCCM-compliant WM, you can run "mutter --replace" to replace it
    with Metacity.
 
  - does basic colormap handling
@@ -220,7 +183,7 @@ METACITY FEATURES
 HOW TO ADD EXTERNAL FEATURES
 ===
 
-You can write a metacity "plugin" such as a pager, window list, icon
+You can write a mutter "plugin" such as a pager, window list, icon
 box, task menu, or even things like "window matching" using the
 Extended Window Manager Hints. See http://www.freedesktop.org for the
 EWMH specification. An easy-to-use library called "libwnck" is
@@ -228,10 +191,10 @@ available that uses the EWMH and is specifically designed for writing
 WM accessories.
 
 You might be interested in existing accessories such as "Devil's Pie"
-by Ross Burton, which add features to Metacity (or other
+by Ross Burton, which add features to Mutter (or other
 EWMH-compliant WMs).
 
-METACITY BUGS, NON-FEATURES, AND CAVEATS
+MUTTER BUGS, NON-FEATURES, AND CAVEATS
 ===
 
 See bugzilla: http://bugzilla.gnome.org/query.cgi
@@ -270,26 +233,15 @@ A: If it makes sense to turn on unconditionally, or is genuinely a
    http://pobox.com/~hp/free-software-ui.html
    http://pobox.com/~hp/features.html   
 
-Q: Will Metacity be part of GNOME?
-
-A: It is officially part of GNOME as of GNOME 2.2. Prior to that, 
-   it was unofficially shipped as the default GNOME WM by several 
-   OS vendors.
-
-Q: Is Metacity a Red Hat project?
+Q: Will Mutter be part of GNOME?
 
-A: Metacity's original creation was in no way funded, endorsed, or
-   encouraged by Red Hat, Inc. - I'm guessing Red Hat would not
-   consider "insufficient number of window managers for Linux" an
-   urgent problem. Just a wild guess though.
+A: It is not officially part of GNOME as of GNOME 2.27. We are
+   hoping to have mutter officially included as of GNOME 2.28. 
 
-   Now that metacity is the default WM however, Red Hat supports some
-   bugfixing and other work.
- 
-Q: Why does Metacity remember the workspace/position of some apps 
+Q: Why does Mutter remember the workspace/position of some apps 
    but not others across logout/login?
 
-A: Metacity only stores sizes/positions for apps that are session
+A: Mutter only stores sizes/positions for apps that are session
    managed. As far as I can determine, there is no way to attempt to
    remember workspace/position for non-session-aware apps without
    causing a lot of weird effects.
@@ -304,7 +256,7 @@ A: Metacity only stores sizes/positions for apps that are session
    place. And in fact I see a lot of bugs like this in window managers
    that try to handle non-session-aware apps.
 
-   However, for session-aware apps, Metacity can tell that the
+   However, for session-aware apps, Mutter can tell that the
    application instance is from the session and thus restore it
    reliably, assuming the app properly restores the windows it had 
    open on session save.
@@ -456,7 +408,7 @@ A: There are quite a few, though many opportunities remain.  Sometimes
 
    - and much more.
 
-Q: I think metacity sucks.
+Q: I think mutter sucks.
 
 A: Feel free to use any WM you like. The reason metacity follows the
    ICCCM and EWMH specifications is that it makes metacity a modular,
diff --git a/autogen.sh b/autogen.sh
index 1159af2..c9396c5 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -4,7 +4,7 @@
 srcdir=`dirname $0`
 test -z "$srcdir" && srcdir=.
 
-PKG_NAME="metacity"
+PKG_NAME="mutter"
 REQUIRED_AUTOMAKE_VERSION=1.10
 
 (test -f $srcdir/configure.in \
diff --git a/configure.in b/configure.in
index f4393fe..9976bba 100644
--- a/configure.in
+++ b/configure.in
@@ -1,19 +1,21 @@
 AC_PREREQ(2.50)
 
-m4_define([metacity_major_version], [2])
-m4_define([metacity_minor_version], [27])
+m4_define([mutter_major_version], [2])
+m4_define([mutter_minor_version], [27])
 # Fibonacci sequence for micro version numbering:
 # 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
-m4_define([metacity_micro_version], [0])
-m4_define([mutter_version],[0.7])
+m4_define([mutter_micro_version], [0])
 
-m4_define([metacity_version],
-          [metacity_major_version.metacity_minor_version.metacity_micro_version~mutter_version])
+m4_define([mutter_version],
+          [mutter_major_version.mutter_minor_version.mutter_micro_version])
 
-m4_define([metacity_clutter_plugin_api_version], [2])
+m4_define([mutter_plugin_api_version], [2])
 
-AC_INIT([metacity], [metacity_version],
-        [http://bugzilla.gnome.org/enter_bug.cgi?product=metacity])
+m4_define([meta_major_version], [2])
+m4_define([meta_minor_version], [27])
+
+AC_INIT([mutter], [mutter_version],
+        [http://bugzilla.gnome.org/enter_bug.cgi?product=mutter])
 
 AC_CONFIG_SRCDIR(src/core/display.c)
 AC_CONFIG_HEADERS(config.h)
@@ -21,22 +23,26 @@ AC_CONFIG_HEADERS(config.h)
 AM_INIT_AUTOMAKE
 AM_MAINTAINER_MODE
 
-METACITY_MAJOR_VERSION=metacity_major_version
-METACITY_MINOR_VERSION=metacity_minor_version
-METACITY_MICRO_VERSION=metacity_micro_version
-METACITY_CLUTTER_PLUGIN_API_VERSION=metacity_clutter_plugin_api_version
-AC_SUBST(METACITY_MAJOR_VERSION)
-AC_SUBST(METACITY_MINOR_VERSION)
-AC_SUBST(METACITY_MICRO_VERSION)
-AC_SUBST(METACITY_CLUTTER_PLUGIN_API_VERSION)
-
-MUTTER_PLUGIN_DIR="$libdir/$PACKAGE/plugins/clutter"
+MUTTER_MAJOR_VERSION=mutter_major_version
+MUTTER_MINOR_VERSION=mutter_minor_version
+MUTTER_MICRO_VERSION=mutter_micro_version
+MUTTER_PLUGIN_API_VERSION=mutter_plugin_api_version
+META_MAJOR_VERSION=meta_major_version
+META_MINOR_VERSION=meta_minor_version
+AC_SUBST(MUTTER_MAJOR_VERSION)
+AC_SUBST(MUTTER_MINOR_VERSION)
+AC_SUBST(MUTTER_MICRO_VERSION)
+AC_SUBST(MUTTER_PLUGIN_API_VERSION)
+AC_SUBST(META_MAJOR_VERSION)
+AC_SUBST(META_MINOR_VERSION)
+
+MUTTER_PLUGIN_DIR="$libdir/$PACKAGE/plugins"
 AC_SUBST(MUTTER_PLUGIN_DIR)
 
 # Honor aclocal flags
 AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
 
-GETTEXT_PACKAGE=metacity
+GETTEXT_PACKAGE=mutter
 AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
 
@@ -123,7 +129,7 @@ if test "x$GCC" = "xyes"; then
 fi
 changequote([,])dnl
 
-METACITY_PC_MODULES='gtk+-2.0 >= 2.10.0 pango >= 1.2.0'
+MUTTER_PC_MODULES='gtk+-2.0 >= 2.10.0 pango >= 1.2.0'
 
 AC_ARG_ENABLE(gconf,
   AC_HELP_STRING([--disable-gconf],
@@ -132,12 +138,12 @@ AC_ARG_ENABLE(gconf,
 
 if test x$enable_gconf = xyes; then
     AC_DEFINE(HAVE_GCONF,1,[Build with gconf support])
-    METACITY_PC_MODULES="$METACITY_PC_MODULES gconf-2.0 >= 1.2.0"
+    MUTTER_PC_MODULES="$MUTTER_PC_MODULES gconf-2.0 >= 1.2.0"
 fi
 
 AC_ARG_ENABLE(verbose-mode,
   AC_HELP_STRING([--disable-verbose-mode],
-                 [disable metacity's ability to do verbose logging, for embedded/size-sensitive custom builds]),,
+                 [disable mutter's ability to do verbose logging, for embedded/size-sensitive custom builds]),,
   enable_verbose_mode=yes)
 
 if test x$enable_verbose_mode = xyes; then
@@ -146,42 +152,42 @@ fi
 
 AC_ARG_ENABLE(sm,
   AC_HELP_STRING([--disable-sm],
-                 [disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds]),,
+                 [disable mutter's session management support, for embedded/size-sensitive custom non-GNOME builds]),,
   enable_sm=auto)
 
 AC_ARG_ENABLE(startup-notification,
   AC_HELP_STRING([--disable-startup-notification],
-                 [disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),,
+                 [disable mutter's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),,
   enable_startup_notification=auto)
 
 AC_ARG_ENABLE(compositor,
   AC_HELP_STRING([--disable-compositor],
-                 [disable metacity's compositing manager]),,
+                 [disable mutter's compositing manager]),,
   enable_compositor=auto)
 
-AC_ARG_WITH(clutter,
-  AC_HELP_STRING([--with-clutter],
-                 [Use clutter for compositing]),,
+AC_ARG_ENABLE(clutter,
+  AC_HELP_STRING([--disable-clutter],
+                 [disable the use of clutter for compositing]),,
   with_clutter=auto)
 
-AC_ARG_WITH(introspection,
-  AC_HELP_STRING([--with-introspection],
+AC_ARG_ENABLE(introspection,
+  AC_HELP_STRING([--disable-introspection],
                  [Use GObject introspection]),,
   with_introspection=auto)
 
 AC_ARG_ENABLE(xsync,
   AC_HELP_STRING([--disable-xsync],
-                 [disable metacity's use of the XSync extension]),,
+                 [disable mutter's use of the XSync extension]),,
   enable_xsync=auto)
 
 AC_ARG_ENABLE(render,
   AC_HELP_STRING([--disable-render],
-                 [disable metacity's use of the RENDER extension]),,
+                 [disable mutter's use of the RENDER extension]),,
   enable_render=auto)
 
 AC_ARG_ENABLE(shape,
   AC_HELP_STRING([--disable-shape],
-                 [disable metacity's use of the shaped window extension]),,
+                 [disable mutter's use of the shaped window extension]),,
   enable_shape=auto)
 
 ## try definining HAVE_BACKTRACE
@@ -193,8 +199,8 @@ AM_GLIB_GNU_GETTEXT
 # GOptionEntry requires	glib-2.6.0
 PKG_CHECK_MODULES(ALL, glib-2.0 >= 2.6.0)
 # gtk_window_set_icon_name requires gtk2+-2.60
-PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.6.0)
-PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.6.0)
+PKG_CHECK_MODULES(MUTTER_MESSAGE, gtk+-2.0 >= 2.6.0)
+PKG_CHECK_MODULES(MUTTER_WINDOW_DEMO, gtk+-2.0 >= 2.6.0)
 
 if $PKG_CONFIG --atleast-version 1.2.0 pangoxft; then
    echo "pangoxft found"
@@ -226,7 +232,7 @@ fi
 
 if test x$have_startup_notification = xyes; then
   echo "Building with libstartup-notification"
-  METACITY_PC_MODULES="$METACITY_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION"
+  MUTTER_PC_MODULES="$MUTTER_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION"
   AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support])
 else
   echo "Building without libstartup-notification"
@@ -249,9 +255,10 @@ fi
 if test x$with_clutter = xyes; then
    have_xcomposite=yes
    have_clutter=yes
-   echo "CompositeExt support and Clutter forced on"
 elif test x$with_clutter = xauto; then
-   have_clutter=no
+   echo "Building clutter compositing manager by default now."
+   have_xcomposite=yes
+   have_clutter=yes
 else
    have_clutter=no
 fi
@@ -268,7 +275,7 @@ if test x$have_xcomposite = xyes; then
 fi
 
 if test x$have_xcomposite = xyes; then
-  METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage"
+  MUTTER_PC_MODULES="$MUTTER_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage"
   AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, 1, [Building with compositing manager support])
   echo "Building with compositing manager"
 
@@ -300,7 +307,7 @@ if test x$have_xcomposite = xno; then
 
   if test x$have_xrender = xyes; then
      echo "Building with Render"
-     METACITY_PC_MODULES="$METACITY_PC_MODULES xrender >= $XRENDER_VERSION"
+     MUTTER_PC_MODULES="$MUTTER_PC_MODULES xrender >= $XRENDER_VERSION"
   fi
 fi ## have_composite
 
@@ -311,17 +318,17 @@ fi
 CLUTTER_PACKAGE=clutter-0.9
 AC_SUBST(CLUTTER_PACKAGE)
 if test x$have_clutter = xyes; then
-  METACITY_PC_MODULES="$METACITY_PC_MODULES $CLUTTER_PACKAGE "
+  MUTTER_PC_MODULES="$MUTTER_PC_MODULES $CLUTTER_PACKAGE "
   PKG_CHECK_MODULES(CLUTTER, $CLUTTER_PACKAGE)
   AC_DEFINE(WITH_CLUTTER, , [Building with Clutter compositor])
 
   dnl Check for the clutter-glx-texture-pixmap header
-  metacity_save_cppflags="$CPPFLAGS"
+  mutter_save_cppflags="$CPPFLAGS"
   CPPFLAGS="$CPPFLAGS $CLUTTER_CFLAGS"
   AC_CHECK_HEADER([clutter/glx/clutter-glx-texture-pixmap.h],
                   [have_glx_texture_pixmap=yes],
                   [have_glx_texture_pixmap=no])
-  CPPFLAGS="$metacity_save_cppflags"
+  CPPFLAGS="$mutter_save_cppflags"
 
   if test x$have_glx_texture_pixmap = xyes; then
     AC_DEFINE(HAVE_GLX_TEXTURE_PIXMAP, ,
@@ -332,7 +339,7 @@ fi
 if test x$with_introspection != xno; then
   PKG_CHECK_MODULES(INTROSPECTION, gobject-introspection-1.0, have_introspection=yes, have_introspection=no)
   if test x$have_introspection=xyes; then
-    METACITY_PC_MODULES="$METACITY_PC_MODULES gobject-introspection-1.0"
+    MUTTER_PC_MODULES="$MUTTER_PC_MODULES gobject-introspection-1.0"
     AC_DEFINE(HAVE_INTROSPECTION, 1, [Define if GObject introspection is available])
     G_IR_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
     AC_SUBST(G_IR_SCANNER)
@@ -358,23 +365,23 @@ if $PKG_CONFIG xcursor; then
 
 if test x$have_xcursor = xyes; then
   echo "Building with Xcursor"
-  METACITY_PC_MODULES="$METACITY_PC_MODULES xcursor"
+  MUTTER_PC_MODULES="$MUTTER_PC_MODULES xcursor"
   AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support])
 fi
 
-PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES)
+PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
 
 AC_PATH_XTRA
 
 ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
 
 # Check for Xinerama extension (Solaris impl or Xfree impl)
-metacity_save_cppflags="$CPPFLAGS"
+mutter_save_cppflags="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
 
 AC_ARG_ENABLE(xinerama,
   AC_HELP_STRING([--disable-xinerama],
-                 [disable metacity's use of the Xinerama extension]),
+                 [disable mutter's use of the Xinerama extension]),
   try_xinerama=$enable_xinerama,try_xinerama=yes)
 
 use_solaris_xinerama=no
@@ -420,7 +427,7 @@ if test "${try_xinerama}" != no; then
     esac
 fi
 
-CPPFLAGS="$metacity_save_cppflags"
+CPPFLAGS="$mutter_save_cppflags"
 
 SHAPE_LIBS=
 found_shape=no
@@ -491,21 +498,21 @@ if test "x$found_xsync" = "xyes"; then
    AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library])
 fi
 
-METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
-METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
-METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
-METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+MUTTER_LIBS="$MUTTER_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
+MUTTER_MESSAGE_LIBS="$MUTTER_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+MUTTER_WINDOW_DEMO_LIBS="$MUTTER_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+MUTTER_PROPS_LIBS="$MUTTER_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
 
 found_sm=no
-case "$METACITY_LIBS" in
+case "$MUTTER_LIBS" in
  *-lSM*)
     found_sm=yes
     ;;
  *)
   AC_CHECK_LIB(SM, SmcSaveYourselfDone,
                [AC_CHECK_HEADERS(X11/SM/SMlib.h,
-                                METACITY_LIBS="-lSM -lICE $METACITY_LIBS" found_sm=yes)],
-               , $METACITY_LIBS)
+                                MUTTER_LIBS="-lSM -lICE $MUTTER_LIBS" found_sm=yes)],
+               , $MUTTER_LIBS)
     ;;
 esac
 
@@ -572,14 +579,12 @@ GNOME_DOC_INIT([0.8.0])
 AC_CONFIG_FILES([
 Makefile
 doc/Makefile
-doc/creating_themes/Makefile
 doc/man/Makefile
 src/Makefile
 src/wm-tester/Makefile
-src/libmetacity-private.pc
-src/metacity-plugins.pc
+src/libmutter-private.pc
+src/mutter-plugins.pc
 src/tools/Makefile
-src/themes/Makefile
 src/compositor/mutter/plugins/Makefile
 po/Makefile.in
 ])
@@ -596,14 +601,14 @@ fi
 if test x$enable_verbose_mode = xno; then
         echo "*** WARNING WARNING WARNING WARNING WARNING"
         echo "*** Building without verbose mode"
-        echo "*** This means there's no way to debug metacity problems."
-        echo "*** Please build normal desktop versions of metacity"
+        echo "*** This means there's no way to debug mutter problems."
+        echo "*** Please build normal desktop versions of mutter"
         echo "*** with verbose mode enabled so users can use it when they report bugs."
 fi
 
 dnl ==========================================================================
 echo "
-metacity-$VERSION:
+mutter-$VERSION:
 
 	prefix:                   ${prefix}
 	source code location:	  ${srcdir}
@@ -624,12 +629,12 @@ metacity-$VERSION:
 	Clutter:                  ${have_clutter}
 "
 
-METACITY_MINOR_VERSION=metacity_minor_version
-if test $(( $(echo $METACITY_MINOR_VERSION) %2)) == "1"; then
-   stable_version=$(( ($METACITY_MINOR_VERSION / 2) * 2))
-   echo "This is the UNSTABLE branch of metacity"
+MUTTER_MINOR_VERSION=mutter_minor_version
+if test $(( $(echo $MUTTER_MINOR_VERSION) %2)) == "1"; then
+   stable_version=$(( ($MUTTER_MINOR_VERSION / 2) * 2))
+   echo "This is the UNSTABLE branch of mutter"
    echo -n "Use 2.$stable_version.x for stable "
    echo    "(gnome-2-$stable_version branch in Subversion)"
 else
-   echo "This is the stable branch of metacity"
+   echo "This is the stable branch of mutter"
 fi
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 09feb1d..f613abd 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = man creating_themes
+SUBDIRS = man
 
-EXTRA_DIST=theme-format.txt metacity-theme.dtd dialogs.txt code-overview.txt \
+EXTRA_DIST=theme-format.txt dialogs.txt code-overview.txt \
 	how-to-get-focus-right.txt
diff --git a/doc/compositor-control.txt b/doc/compositor-control.txt
index e2e04bd..1253cc3 100644
--- a/doc/compositor-control.txt
+++ b/doc/compositor-control.txt
@@ -42,5 +42,5 @@ options you can set are:
       menus zooming, dialogues being semi-transparent, and so on. Try it
       and see whether you like it.
 
-If you have any problems, ask on metacity-devel-list@gnome.org, or
+If you have any problems, ask on mutter-devel-list@gnome.org, or
 #gnome-hackers on gimpnet, or come and find me (tthurman at gnome) and ask.
diff --git a/doc/creating_themes/C/creating-metacity-themes.xml b/doc/creating_themes/C/creating-metacity-themes.xml
deleted file mode 100644
index ea5f040..0000000
--- a/doc/creating_themes/C/creating-metacity-themes.xml
+++ /dev/null
@@ -1,286 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 
-  "http://docbook.org/docbook/xml/4.5/docbookx.dtd" [
-]>
-
-<book id="index">
-
-  <bookinfo>
-
-    <title>Understanding Metacity Themes</title>
-
-    <authorgroup>
-      <author>
-        <firstname>Thomas</firstname>
-        <surname>Thurman</surname>
-      </author>
-    </authorgroup>
-
-    <abstract>
-
-      <para>
-        We very much appreciate any reports of inaccuracies or other errors in
-        this document.  Contributions are also most welcome.  Post your
-        suggestions, critiques or addenda to the <ulink
-          url="mailto:tthurman@gnome.org">team</ulink>.</para>
-
-    </abstract>
-
-    <copyright>
-      <year>2008</year>
-      <holder>Thomas Thurman</holder>
-    </copyright>
-
-    <legalnotice>
-      <para>
-        Permission is granted to copy, distribute and/or modify this document
-        under the terms of the GNU Free Documentation License, Version 1.2
-        or any later version published by the Free Software Foundation;
-        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
-        You may obtain a copy of the GNU Free Documentation License from the Free Software Foundation by visiting their Web site or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-      </para>
-    </legalnotice>
-
-  </bookinfo>
-
-<chapter id="sec-introduction">
-<title>Introduction</title>
-
-<para>This is an article about how to theme Metacity.  It is a work in progress, and I have had to dig deeply to find some answers; I may well have made mistakes and I welcome corrections and suggestions.</para>
-<para>GNOME lets you theme a bunch of different things, but we're only talking about <literal>window border</literal> themes here, which some people call Metacity themes; <ulink url="http://en.wikipedia.org/wiki/Metacity#Themes">Wikipedia begins a sentence</ulink> with &quot;Despite the incomplete state of Metacity theme development documentation&quot;, and though there <emphasis>is</emphasis> <ulink url="http://svn.gnome.org/viewvc/metacity/trunk/doc/theme-format.txt?view=markup">documentation in the source</ulink>, apparently not many people find it, and it's written more for programmers than theme designers.  Glynn Foster also wrote <ulink url="http://developer.gnome.org/doc/tutorials/metacity/metacity-themes.html">a very good introduction to Metacity themes</ulink> (<ulink url="http://home.arcor.de/rybaczyk/documents/tutorials/metacity/metacity-themes.de.html">[de]</ulink>) six years ago, but things have changed a little since then.  <ulink url="http://lists.freedesktop.org/archives/compiz/2006-September/000445.html">Metacity themes can also be used by Compiz</ulink>, and perhaps by other window managers for all I know.</para>
-
-<para>So, a Metacity theme is a set of instructions about how to &quot;decorate&quot; (draw the borders around) a window.  Presumably you don't want to style all windows identically, so the format lets you specify details for different kinds of window:</para>
-
-<para>
-<variablelist>
-  <varlistentry>
-    <term>state:</term><listitem><para>Every window must be in exactly one of these states: <literal>normal</literal>, <literal>dialog</literal>, <literal>modal dialog</literal> (i.e. a dialogue which means you can't interact with the rest of the program while it's up), <literal>menu</literal> (torn off from the main application, not that people do that much these days), <literal>utility</literal> (that is, palettes and toolboxes and things), and <literal>border</literal>.  X also allows a window to explicitly ask to be undecorated, but of course we don't provide for those in a list of decoration instructions.</para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>focused</term><listitem><para>Every window is either the active window (which X people call &quot;focused&quot;), or it isn't.</para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>maximized</term><listitem><para>Every window is either (fully) maximised (horizontal and vertical only don't count), or it isn't.</para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>shaded</term><listitem><para>Every window is either rolled up to show just its titlebar (which techies call &quot;shaded&quot; for some reason I can't fathom), or it isn't.</para></listitem>
-  </varlistentry>
-</variablelist>
-</para>
-
-<para>
-<itemizedlist>
-<listitem><para><emphasis>If a window is not fully maximised and not shaded,</emphasis> it either allows horizontal resizing, or it doesn't.</para></listitem>
-<listitem><para><emphasis>If a window is not fully maximised and not shaded,</emphasis> it either allows vertical resizing, or it doesn't.</para></listitem>
-</itemizedlist>
-</para>
-
-</chapter>
-
-<chapter>
-<title>What's in the file</title>
-
-<para>The files must be called either</para>
-
-<para>
-<itemizedlist>
-<listitem><para>~/.themes/<varname>N</varname>/metacity-1/metacity-theme-<varname>V</varname>.xml 
-for a theme used only by you, or</para></listitem>
-<listitem><para>/usr/share/themes/<varname>N</varname>/metacity-1/metacity-theme-<varname>V</varname>.xml 
-for a theme installed for all users.</para></listitem>
-</itemizedlist>
-</para>
-
-<para>where <varname>N</varname> is the name of the theme and <varname>V</varname> is the version of the format.  Version 2, <ulink url="http://svn.gnome.org/viewvc/metacity?view=revision&amp;revision=2973">introduced in October 2006</ulink>, adds a few extra features, but it's rarely used.  Version 1 is the original format.  The formats are fixed once they're stable for both backwards and forwards compatibility; <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=482165">new features</ulink> can't be added without introducing a new version number, which is why improvements come out rarely and in large clumps.  <literal>metacity-1</literal> in the names is a fossil and doesn't mean version 1 of anything.</para>
-
-<para>The metacity-theme-V.xml files are <ulink url="http://blogs.gnome.org/tthurman/2008/02/14/gmarkup/">GMarkup files</ulink>, which are very similar to XML.  For now, you actually have to write these in a text editor or something; you can either start with a blank page, or modify a theme someone else has made.  (I am thinking of writing a general theme editor program, but that'll have to wait until I've reduced Metacity's open bug queue a little.)  If you want to see a fully-fledged one, you can look at <ulink url="http://svn.gnome.org/viewvc/metacity/trunk/src/themes/Atlanta/metacity-theme-1.xml?view=markup">the current version of &quot;Atlanta&quot;</ulink>, one of the simplest themes, but even that is quite complicated-looking at first.</para>
-<para>So, let's talk about what actually goes inside the files.  As in any XML file, &lt;!-<!-- x -->- &#8230; <!-- x -->&gt; are comments.  At its most basic, it would go:</para>
-
-<para>
-<programlisting>
-&lt;metacity_theme&gt;
-&lt;!-<!-- x -->- Helper stuff: -<!-- x -->-&gt;
-&lt;info &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
-&lt;constant &#8230;&gt; &lt;!-<!-- x -->- maybe; to be explained -<!-- x -->-&gt;
-
-&lt;draw_ops &#8230;&gt; &lt;!-<!-- x -->- maybe; to be explained -<!-- x -->-&gt;
-
-&lt;!-<!-- x -->- Things we build the top level onto: -<!-- x -->-&gt;
-&lt;frame_geometry &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
-
-&lt;frame_style &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
-&lt;frame_style_set &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
-
-&lt;!-<!-- x -->- And the top level: -<!-- x -->-&gt;
-
-&lt;window type=&quot;normal&quot; style_set=&quot;&#8230;&quot; /&gt;
-&lt;window type=&quot;dialog&quot; style_set=&quot;&#8230;&quot; /&gt;
-&lt;window type=&quot;modal_dialog&quot; style_set=&quot;&#8230;&quot; /&gt;
-
-&lt;window type=&quot;menu&quot; style_set=&quot;&#8230;&quot; /&gt;
-&lt;window type=&quot;utility&quot; style_set=&quot;&#8230;&quot; /&gt;
-&lt;window type=&quot;border&quot; style_set=&quot;&#8230;&quot; /&gt;
-
-&lt;/metacity_theme&gt;
-</programlisting>
-</para>
-
-</chapter>
-
-<chapter>
-<title>Matching windows</title>
-
-<para>
-<variablelist>
-  <varlistentry>
-    <term>window</term><listitem><para>You see that at the top level we have a list of &lt;window&gt; tags, one for each window state we discussed above.  The style_set argument of each of these gives the name of a frame_style_set.</para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>frame_style_set:</term><listitem><para>tells Metacity how to draw windows according to whether they're focused or not, maximised or not, shaded or not, and allowing resizing vertically, horizontally, both, or neither.  It looks like this:</para></listitem>
-  </varlistentry>
-</variablelist>
-</para>
-
-<para>
-<programlisting>
-&lt;frame_style_set&gt;
-&lt;frame focus=&quot;F&quot; state=&quot;S&quot; resize=&quot;R&quot; style=&quot;N&quot;/&gt;
-&lt;frame&#8230; /&gt;
-
-&#8230;
-&lt;/frame_style_set&gt;
-</programlisting>
-</para>
-
-<para>where:</para>
-
-<para>
-<variablelist>
-  <varlistentry>
-    <term>F</term><listitem><para>is yes for focused, no for unfocused.</para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>S</term><listitem><para>combines the shaded and maximized flags: normal, maximized, shaded, or maximized_and_shaded.</para></listitem>
-  </varlistentry>
-  <varlistentry>
-    <term>R</term><listitem><para>represents resize permissions that the window gives us: none, vertical, horizontal, or both.  Frame settings for maximised windows, which can't be resized, don't have this attribute.</para></listitem>
-  </varlistentry>
-</variablelist>
-</para>
-
-<para>
-<varname>N</varname> is the name of a <literal>frame_style</literal> to apply to a window which has these attributes.</para>
-
-<para>A <literal>frame_style_set</literal> tag may also have a &quot;parent&quot; tag, which should be the name of another <literal>frame_style_set</literal>. This means that if Metacity wants to know about a kind of window which that <literal>frame_style_set</literal> doesn't describe, it should look in the parent.  Most of the more complicated tags in Metacity theme files also have a &quot;parent&quot; attribute which work the same way.  This is particularly useful because, taken together, all the <literal>frame_style_set</literal>s in a theme file must be capable of matching every possible kind of window; if a window turns up that they can't match, there will be an error at runtime.</para>
-
-<para>Let's recap what we've seen so far. The combination of a <literal>window</literal>, which matches a window's state (normal, dialog, and so forth), with an entry in the corresponding <literal>frame_style_set</literal>, which matches its focus, shadedness, maximisedness, and resize permissions where relevant, will allow you to make a list of rules to match any window against.  The next piece of this puzzle lets you specify what Metacity should do with such windows once it's matched them.</para>
-
-</chapter>
-
-<chapter>
-<title>Actually drawing stuff</title>
-
-<para><literal>frame_style:</literal> This is probably the most complicated part of the whole system. A <literal>frame_style</literal> a series of <emphasis><literal>piece</literal></emphasis>s and <emphasis><literal>button</literal></emphasis>s.  It looks like this:</para>
-
-<para>
-<programlisting>
-&lt;frame_style name=&quot;&#8230;&quot; geometry=&quot;G&quot;&gt;
-&lt;piece position=&quot;P&quot;&gt;
-&lt;draw_ops&gt;
-&lt;/draw_ops&gt;
-&lt;/piece&gt;
-&#8230;
-&lt;button function=&quot;F&quot; state=&quot;S&quot; draw_ops=&quot;D&quot;/&gt;
-
-&lt;draw_ops&gt;
-&lt;/draw_ops&gt;
-&lt;/button&gt;
-&#8230;
-&lt;/frame_style&gt;
-</programlisting>
-</para>
-
-<para>The <literal>pieces</literal> are pieces of the window frame.  When Metacity draws a window frame, it renders its various pieces always in the same order.  The bolded parts are all the possible values of P:</para>
-
-<para>
-<itemizedlist>
-<listitem><para>the <literal>entire_background</literal>, covering the whole frame</para></listitem>
-
-<listitem><para>the <literal>titlebar</literal>, covering the entire background of the titlebar</para></listitem>
-<listitem><para>the <literal>titlebar_middle</literal>, the part of the titlebar that doesn't touch its edges</para></listitem>
-<listitem><para>the <literal>left_titlebar_edge</literal>, <literal>right_titlebar_edge</literal>, <literal>top_titlebar_edge</literal>, and <literal>bottom_titlebar_edge</literal></para></listitem>
-
-<listitem><para>the <literal>title</literal>, just exactly that area which is covered by the text on the titlebar</para></listitem>
-<listitem><para>the <literal>left_edge</literal>, <literal>right_edge</literal>, and <literal>bottom_edge</literal> of the frame (yes, there is no top_edge: it's identical to top_titlebar_edge, isn't it?)</para></listitem>
-<listitem><para>the <literal>overlay</literal>, which covers everything&#8211; the same as entire_background, but done last instead of first.</para></listitem>
-</itemizedlist>
-</para>
-
-<para><emphasis>What</emphasis> Metacity draws in these pieces is decided by the theme.  If a <literal>frame_style</literal> or its parents don't specify a particular piece, nothing will be drawn for that piece.  You have two ways to specify what to draw: one is that the <literal>piece</literal> tag can have a <literal>draw_ops</literal> tag inside it which lists a sequence of drawing operations in Metacity's custom format.  <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=107012">You might ask why we don't use SVG</ulink>; one answer is that SVG support wasn't very strong when this format was designed, and another answer is that these days you can use SVG all you like; just include it as an image and Metacity will know what to do.</para>
-
-<para>An alternative to including a draw_ops tag inside a piece tag is to add a draw_ops attribute to the piece tag.  Then you can add a draw_ops tag at top level (inside the metacity_theme tag) with a name attribute, and Metacity will use that.  This is useful if you use similar draw_ops over and over.</para>
-<para>I'm not going to document draw_ops at present, because this is already very long.  I will write it up later and link it from here.</para>
-<para>The <literal>button</literal> tag tells Metacity how, but not where, to draw buttons.  Buttons are drawn after all the pieces are finished, and the way to draw them is also given using draw_ops.  You ought to provide buttons for all the possible kinds of button; if you don't give one it won't be drawn, which is unfortunate for the user who wants to use it:</para>
-
-<para>
-<itemizedlist>
-<listitem><para><literal>left_left_background</literal>, <literal>left_middle_background</literal>, and <literal>left_right_background</literal> don't represent buttons as such, but the background behind them, assuming there can be at most three buttons on the left.  These days there can be more, so the extra ones also use left_middle_background.</para></listitem>
-
-<listitem><para><literal>right_left_background</literal>, <literal>right_middle_background</literal>, and <literal>right_right_background</literal> similarly.</para></listitem>
-<listitem><para><literal>close</literal>, <literal>minimize</literal>, <literal>maximize</literal> are the obvious original three buttons.</para></listitem>
-<listitem><para><literal>menu</literal> is the menu button you can click to get a list of actions you can perform on the window.</para></listitem>
-
-<listitem><para><literal>shade</literal>, <literal>above</literal>, <literal>stick</literal> are similar to the original buttons but only allowed in version 2</para></listitem>
-<listitem><para><literal>unshade</literal>, <literal>unabove</literal>, <literal>unstick</literal> are the toggled versions of these buttons.  Again, version 2 only.</para></listitem>
-
-</itemizedlist>
-</para>
-
-<para>The reason there are toggled versions of shade, above, and stick, and not maximize, is that by the time you get this far you've probably already decided whether you're drawing a maximised window.  So if you <emphasis>are</emphasis> drawing a maximised window, you can make the button called &quot;maximize&quot; look how you want the restore button to be; otherwise, make it look like you want the maximise button to be.</para>
-<para>For each button tag you should also set a &quot;state&quot; attribute; this time the state is either <literal>normal</literal> (the way you see it most of the time), <literal>pressed</literal>, or <literal>prelight</literal> (this makes the buttons subtly light up when you hover over them).  You only really need &quot;normal&quot;, but the others are good to have too.</para>
-
-<para>The &quot;geometry&quot; attribute of a <literal>frame_style</literal> tag is the name of a&#8230;</para>
-
-</chapter>
-
-<chapter>
-<title>Geometry</title>
-
-<para>The <literal>geometry</literal> tag defines the sizes of things around the window.  It is important, but not easy to explain, and again this file has gone on too long.  I'll write it up later.</para>
-
-</chapter>
-
-<chapter>
-<title>Other things which lie around a file</title>
-
-<para>The most important other thing in a theme file is the metadata held in the <literal>info</literal> tag.  This contains a set of tags each of which contains some text explaining something about the theme itself, in a sort of <ulink url="http://en.wikipedia.org/wiki/Dublin_Core">Dublin Core</ulink> sort of way.  (Next time around, we should probably use the actual Dublin Core.)  The tags are <literal>name</literal>, <literal>author</literal>, <literal>copyright</literal>, <literal>date</literal>, and <literal>description</literal>.</para>
-
-<para>Version 1 of the format had a <literal>menu_icon</literal> tag at top level, which let themes specify the icons beside options in the menu you get from the menu icon.  This has become redundant; the icons are taken from the icon theme!  The tag can still be used in all formats, but does nothing and is deprecated.</para>
-<para>Version 2 of the format has a <literal>fallback</literal> tag at top level, which let the theme specify what icon a window should be considered to have if it doesn't provide an icon of its own.  This should also be taken from the icon theme, <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=524343">if anyone fancies fixing it</ulink>, and the tag should also then be deprecated.  It shouldn't be hard.</para>
-
-</chapter>
-
-<chapter>
-<title>When you're working on a theme</title>
-
-<para>When you're editing a theme, you can view it without using it on the whole desktop using
-<command>metacity-theme-viewer YourThemeName</command></para>
-<para>and view it on the whole desktop using
-<command>gconftool -<!-- x -->-type=string -<!-- x -->-set /apps/metacity/general/theme YourThemeName</command></para>
-
-<para>Whenever you change the selected theme in GConf, Metacity will load the newly-chosen theme.  This is how control-center does it.  But when you change a theme, as you're working on it, you might want to ask Metacity to reload the theme which is currently used on the whole desktop to reflect your changes.  You can do this using the little-known <command>metacity-message</command> program, with the command <literal>metacity-message reload-theme</literal>.  This works by sending the ClientMessage <literal>_METACITY_RELOAD_THEME_MESSAGE</literal> to the root window, in case you're interested.</para>
-
-<para>Once you're done with your theme, consider submitting it to <ulink url="http://art.gnome.org/themes/metacity/">the art.gnome.org site</ulink>, or <ulink url="http://www.gnome-look.org/index.php?xcontentmode=101">the gnome-look site</ulink>.</para>
-
-</chapter>
-
-<chapter>
-<title>The future</title>
-
-<para>Please feel free to link to this so people don't have to keep asking the basic questions and can start asking the deeper ones.  One of the important deeper ones is: where should we go in the future?  Since this format is becoming something of a de facto standard between window managers, should we set up some kind of freedesktop.org standards discussion?  Would it be useful to spin off Metacity's theme parsing code into a separate, LGPL-licensed library so that other applications could use it more easily?</para>
-<para>What would a version 3 of this format look like?  Could we simplify the window / frame_style_set system? (I can imagine abolishing both, and being able to write <literal>&lt;frame_style for=&quot;normal+unfocused+maximized&quot;&gt;&#8230;</literal> and having Metacity assume it applied to all resize permissions and shadednesses.) Maybe we should try to do everything with SVG we can? Getting more wild and handwavey, is it worth keeping XML-like?  Maybe if other window managers were dealing with the files, .ini-style files would be more universally useful? Or perhaps not.  And then of course we need a decent graphical editor for it.  I have a few ideas, but if anyone fancies jumping in...</para>
-</chapter>
-
-</book>
-
-
diff --git a/doc/creating_themes/Makefile.am b/doc/creating_themes/Makefile.am
deleted file mode 100644
index 54b10e2..0000000
--- a/doc/creating_themes/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-### This part of Makefile.am can be customized by you.
-
-# gnome-doc-utils standard variables:
-include $(top_srcdir)/gnome-doc-utils.make
-dist-hook: doc-dist-hook
-
-# The name of the directory in /usr/share/gnome/help/, 
-# and the name of the main .xml file:
-DOC_MODULE = creating-metacity-themes
-
-# The names of any files included via entity declarations.
-DOC_ENTITIES =
-
-# The names of any files included by xincluded (preferred):
-DOC_INCLUDES =
-
-# The names of any pictures:
-DOC_FIGURES = 
-
-# The names of any locales for which documentation translations exist:
-DOC_LINGUAS =
-
-
-
diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am
index 1277f5b..d2eb64d 100644
--- a/doc/man/Makefile.am
+++ b/doc/man/Makefile.am
@@ -1,4 +1,4 @@
-man_MANS = metacity.1 metacity-theme-viewer.1 \
-	   metacity-window-demo.1 metacity-message.1
+man_MANS = mutter.1 mutter-theme-viewer.1 \
+	   mutter-window-demo.1 mutter-message.1
 
 EXTRA_DIST = $(man_MANS)
diff --git a/doc/man/metacity-message.1 b/doc/man/metacity-message.1
deleted file mode 100644
index 7ee62cd..0000000
--- a/doc/man/metacity-message.1
+++ /dev/null
@@ -1,60 +0,0 @@
-.\"                                      Hey, EMACS: -*- nroff -*-
-.\" First parameter, NAME, should be all caps
-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-.\" other parameters are allowed: see man(7), man(1)
-.\" -----
-.\" This file was confirmed to be licenced under the GPL
-.\" by its author and copyright holder, Akira TAGOH, on June 1st 2008:
-.\"
-.\" > I'm comfortable with DFSG-free. that sounds great if you think it's
-.\" > useful and worth containing it in upstream.
-.\" ...
-.\" > Right I know. any licenses that is DFSG-free, I'm ok with whatever,
-.\" > since I have contributed that for Debian. so GPL is no problem for me.
-.\" -----
-.TH METACITY\-MESSAGE 1 "28 August 2002"
-.\" Please adjust this date whenever revising the manpage.
-.\"
-.\" Some roff macros, for reference:
-.\" .nh        disable hyphenation
-.\" .hy        enable hyphenation
-.\" .ad l      left justify
-.\" .ad b      justify to both left and right margins
-.\" .nf        disable filling
-.\" .fi        enable filling
-.\" .br        insert line break
-.\" .sp <n>    insert n+1 empty lines
-.\" for manpage-specific macros, see man(7)
-.SH NAME
-METACITY\-MESSAGE \- a command to send a message to Metacity
-.SH SYNOPSIS
-.B METACITY\-MESSAGE
-[restart|reload\-theme|enable\-keybindings|disable\-keybindings]
-.SH DESCRIPTION
-This manual page documents briefly the
-.B metacity\-message\fP.
-This manual page was written for the Debian distribution
-because the original program does not have a manual page.
-.PP
-.\" TeX users may be more comfortable with the \fB<whatever>\fP and
-.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
-.\" respectively.
-\fBmetacity\-message\fP send a specified message to \fBmetacity\fP(1).
-.SH OPTIONS
-.TP
-.B restart
-Restart \fBmetacity\fP(1) which is running.
-.TP
-.B reload-theme
-Reload a theme which is specified on gconf database.
-.TP
-.B enable-keybindings
-Enable all of keybindings which is specified on gconf database.
-.TP
-.B disable-keybindings
-Disable all of keybindings which is specified on gconf database.
-.SH SEE ALSO
-.BR metacity (1)
-.SH AUTHOR
-This manual page was written by Akira TAGOH <tagoh@debian.org>,
-for the Debian GNU/Linux system (but may be used by others).
diff --git a/doc/man/metacity-theme-viewer.1 b/doc/man/metacity-theme-viewer.1
deleted file mode 100644
index 72df142..0000000
--- a/doc/man/metacity-theme-viewer.1
+++ /dev/null
@@ -1,43 +0,0 @@
-.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
-.\" other parms are allowed: see man(7), man(1)
-.\"
-.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
-.\" 
-.TH METACITY-THEME-VIEWER 1 "1 June 2004" 
-.SH NAME
-metacity-theme-viewer \- view metacity themes
-.SH SYNOPSIS
-.B metacity-theme-viewer
-[
-.I THEMENAME
-]
-.SH DESCRIPTION
-.\" Putting a newline after each sentence can generate better output.
-.B metacity-theme-viewer
-allows you to preview any installed Metacity theme.
-.PP
-When designing a new Metacity theme, you can use
-.B metacity-theme-viewer
-to measure the performance of a window frame option, and to preview
-the option.
-.SH OPTIONS
-.TP
-.I THEMENAME
-Name of the theme to be shown (\fIAtlanta\fR by default).
-It is case-sensitive.
-.SH FILES
-.br
-.nf
-.TP
-.I /usr/share/themes
-system themes directory
-.TP
-.I /usr/share/themes/*/metacity-1/metacity-theme-1.xml
-theme specification file
-.SH AUTHOR
-This manual page was written by Jose M. Moya <josem@die.upm.es>, for
-the Debian  GNU/Linux system (but may be used by others).
-.SH "SEE ALSO"
-.\" Always quote multiple words for .SH
-.BR metacity (1),
-.BR metacity-window-demo (1).
diff --git a/doc/man/metacity-window-demo.1 b/doc/man/metacity-window-demo.1
deleted file mode 100644
index b7e4a85..0000000
--- a/doc/man/metacity-window-demo.1
+++ /dev/null
@@ -1,25 +0,0 @@
-.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
-.\" other parms are allowed: see man(7), man(1)
-.\"
-.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
-.\" 
-.TH METACITY-WINDOW-DEMO 1 "1 June 2004" 
-.SH NAME
-metacity-window-demo \- demo of window features
-.SH SYNOPSIS
-.B metacity-window-demo
-.SH DESCRIPTION
-.\" Putting a newline after each sentence can generate better output.
-This program demonstrates various kinds of windows that window
-managers and window manager themes should handle.
-.PP
-Be sure to tear off the menu and toolbar, those are also a special
-kind of window.
-.SH AUTHOR
-This manual page was written by Jose M. Moya <josem@die.upm.es>, for
-the Debian  GNU/Linux system (but may be used by others).
-.SH "SEE ALSO"
-.\" Always quote multiple words for .SH
-.BR x-window-manager (1),
-.BR metacity (1),
-.BR metacity-theme-viewer (1).
diff --git a/doc/man/metacity.1 b/doc/man/metacity.1
deleted file mode 100644
index 3232ade..0000000
--- a/doc/man/metacity.1
+++ /dev/null
@@ -1,60 +0,0 @@
-.\"                                      Hey, EMACS: -*- nroff -*-
-.\" First parameter, NAME, should be all caps
-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-.\" other parameters are allowed: see man(7), man(1)
-.TH METACITY 1 "11 February 2006"
-.\" Please adjust this date whenever revising the manpage.
-.\"
-.\" Some roff macros, for reference:
-.\" .nh        disable hyphenation
-.\" .hy        enable hyphenation
-.\" .ad l      left justify
-.\" .ad b      justify to both left and right margins
-.\" .nf        disable filling
-.\" .fi        enable filling
-.\" .br        insert line break
-.\" .sp <n>    insert n+1 empty lines
-.\" for manpage-specific macros, see man(7)
-.SH NAME
-METACITY \- minimal GTK2 Window Manager
-.SH SYNOPSIS
-.B metacity
-[\-\-display=\fIDISPLAY\fP] [\-\-replace] [\-\-sm\-client\-id=\fIID\fP] [\-\-sm\-disable] [\-\-sm\-save\-file=\fIFILENAME\fP] [\-\-version] [\-\-help]
-.SH DESCRIPTION
-This manual page documents briefly
-.B metacity\fP.
-.PP
-.\" TeX users may be more comfortable with the \fB<whatever>\fP and
-.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
-.\" respectively.
-\fBmetacity\fP is a minimal X window manager aimed at nontechnical users and is designed to integrate well with the GNOME desktop.  \fBmetacity\fP lacks some features that may be expected by traditional UNIX or other technical users; these users may want to investigate other available window managers for use with GNOME or standalone.
-.SH OPTIONS
-.TP
-.B \-\-display=DISPLAY
-Connect to X display \fIDISPLAY\fP.
-.TP
-.B \-\-replace
-a window manager which is running is replaced by \fBmetacity\fP.  Users are encouraged to change the GNOME window manager by running the new WM with the --replace or -replace option, and subsequently saving the session.
-.TP
-.B \-\-sm\-client\-id=ID
-Specify a session management \fIID\fP.
-.TP
-.B \-\-sm\-disable
-Disable the session management.
-.TP
-.B \-\-sm\-save\-file=FILENAME
-Load a session from \fIFILENAME\fP.
-.TP
-.B \-\-version
-Print the version number.
-.TP
-.B \-?, \-\-help
-Show summary of options.
-.SH CONFIGURATION
-\fBmetacity\fP configuration can be found under \fIPreferences\fP->\fIWindows\fP and \fIPreferences\fP->\fIKeyboard Shortcuts\fP on the menu-panel. Advanced configuration can be achieved directly through gconf editing (gconf-editor or gconftool-2).
-.SH SEE ALSO
-.BR metacity-message (1)
-.SH AUTHOR
-The original manual page was written by Thom May <thom@debian.org>.  It was updated by Akira TAGOH <tagoh@debian.org>
-for the Debian GNU/Linux system (with permission to use by others), and then updated by Luke Morton and Philip O'Brien
-for inclusion in metacity.
diff --git a/doc/man/mutter-message.1 b/doc/man/mutter-message.1
new file mode 100644
index 0000000..c301875
--- /dev/null
+++ b/doc/man/mutter-message.1
@@ -0,0 +1,60 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.\" -----
+.\" This file was confirmed to be licenced under the GPL
+.\" by its author and copyright holder, Akira TAGOH, on June 1st 2008:
+.\"
+.\" > I'm comfortable with DFSG-free. that sounds great if you think it's
+.\" > useful and worth containing it in upstream.
+.\" ...
+.\" > Right I know. any licenses that is DFSG-free, I'm ok with whatever,
+.\" > since I have contributed that for Debian. so GPL is no problem for me.
+.\" -----
+.TH MUTTER\-MESSAGE 1 "28 August 2002"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+MUTTER\-MESSAGE \- a command to send a message to Mutter
+.SH SYNOPSIS
+.B MUTTER\-MESSAGE
+[restart|reload\-theme|enable\-keybindings|disable\-keybindings]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B mutter\-message\fP.
+This manual page was written for the Debian distribution
+because the original program does not have a manual page.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+\fBmutter\-message\fP send a specified message to \fBmutter\fP(1).
+.SH OPTIONS
+.TP
+.B restart
+Restart \fBmutter\fP(1) which is running.
+.TP
+.B reload-theme
+Reload a theme which is specified on gconf database.
+.TP
+.B enable-keybindings
+Enable all of keybindings which is specified on gconf database.
+.TP
+.B disable-keybindings
+Disable all of keybindings which is specified on gconf database.
+.SH SEE ALSO
+.BR mutter (1)
+.SH AUTHOR
+This manual page was written by Akira TAGOH <tagoh@debian.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/doc/man/mutter-theme-viewer.1 b/doc/man/mutter-theme-viewer.1
new file mode 100644
index 0000000..19fc0be
--- /dev/null
+++ b/doc/man/mutter-theme-viewer.1
@@ -0,0 +1,43 @@
+.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
+.\" other parms are allowed: see man(7), man(1)
+.\"
+.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
+.\" 
+.TH MUTTER-THEME-VIEWER 1 "1 June 2004" 
+.SH NAME
+mutter-theme-viewer \- view mutter themes
+.SH SYNOPSIS
+.B mutter-theme-viewer
+[
+.I THEMENAME
+]
+.SH DESCRIPTION
+.\" Putting a newline after each sentence can generate better output.
+.B mutter-theme-viewer
+allows you to preview any installed Mutter theme.
+.PP
+When designing a new Mutter theme, you can use
+.B mutter-theme-viewer
+to measure the performance of a window frame option, and to preview
+the option.
+.SH OPTIONS
+.TP
+.I THEMENAME
+Name of the theme to be shown (\fIAtlanta\fR by default).
+It is case-sensitive.
+.SH FILES
+.br
+.nf
+.TP
+.I /usr/share/themes
+system themes directory
+.TP
+.I /usr/share/themes/*/mutter-1/mutter-theme-1.xml
+theme specification file
+.SH AUTHOR
+This manual page was written by Jose M. Moya <josem@die.upm.es>, for
+the Debian  GNU/Linux system (but may be used by others).
+.SH "SEE ALSO"
+.\" Always quote multiple words for .SH
+.BR mutter (1),
+.BR mutter-window-demo (1).
diff --git a/doc/man/mutter-window-demo.1 b/doc/man/mutter-window-demo.1
new file mode 100644
index 0000000..605d048
--- /dev/null
+++ b/doc/man/mutter-window-demo.1
@@ -0,0 +1,25 @@
+.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
+.\" other parms are allowed: see man(7), man(1)
+.\"
+.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
+.\" 
+.TH MUTTER-WINDOW-DEMO 1 "1 June 2004" 
+.SH NAME
+mutter-window-demo \- demo of window features
+.SH SYNOPSIS
+.B mutter-window-demo
+.SH DESCRIPTION
+.\" Putting a newline after each sentence can generate better output.
+This program demonstrates various kinds of windows that window
+managers and window manager themes should handle.
+.PP
+Be sure to tear off the menu and toolbar, those are also a special
+kind of window.
+.SH AUTHOR
+This manual page was written by Jose M. Moya <josem@die.upm.es>, for
+the Debian  GNU/Linux system (but may be used by others).
+.SH "SEE ALSO"
+.\" Always quote multiple words for .SH
+.BR x-window-manager (1),
+.BR mutter (1),
+.BR mutter-theme-viewer (1).
diff --git a/doc/man/mutter.1 b/doc/man/mutter.1
new file mode 100644
index 0000000..785d208
--- /dev/null
+++ b/doc/man/mutter.1
@@ -0,0 +1,60 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH MUTTER 1 "11 February 2006"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+MUTTER \- Clutter based compositing GTK2 Window Manager
+.SH SYNOPSIS
+.B mutter
+[\-\-display=\fIDISPLAY\fP] [\-\-replace] [\-\-sm\-client\-id=\fIID\fP] [\-\-sm\-disable] [\-\-sm\-save\-file=\fIFILENAME\fP] [\-\-version] [\-\-help]
+.SH DESCRIPTION
+This manual page documents briefly
+.B mutter\fP.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+\fBmutter\fP is a minimal X window manager aimed at nontechnical users and is designed to integrate well with the GNOME desktop.  \fBmutter\fP lacks some features that may be expected by traditional UNIX or other technical users; these users may want to investigate other available window managers for use with GNOME or standalone.
+.SH OPTIONS
+.TP
+.B \-\-display=DISPLAY
+Connect to X display \fIDISPLAY\fP.
+.TP
+.B \-\-replace
+a window manager which is running is replaced by \fBmutter\fP.  Users are encouraged to change the GNOME window manager by running the new WM with the --replace or -replace option, and subsequently saving the session.
+.TP
+.B \-\-sm\-client\-id=ID
+Specify a session management \fIID\fP.
+.TP
+.B \-\-sm\-disable
+Disable the session management.
+.TP
+.B \-\-sm\-save\-file=FILENAME
+Load a session from \fIFILENAME\fP.
+.TP
+.B \-\-version
+Print the version number.
+.TP
+.B \-?, \-\-help
+Show summary of options.
+.SH CONFIGURATION
+\fBmutter\fP configuration can be found under \fIPreferences\fP->\fIWindows\fP and \fIPreferences\fP->\fIKeyboard Shortcuts\fP on the menu-panel. Advanced configuration can be achieved directly through gconf editing (gconf-editor or gconftool-2).
+.SH SEE ALSO
+.BR mutter-message (1)
+.SH AUTHOR
+The original manual page was written by Thom May <thom@debian.org>.  It was updated by Akira TAGOH <tagoh@debian.org>
+for the Debian GNU/Linux system (with permission to use by others), and then updated by Luke Morton and Philip O'Brien
+for inclusion in mutter.
diff --git a/doc/metacity-theme.dtd b/doc/metacity-theme.dtd
deleted file mode 100644
index a84a43e..0000000
--- a/doc/metacity-theme.dtd
+++ /dev/null
@@ -1,273 +0,0 @@
-<!--
- DTD for Metacity themes, as of Metacity 2.4.1
- Author: Ross Burton <ross@burtonini.com>
- Copyright (C) 2002 Ross Burton
- Licensed under the GPL, version 2
--->
-
-<!-- Top-level element -->
-<!ELEMENT metacity_theme (info,(window|frame_style_set|frame_style|frame_geometry|constant|draw_ops|menu_icon)+)>
-
-<!-- Theme metadata -->
-<!ELEMENT info (name?|author?|copyright?|date?|description?)*>
-<!ELEMENT name (#PCDATA)>
-<!ELEMENT author (#PCDATA)>
-<!ELEMENT copyright (#PCDATA)>
-<!ELEMENT date (#PCDATA)>
-<!ELEMENT description (#PCDATA)>
-
-<!ENTITY % xyrequired "
-	x			CDATA #REQUIRED
-	y			CDATA #REQUIRED
-">
-
-<!ENTITY % xyimplied "
-	x			CDATA #IMPLIED
-	y			CDATA #IMPLIED
-">
-
-<!ENTITY % widthheightrequired "
-	width		CDATA #REQUIRED
-	height		CDATA #REQUIRED
-">
-
-<!ENTITY % widthheightimplied "
-	width		CDATA #IMPLIED
-	height		CDATA #IMPLIED
-">
-
-<!ENTITY % boolean "(true|false)">
-
-<!ENTITY % piece_positions "
-(entire_background|titlebar|titlebar_middle|left_titlebar_edge|right_titlebar_edge|top_titlebar_edge|bottom_titlebar_edge|title|left_edge|right_edge|bottom_edge|overlay)
-">
-
-<!ENTITY % gtk-state "
-	state (normal|prelight|active|selected|insensitive) #REQUIRED
-">
-
-<!ENTITY % gtk-shadow "
-	shadow (none|in|out|etched_in|etched_out) #REQUIRED
-">
-
-
-<!-- The actual theme -->
-
-<!ELEMENT window EMPTY>
-<!ATTLIST window
-	type		(normal|dialog|modal_dialog|menu|utility|border) #REQUIRED
-	style_set		CDATA #REQUIRED
->
-
-
-<!ELEMENT frame_style_set (frame+)>
-<!ATTLIST frame_style_set
-	name		CDATA #REQUIRED
-	parent		CDATA #IMPLIED
->
-
-<!ELEMENT frame EMPTY>
-<!ATTLIST frame
-	focus		(yes|no) #REQUIRED
-	state		(normal|maximized|shaded|maximized_and_shaded) #REQUIRED
-	resize		(both|horizontal|vertical|none) #IMPLIED
-	style		CDATA #REQUIRED
->
-
-<!ELEMENT frame_style (piece|button)*>
-<!ATTLIST frame_style
-	name		CDATA #REQUIRED
-	geometry		CDATA #REQUIRED
-	parent		CDATA #IMPLIED
->
-
-<!ELEMENT piece (draw_ops?)>
-<!ATTLIST piece
-	position		%piece_positions; #REQUIRED
-	draw_ops		CDATA #IMPLIED
->
-
-<!ELEMENT button (draw_ops?)>
-<!ATTLIST button
-	function		(menu|minimize|maximize|close|left_left_background|left_middle_background|left_right_background|right_left_background|right_middle_background|right_right_background) #REQUIRED
-	state		(normal|prelight|pressed) #REQUIRED
-	draw_ops		CDATA #IMPLIED
->
-
-<!ELEMENT frame_geometry (border|(aspect_ratio|distance))+>
-<!ATTLIST frame_geometry
-	name		CDATA #REQUIRED
-	parent		CDATA #IMPLIED
-	title_scale		(xx-small|x-small|small|medium|large|x-large|xx-large) #IMPLIED
-	has_title		(true|false) 'true'
-	rounded_top_left		%boolean; #IMPLIED
-	rounded_top_right		%boolean; #IMPLIED
-	rounded_bottom_left	%boolean; #IMPLIED
-	rounded_bottom_right	%boolean; #IMPLIED
->
-
-<!ELEMENT distance EMPTY>
-<!ATTLIST distance
-	name		(left_width|right_width|bottom_height|title_vertical_pad|right_titlebar_edge|left_titlebar_edge|button_width|button_height) #REQUIRED
-	value		CDATA #REQUIRED
->
-
-<!ELEMENT border EMPTY>
-<!ATTLIST border
-	name		CDATA #REQUIRED
-	top		CDATA #REQUIRED
-	bottom		CDATA #REQUIRED
-	left		CDATA #REQUIRED
-	right		CDATA #REQUIRED
->
-
-<!ELEMENT aspect_ratio EMPTY>
-<!ATTLIST aspect_ratio
-	name		CDATA #REQUIRED
-	value		CDATA #REQUIRED
->
-
-<!ELEMENT draw_ops (line|rectangle|arc|tint|gradient|image|gtk_arrow|gtk_box|gtk_vline|icon|title|clip|include|tile)*>
-<!-- not sure about this.. maybe it should be removed. see #3478 in theme-parser.c -->
-<!ATTLIST draw_ops
-	name		CDATA #IMPLIED
->
-
-<!ELEMENT line EMPTY>
-<!ATTLIST line
-	color			CDATA #REQUIRED
-	x1			CDATA #REQUIRED
-	y1			CDATA #REQUIRED
-	x2			CDATA #REQUIRED
-	y2			CDATA #REQUIRED
-	width		CDATA #IMPLIED
-	dash_on_length CDATA #IMPLIED
-	dash_off_length CDATA #IMPLIED
->
-
-<!ELEMENT rectangle EMPTY>
-<!ATTLIST rectangle
-	color			CDATA #REQUIRED
-	%xyrequired;
-	%widthheightrequired;
-	filled			%boolean; 'false'
->
-
-<!ELEMENT arc EMPTY>
-<!ATTLIST arc
-	color			CDATA #REQUIRED
-	%xyrequired;
-	%widthheightrequired;
-	start_angle	CDATA	#REQUIRED
-	extent_angle	CDATA	#REQUIRED
-	filled			%boolean; 'false'
->
-
-<!ELEMENT icon EMPTY>
-<!ATTLIST icon
-	%xyrequired;
-	width		CDATA #REQUIRED
-	height		CDATA #REQUIRED
-	alpha		CDATA #IMPLIED
-	fill_type		(tile|scale) 'scale'
->
-
-<!ELEMENT image EMPTY>
-<!ATTLIST image
-	filename		CDATA #REQUIRED
-	colorize		CDATA #IMPLIED
-	%xyrequired;
-	%widthheightrequired;
-	alpha		CDATA #IMPLIED
-	fill_type		(tile|scale) 'scale'
->
-
-<!ELEMENT tile EMPTY>
-<!ATTLIST tile
-	name		CDATA #REQUIRED
-	%xyrequired;
-	%widthheightrequired;
-	tile_xoffset	CDATA #IMPLIED
-	tile_yoffset	CDATA #IMPLIED
-	tile_width		CDATA #REQUIRED
-	tile_height	CDATA #REQUIRED
->
-
-<!ELEMENT clip EMPTY>
-<!ATTLIST clip
-	%xyrequired;
-	%widthheightrequired;
->
-
-<!ELEMENT title EMPTY>
-<!ATTLIST title
-	color			CDATA #REQUIRED
-	%xyrequired;
->
-
-<!ELEMENT tint EMPTY>
-<!ATTLIST tint
-	color			CDATA #REQUIRED
-	%xyrequired;
-	%widthheightrequired;
-	alpha		CDATA #REQUIRED
->
-
-<!ELEMENT gtk_box EMPTY>
-<!ATTLIST gtk_box
-	%gtk-state;
-	%gtk-shadow;
-	%xyrequired;
-	%widthheightrequired;
->
-
-<!ELEMENT gtk_arrow EMPTY>
-<!ATTLIST gtk_arrow
-	%gtk-state;
-	%gtk-shadow;
-	arrow		(up|down|left|right) #REQUIRED
-	%xyrequired;
-	%widthheightrequired;
-	filed			CDATA #IMPLIED
->
-
-<!ELEMENT gtk_vline EMPTY>
-<!ATTLIST gtk_vline
-	%gtk-state;
-	x			CDATA #REQUIRED
-	y1			CDATA #REQUIRED
-	y2			CDATA #REQUIRED
->
-
-<!ELEMENT gradient (color)+>
-<!ATTLIST gradient
-	type		(vertical|horizontal|diagonal) #REQUIRED
-	%xyrequired;
-	%widthheightrequired;
-	alpha		CDATA #IMPLIED
->
-
-<!ELEMENT color EMPTY>
-<!ATTLIST color
-	value		CDATA #REQUIRED
->
-
-<!ELEMENT include EMPTY>
-<!ATTLIST include
-	name		CDATA #REQUIRED
-	%xyimplied;
-	%widthheightimplied;
->
-
-<!ELEMENT constant EMPTY>
-<!ATTLIST constant
-	name		CDATA #REQUIRED
-	value		CDATA #REQUIRED
->
-
-<!ELEMENT menu_icon (draw_ops?)>
-<!ATTLIST menu_icon
-	function		(close|maximize|minimize|unmaximize) #REQUIRED
-	%gtk-state;
-	draw_ops		CDATA #IMPLIED
->
diff --git a/metacity.doap b/metacity.doap
deleted file mode 100644
index 6141fb2..0000000
--- a/metacity.doap
+++ /dev/null
@@ -1,710 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<Project
-  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-  xmlns:dc="http://purl.org/dc/elements/1.1/"
-  xmlns="http://usefulinc.com/ns/doap#"
-  xmlns:foaf="http://xmlns.com/foaf/0.1/"
-  xmlns:admin="http://webns.net/mvcb/">
-
- <name>The Metacity Window Manager</name>
- <shortname>Metacity</shortname>
-
- <!-- It's a blog.  Metacity has no homepage. -->
- <homepage rdf:resource="http://blogs.gnome.org/metacity/" />
-
- <!-- The date when the source control was initialised. -->
- <created>2001-05-30</created>
-
- <shortdesc xml:lang="en">
-   Metacity is a simple compositing window manager that integrates nicely with GNOME 2.
-</shortdesc>
- <description xml:lang="en">
-A window manager for GNOME, with a focus on simplicity and usability
-rather than novelties or gimmicks.  It uses GTK+ 2 for drawing window frames,
-so that it inherits colours, fonts, and so on from the GTK+ theme.  Its author
-has characterised it as a &quot;boring window manager for the adult in you.
-Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios.&quot;
- </description>
-
- <!-- I haven't found anything appropriate; I made this up. -->
- <category>window-manager</category>
-
- <wiki rdf:resource="http://live.gnome.org/Metacity" />
- <bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=metacity" />
- <screenshots rdf:resource="http://commons.wikimedia.org/wiki/Image:Metacity-screenshot.png" />
-
- <mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/metacity-devel-list" />
-
- <programming-language>C</programming-language>
- <license rdf:resource="http://usefulinc.com/doap/licenses/gpl" />
- <download-page rdf:resource="http://download.gnome.org/sources/metacity/" />
-
- <repository>
-   <SVNRepository>
-     <location rdf:resource="http://svn.gnome.org/svn/metacity" />
-     <browse rdf:resource="http://svn.gnome.org/viewvc/metacity/" />
-   </SVNRepository>
- </repository> 
-
- <author>
-  <foaf:Person>
-     <foaf:name>Havoc Pennington</foaf:name>
-  </foaf:Person>
- </author>
-
- <maintainer>
-  <foaf:Person>
-     <foaf:name>Elijah Newren</foaf:name>
-  </foaf:Person>
- </maintainer>
-
- <maintainer>
-  <foaf:Person>
-     <foaf:name>Thomas Thurman</foaf:name>
-     <foaf:mbox rdf:resource="mailto:tthurman@gnome.org"/>
-  </foaf:Person>
- </maintainer>
-
-	<release><Version>
-	    <name>2.25.1 release</name>
-	    <created>2008-09-01</created>
-	    <branch></branch>
-	    <revision>2.25.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.25.0 release</name>
-	    <created>2008-08-18</created>
-	    <branch></branch>
-	    <revision>2.25.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.89 release</name>
-	    <created>2008-08-04</created>
-	    <branch></branch>
-	    <revision>2.23.89</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.89.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.89.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.55 release</name>
-	    <created>2008-07-14</created>
-	    <branch></branch>
-	    <revision>2.23.55</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.55.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.55.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.34 release</name>
-	    <created>2008-06-16</created>
-	    <branch></branch>
-	    <revision>2.23.34</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.34 release</name>
-	    <created>2008-06-16</created>
-	    <branch></branch>
-	    <revision>2.23.34</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.34 release</name>
-	    <created>2008-06-02</created>
-	    <branch></branch>
-	    <revision>2.23.34</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.21 release</name>
-	    <created>2008-05-26</created>
-	    <branch></branch>
-	    <revision>2.23.21</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.21.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.21.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.13 release</name>
-	    <created>2008-04-27</created>
-	    <branch></branch>
-	    <revision>2.23.13</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.13.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.13.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.8 release</name>
-	    <created>2008-04-22</created>
-	    <branch></branch>
-	    <revision>2.23.8</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.8.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.8.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.5 release</name>
-	    <created>2008-04-06</created>
-	    <branch></branch>
-	    <revision>2.23.5</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.5.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.5.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.3 release</name>
-	    <created>2008-03-21</created>
-	    <branch></branch>
-	    <revision>2.23.3</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.3.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.3.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.2 release</name>
-	    <created>2008-03-07</created>
-	    <branch></branch>
-	    <revision>2.23.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.1 release</name>
-	    <created>2008-03-06</created>
-	    <branch></branch>
-	    <revision>2.23.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.23.0 release</name>
-	    <created>2008-02-26</created>
-	    <branch></branch>
-	    <revision>2.23.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.21.13 release</name>
-	    <created>2008-02-11</created>
-	    <branch></branch>
-	    <revision>2.21.13</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.13.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.13.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.21.8 release</name>
-	    <created>2008-02-03</created>
-	    <branch></branch>
-	    <revision>2.21.8</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.8.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.8.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.21.5 release</name>
-	    <created>2007-12-19</created>
-	    <branch></branch>
-	    <revision>2.21.5</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.5.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.5.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.21.3 release</name>
-	    <created>2007-12-14</created>
-	    <branch></branch>
-	    <revision>2.21.3</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.3.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.3.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.21.2 release</name>
-	    <created>2007-11-17</created>
-	    <branch></branch>
-	    <revision>2.21.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.21.1 release</name>
-	    <created>2007-11-11</created>
-	    <branch></branch>
-	    <revision>2.21.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.20.0 release</name>
-	    <created>2007-09-15</created>
-	    <branch></branch>
-	    <revision>2.20.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.20/2.20.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.20/2.20.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.55 release</name>
-	    <created>2007-08-07</created>
-	    <branch></branch>
-	    <revision>2.19.55</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.55.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.55.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.34 release</name>
-	    <created>2007-07-22</created>
-	    <branch></branch>
-	    <revision>2.19.34</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.34.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.34.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.21 release</name>
-	    <created>2007-06-18</created>
-	    <branch></branch>
-	    <revision>2.19.21</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.21.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.21.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.13 release</name>
-	    <created>2007-06-10</created>
-	    <branch></branch>
-	    <revision>2.19.13</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.13.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.13.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.8 release</name>
-	    <created>2007-06-04</created>
-	    <branch></branch>
-	    <revision>2.19.8</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.8.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.8.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.5 release</name>
-	    <created>2007-04-23</created>
-	    <branch></branch>
-	    <revision>2.19.5</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.5.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.5.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.3 release</name>
-	    <created>2007-04-16</created>
-	    <branch></branch>
-	    <revision>2.19.3</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.3.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.3.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.2 release</name>
-	    <created>2007-04-09</created>
-	    <branch></branch>
-	    <revision>2.19.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.19.1 release</name>
-	    <created>2007-04-04</created>
-	    <branch></branch>
-	    <revision>2.19.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.17.3 release</name>
-	    <created>2006-12-10</created>
-	    <branch></branch>
-	    <revision>2.17.3</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.3.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.3.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.17.2 release</name>
-	    <created>2006-11-06</created>
-	    <branch></branch>
-	    <revision>2.17.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.17.1 release</name>
-	    <created>2006-10-16</created>
-	    <branch></branch>
-	    <revision>2.17.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.17.0 release</name>
-	    <created>2006-10-07</created>
-	    <branch></branch>
-	    <revision>2.17.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.16.2 release</name>
-	    <created>2006-09-18</created>
-	    <branch></branch>
-	    <revision>2.16.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.16.1 release</name>
-	    <created>2006-09-11</created>
-	    <branch></branch>
-	    <revision>2.16.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.16.0 release</name>
-	    <created>2006-09-04</created>
-	    <branch></branch>
-	    <revision>2.16.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.34 release</name>
-	    <created>2006-08-21</created>
-	    <branch></branch>
-	    <revision>2.15.34</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.34.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.34.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.21 release</name>
-	    <created>2006-08-07</created>
-	    <branch></branch>
-	    <revision>2.15.21</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.21.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.21.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.13 release</name>
-	    <created>2006-07-24</created>
-	    <branch></branch>
-	    <revision>2.15.13</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.13.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.13.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.8 release</name>
-	    <created>2006-07-10</created>
-	    <branch></branch>
-	    <revision>2.15.8</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.8.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.8.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.5 release</name>
-	    <created>2006-06-12</created>
-	    <branch></branch>
-	    <revision>2.15.5</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.5.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.5.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.3 release</name>
-	    <created>2006-05-15</created>
-	    <branch></branch>
-	    <revision>2.15.3</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.3.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.3.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.2 release</name>
-	    <created>2006-04-25</created>
-	    <branch></branch>
-	    <revision>2.15.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.1 release</name>
-	    <created>2006-04-25</created>
-	    <branch></branch>
-	    <revision>2.15.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.15.0 release</name>
-	    <created>2006-04-24</created>
-	    <branch></branch>
-	    <revision>2.15.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.89 release</name>
-	    <created>2006-02-13</created>
-	    <branch></branch>
-	    <revision>2.13.89</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.89.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.89.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.55 release</name>
-	    <created>2006-01-30</created>
-	    <branch></branch>
-	    <revision>2.13.55</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.55.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.55.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.34 release</name>
-	    <created>2006-01-20</created>
-	    <branch></branch>
-	    <revision>2.13.34</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.34.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.34.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.21 release</name>
-	    <created>2006-01-16</created>
-	    <branch></branch>
-	    <revision>2.13.21</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.21.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.21.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.13 release</name>
-	    <created>2006-01-10</created>
-	    <branch></branch>
-	    <revision>2.13.13</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.13.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.13.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.8 release</name>
-	    <created>2006-01-02</created>
-	    <branch></branch>
-	    <revision>2.13.8</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.8.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.8.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.5 release</name>
-	    <created>2005-12-12</created>
-	    <branch></branch>
-	    <revision>2.13.5</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.5.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.5.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.3 release</name>
-	    <created>2005-11-22</created>
-	    <branch></branch>
-	    <revision>2.13.3</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.3.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.3.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.2 release</name>
-	    <created>2005-11-19</created>
-	    <branch></branch>
-	    <revision>2.13.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.1 release</name>
-	    <created>2005-11-14</created>
-	    <branch></branch>
-	    <revision>2.13.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.13.0 release</name>
-	    <created>2005-10-24</created>
-	    <branch></branch>
-	    <revision>2.13.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.12.1 release</name>
-	    <created>2005-10-03</created>
-	    <branch></branch>
-	    <revision>2.12.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.12.0 release</name>
-	    <created>2005-09-05</created>
-	    <branch></branch>
-	    <revision>2.12.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.11.3 release</name>
-	    <created>2005-08-22</created>
-	    <branch></branch>
-	    <revision>2.11.3</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.3.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.3.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.11.2 release</name>
-	    <created>2005-08-08</created>
-	    <branch></branch>
-	    <revision>2.11.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.11.1 release</name>
-	    <created>2005-07-24</created>
-	    <branch></branch>
-	    <revision>2.11.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.11.0 release</name>
-	    <created>2005-07-12</created>
-	    <branch></branch>
-	    <revision>2.11.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.10.2 release</name>
-	    <created>2005-06-27</created>
-	    <branch></branch>
-	    <revision>2.10.2</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.2.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.2.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.10.1 release</name>
-	    <created>2005-04-11</created>
-	    <branch></branch>
-	    <revision>2.10.1</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.1.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.1.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.10.0 release</name>
-	    <created>2005-03-07</created>
-	    <branch></branch>
-	    <revision>2.10.0</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.0.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.0.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.8.5 release</name>
-	    <created>2004-09-13</created>
-	    <branch></branch>
-	    <revision>2.8.5</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.8.5 release</name>
-	    <created>2004-09-13</created>
-	    <branch></branch>
-	    <revision>2.8.5</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.8.4 release</name>
-	    <created>2004-08-29</created>
-	    <branch></branch>
-	    <revision>2.8.4</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.4.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.4.tar.bz2"/>
-	</Version></release>
-
-	<release><Version>
-	    <name>2.8.3 release</name>
-	    <created>2004-08-15</created>
-	    <branch></branch>
-	    <revision>2.8.3</revision>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.3.tar.gz"/>
-	    <file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.3.tar.bz2"/>
-	</Version></release>
-
-	<!-- earlier ones not yet documented, and will have to be added by hand -->
-
-</Project>
diff --git a/src/50-metacity-desktop-key.xml.in b/src/50-metacity-desktop-key.xml.in
deleted file mode 100644
index dbd5d75..0000000
--- a/src/50-metacity-desktop-key.xml.in
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<KeyListEntries _name="Desktop" wm_name="Metacity" package="metacity">
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/panel_run_dialog" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/panel_main_menu" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/run_command_screenshot" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/run_command_window_screenshot" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/run_command_terminal" />
-
-</KeyListEntries>
-
diff --git a/src/50-metacity-key.xml.in b/src/50-metacity-key.xml.in
deleted file mode 100644
index d6113a2..0000000
--- a/src/50-metacity-key.xml.in
+++ /dev/null
@@ -1,269 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<KeyListEntries _name="Window Management" wm_name="Metacity" package="metacity">
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/activate_window_menu" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/toggle_fullscreen" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/toggle_maximized" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/maximize" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/unmaximize" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/toggle_shaded" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/close" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/minimize" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/begin_move" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/begin_resize" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/toggle_on_all_workspaces"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/raise_or_lower" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/raise" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/lower" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/maximize_vertically" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/maximize_horizontally" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_1"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_2"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_3"
-	value="2"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_4"
-	value="3"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_5"
-	value="4"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_6"
-	value="5"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_7"
-	value="6"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_8"
-	value="7"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_9"
-	value="8"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_10"
-	value="9"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_11"
-	value="10"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_12"
-	value="11"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_left"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_right"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_up"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/window_keybindings/move_to_workspace_down"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_windows" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_group" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_panels" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/cycle_windows" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/cycle_group" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/cycle_panels" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/show_desktop" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_1"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_2"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_3"
-	value="2"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_4"
-	value="3"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_5"
-	value="4"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_6"
-	value="5"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_7"
-	value="6"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_8"
-	value="7"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_9"
-	value="8"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_10"
-	value="9"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_11"
-	value="10"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_12"
-	value="11"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_left"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_right"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_up"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-	<KeyListEntry
-	name="/apps/metacity/global_keybindings/switch_to_workspace_down"
-	value="1"
-	key="/apps/metacity/general/num_workspaces"
-	comparison="gt" />
-
-</KeyListEntries>
-
diff --git a/src/Makefile.am b/src/Makefile.am
index 365d096..e6287de 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,14 +1,14 @@
-lib_LTLIBRARIES = libmetacity-private.la
+lib_LTLIBRARIES = libmutter-private.la
 
-SUBDIRS=wm-tester tools themes
+SUBDIRS=wm-tester tools
 
 if WITH_CLUTTER
 SUBDIRS += compositor/mutter/plugins
 endif
 
-INCLUDES=@METACITY_CFLAGS@ -I $(srcdir)/include -I$(srcdir)/compositor -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1 -DMETACITY_MAJOR_VERSION=$(METACITY_MAJOR_VERSION) -DMETACITY_MINOR_VERSION=$(METACITY_MINOR_VERSION) -DMETACITY_MICRO_VERSION=$(METACITY_MICRO_VERSION) -DMETACITY_CLUTTER_PLUGIN_API_VERSION=$(METACITY_CLUTTER_PLUGIN_API_VERSION) -DMETACITY_PKGLIBDIR=\"$(pkglibdir)\" -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\"
+INCLUDES=@MUTTER_CFLAGS@ -I $(srcdir)/include -I$(srcdir)/compositor -DMUTTER_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMUTTER_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMUTTER_PKGDATADIR=\"$(pkgdatadir)\" -DMUTTER_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"mutter\" -DSN_API_NOT_YET_FROZEN=1 -DMUTTER_MAJOR_VERSION=$(MUTTER_MAJOR_VERSION) -DMUTTER_MINOR_VERSION=$(MUTTER_MINOR_VERSION) -DMUTTER_MICRO_VERSION=$(MUTTER_MICRO_VERSION) -DMUTTER_PLUGIN_API_VERSION=$(MUTTER_PLUGIN_API_VERSION) -DMUTTER_PKGLIBDIR=\"$(pkglibdir)\" -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\"
 
-metacity_SOURCES= 			\
+mutter_SOURCES= 				\
 	core/async-getprop.c			\
 	core/async-getprop.h			\
 	core/alttabhandler.c			\
@@ -57,7 +57,7 @@ metacity_SOURCES= 			\
 	core/keybindings-private.h		\
 	core/main.c				\
 	include/main.h				\
-	core/metacity-Xatomtype.h		\
+	core/mutter-Xatomtype.h		\
 	core/place.c				\
 	core/place.h				\
 	core/prefs.c				\
@@ -107,7 +107,7 @@ metacity_SOURCES= 			\
 	include/all-keybindings.h
 
 if WITH_CLUTTER
-metacity_SOURCES += 				\
+mutter_SOURCES += 					\
 	compositor/mutter/compositor-mutter.c		\
 	compositor/mutter/mutter-shaped-texture.c	\
 	compositor/mutter/mutter-shaped-texture.h	\
@@ -122,10 +122,10 @@ metacity_SOURCES += 				\
 	include/compositor-mutter.h
 endif
 
-# by setting libmetacity_private_la_CFLAGS, the files shared with
-# metacity proper will be compiled with different names.
-libmetacity_private_la_CFLAGS =
-libmetacity_private_la_SOURCES=			\
+# by setting libmutter_private_la_CFLAGS, the files shared with
+# mutter proper will be compiled with different names.
+libmutter_private_la_CFLAGS =
+libmutter_private_la_SOURCES=			\
 	core/boxes.c				\
 	include/boxes.h				\
 	ui/gradient.c				\
@@ -140,12 +140,12 @@ libmetacity_private_la_SOURCES=			\
 	ui/theme.c				\
 	ui/theme.h
 
-libmetacity_private_la_LDFLAGS = -no-undefined
-libmetacity_private_la_LIBADD  = @METACITY_LIBS@
+libmutter_private_la_LDFLAGS = -no-undefined
+libmutter_private_la_LIBADD  = @MUTTER_LIBS@
 
-libmetacityincludedir = $(includedir)/metacity-1/metacity-private
+libmutterincludedir = $(includedir)/mutter/mutter-private
 
-libmetacityinclude_base_headers =		\
+libmutterinclude_base_headers =		\
 	include/alttabhandler.h			\
 	include/boxes.h				\
 	ui/gradient.h				\
@@ -167,28 +167,19 @@ libmetacityinclude_base_headers =		\
 	include/mutter-plugin.h
 
 # Excluded from scanning for introspection but installed
-libmetacityinclude_extra_headers =		\
+libmutterinclude_extra_headers =		\
 	include/atomnames.h
 
-libmetacityinclude_HEADERS =			\
-	$(libmetacityinclude_base_headers)	\
-	$(libmetacityinclude_extra_headers)
+libmutterinclude_HEADERS =			\
+	$(libmutterinclude_base_headers)	\
+	$(libmutterinclude_extra_headers)
 
-metacity_theme_viewer_SOURCES=  \
+mutter_theme_viewer_SOURCES=  \
 	ui/theme-viewer.c
 
-schema_bindings_SOURCES =       \
-        core/schema-bindings.c			\
-	metacity.schemas.in.in
+bin_PROGRAMS=mutter mutter-theme-viewer
 
-schema_bindings_LDADD = @METACITY_LIBS@
-metacity.schemas.in: schema_bindings ${srcdir}/metacity.schemas.in.in
-	@echo Generating keybinding schemas... ${srcdir}/metacity.schemas.in.in
-	${builddir}/schema_bindings ${srcdir}/metacity.schemas.in.in ${builddir}/metacity.schemas.in
-
-bin_PROGRAMS=metacity metacity-theme-viewer
-
-api_version = $(METACITY_MAJOR_VERSION).$(METACITY_MINOR_VERSION)
+api_version = $(META_MAJOR_VERSION).$(META_MINOR_VERSION)
 
 if WITH_INTROSPECTION
 # These files are in package-private directories, even though they may be used
@@ -200,9 +191,9 @@ gir_DATA = Meta-$(api_version).gir
 typelibdir = $(pkglibdir)
 typelib_DATA = Meta-$(api_version).typelib
 
-# We need to strip out the attribute that would point back to libmetacity-introspect
+# We need to strip out the attribute that would point back to libmutter-introspect
 # so that libgirepository looks for symbols in the executable instead
-Meta-$(api_version).gir: $(G_IR_SCANNER) metacity $(libmetacityinclude_HEADERS) $(metacity_SOURCES)
+Meta-$(api_version).gir: $(G_IR_SCANNER) mutter $(libmutterinclude_HEADERS) $(mutter_SOURCES)
 	$(G_IR_SCANNER)					\
 		--namespace=Meta			\
 		--nsversion=$(api_version)		\
@@ -213,9 +204,9 @@ Meta-$(api_version).gir: $(G_IR_SCANNER) metacity $(libmetacityinclude_HEADERS)
 		--pkg=clutter-0.9			\
 		--pkg=gtk+-2.0				\
 		--include=xfixes-4.0			\
-		--program=./metacity			\
-		$(filter %.c,$(metacity_SOURCES))	\
-		$(libmetacityinclude_base_headers)	\
+		--program=./mutter			\
+		$(filter %.c,$(mutter_SOURCES))	\
+		$(libmutterinclude_base_headers)	\
 		$(INCLUDES)				\
 		-o $@
 
@@ -224,42 +215,40 @@ Meta-$(api_version).typelib: $(G_IR_COMPILER) Meta-$(api_version).gir
 endif
 
 EFENCE=
-metacity_LDADD=@METACITY_LIBS@ libmetacity-private.la $(EFENCE)
-metacity_LDFLAGS=-export-dynamic
+mutter_LDADD=@MUTTER_LIBS@ libmutter-private.la $(EFENCE)
+mutter_LDFLAGS=-export-dynamic
 
-metacity_theme_viewer_LDADD= @METACITY_LIBS@ libmetacity-private.la
+mutter_theme_viewer_LDADD= @MUTTER_LIBS@ libmutter-private.la
 
 testboxes_SOURCES=include/util.h core/util.c include/boxes.h core/boxes.c core/testboxes.c
 testgradient_SOURCES=ui/gradient.h ui/gradient.c ui/testgradient.c
 testasyncgetprop_SOURCES=core/async-getprop.h core/async-getprop.c core/testasyncgetprop.c
 
-noinst_PROGRAMS=testboxes testgradient testasyncgetprop schema_bindings
+noinst_PROGRAMS=testboxes testgradient testasyncgetprop
 
-testboxes_LDADD= @METACITY_LIBS@ libmetacity-private.la
-testgradient_LDADD= @METACITY_LIBS@ libmetacity-private.la
-testasyncgetprop_LDADD= @METACITY_LIBS@ libmetacity-private.la
+testboxes_LDADD= @MUTTER_LIBS@ libmutter-private.la
+testgradient_LDADD= @MUTTER_LIBS@ libmutter-private.la
+testasyncgetprop_LDADD= @MUTTER_LIBS@ libmutter-private.la
 
 @INTLTOOL_DESKTOP_RULE@
 
 desktopfilesdir=$(datadir)/applications
-desktopfiles_in_files=metacity.desktop.in
+desktopfiles_in_files=mutter.desktop.in
 desktopfiles_files=$(desktopfiles_in_files:.desktop.in=.desktop)
 desktopfiles_DATA = $(desktopfiles_files)
 
 wmpropertiesdir=$(datadir)/gnome/wm-properties
-wmproperties_in_files=metacity-wm.desktop.in
+wmproperties_in_files=mutter-wm.desktop.in
 wmproperties_files=$(wmproperties_in_files:.desktop.in=.desktop)
 wmproperties_DATA = $(wmproperties_files)
 
 schemadir   = @GCONF_SCHEMA_FILE_DIR@
-schema_in_files = metacity.schemas.in
+schema_in_files = mutter.schemas.in
 schema_DATA = $(schema_in_files:.schemas.in=.schemas)
 
 @INTLTOOL_XML_NOMERGE_RULE@
 
 xmldir       = @GNOME_KEYBINDINGS_KEYSDIR@
-xml_in_files = 50-metacity-desktop-key.xml.in 50-metacity-key.xml.in
-xml_DATA     = $(xml_in_files:.xml.in=.xml)
 
 @INTLTOOL_SCHEMAS_RULE@
 
@@ -276,14 +265,14 @@ VARIABLES=stock_maximize_data $(srcdir)/stock_maximize.png \
           stock_delete_data $(srcdir)/stock_delete.png
 
 BUILT_SOURCES = inlinepixbufs.h
-CLEANFILES = inlinepixbufs.h metacity.desktop metacity-wm.desktop metacity.schemas metacity.schemas.in 50-metacity-desktop-key.xml 50-metacity-key.xml
+CLEANFILES = inlinepixbufs.h mutter.desktop mutter-wm.desktop mutter.schemas
 
 inlinepixbufs.h: $(IMAGES)
 	$(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h
 
 pkgconfigdir = $(libdir)/pkgconfig
 
-pkgconfig_DATA = libmetacity-private.pc metacity-plugins.pc
+pkgconfig_DATA = libmutter-private.pc mutter-plugins.pc
 
 EXTRA_DIST=$(desktopfiles_files) 	\
 	$(wmproperties_files)		\
@@ -291,7 +280,6 @@ EXTRA_DIST=$(desktopfiles_files) 	\
 	$(desktopfiles_in_files)	\
 	$(wmproperties_in_files)	\
 	$(schema_in_files)		\
-	$(xml_in_files)			\
-	libmetacity-private.pc.in	\
-	metacity-plugins.pc.in
+	libmutter-private.pc.in	\
+	mutter-plugins.pc.in
 
diff --git a/src/compositor/mutter/mutter-module.c b/src/compositor/mutter/mutter-module.c
index 30a2d0d..65fc50a 100644
--- a/src/compositor/mutter/mutter-module.c
+++ b/src/compositor/mutter/mutter-module.c
@@ -69,7 +69,7 @@ mutter_module_load (GTypeModule *gmodule)
 		       (gpointer *)&register_type) &&
       info && register_type)
     {
-      if (info->version_api != METACITY_CLUTTER_PLUGIN_API_VERSION)
+      if (info->version_api != MUTTER_PLUGIN_API_VERSION)
 	g_warning ("Plugin API mismatch for [%s]", priv->path);
       else
         {
diff --git a/src/compositor/mutter/plugins/Makefile.am b/src/compositor/mutter/plugins/Makefile.am
index 379b426..3296298 100644
--- a/src/compositor/mutter/plugins/Makefile.am
+++ b/src/compositor/mutter/plugins/Makefile.am
@@ -3,7 +3,7 @@ pkglibdir=@MUTTER_PLUGIN_DIR@
 
 if WITH_CLUTTER
 
-INCLUDES=@METACITY_CFLAGS@ -I $(top_srcdir)/src/include -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1 -DMETACITY_MAJOR_VERSION=$(METACITY_MAJOR_VERSION) -DMETACITY_MINOR_VERSION=$(METACITY_MINOR_VERSION) -DMETACITY_MICRO_VERSION=$(METACITY_MICRO_VERSION) -DMETACITY_CLUTTER_PLUGIN_API_VERSION=$(METACITY_CLUTTER_PLUGIN_API_VERSION) -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\"
+INCLUDES=@MUTTER_CFLAGS@ -I $(top_srcdir)/src/include -DMUTTER_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMUTTER_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMUTTER_PKGDATADIR=\"$(pkgdatadir)\" -DMUTTER_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"mutter\" -DSN_API_NOT_YET_FROZEN=1 -DMUTTER_MAJOR_VERSION=$(MUTTER_MAJOR_VERSION) -DMUTTER_MINOR_VERSION=$(MUTTER_MINOR_VERSION) -DMUTTER_MICRO_VERSION=$(MUTTER_MICRO_VERSION) -DMUTTER_PLUGIN_API_VERSION=$(MUTTER_PLUGIN_API_VERSION) -DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\"
 
 default_la_CFLAGS   = -fPIC
 default_la_SOURCES  = default.c
@@ -14,7 +14,7 @@ pkglib_LTLIBRARIES = default.la
 
 # post-install hook to remove the .la and .a files we are not interested in
 # (There is no way to stop libtool generating static libs locally, and we
-# cannot do this globally because of libmetacity-private.so).
+# cannot do this globally because of libmutter-private.so).
 install-exec-hook:
 	-rm $(DESTDIR)$(pkglibdir)/*.a
 	-rm $(DESTDIR)$(pkglibdir)/*.la
diff --git a/src/core/bell.c b/src/core/bell.c
index 1b6022c..e2298ff 100644
--- a/src/core/bell.c
+++ b/src/core/bell.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity visual bell */
+/* Mutter visual bell */
 
 /* 
  * Copyright (C) 2002 Sun Microsystems Inc.
@@ -25,7 +25,7 @@
 /**
  * \file bell.c Ring the bell or flash the screen
  *
- * Sometimes, X programs "ring the bell", whatever that means. Metacity lets
+ * Sometimes, X programs "ring the bell", whatever that means. Mutter lets
  * the user configure the bell to be audible or visible (aka visual), and
  * if it's visual it can be configured to be frame-flash or fullscreen-flash.
  * We never get told about audible bells; X handles them just fine by itself.
diff --git a/src/core/bell.h b/src/core/bell.h
index 462d1ed..930f3a0 100644
--- a/src/core/bell.h
+++ b/src/core/bell.h
@@ -3,7 +3,7 @@
 /**
  * \file bell.h Ring the bell or flash the screen
  *
- * Sometimes, X programs "ring the bell", whatever that means. Metacity lets
+ * Sometimes, X programs "ring the bell", whatever that means. Mutter lets
  * the user configure the bell to be audible or visible (aka visual), and
  * if it's visual it can be configured to be frame-flash or fullscreen-flash.
  * We never get told about audible bells; X handles them just fine by itself.
@@ -54,7 +54,7 @@ void meta_bell_notify (MetaDisplay *display, XkbAnyEvent *xkb_ev);
 
 /**
  * Turns the bell to audible or visual. This tells X what to do, but
- * not Metacity; you will need to set the "visual bell" pref for that.
+ * not Mutter; you will need to set the "visual bell" pref for that.
  *
  * If the configure script found we had no XKB, this is a no-op.
  *
diff --git a/src/core/constraints.c b/src/core/constraints.c
index d3fd7da..57a6a1d 100644
--- a/src/core/constraints.c
+++ b/src/core/constraints.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity size/position constraints */
+/* Mutter size/position constraints */
 
 /*
  * Copyright (C) 2002, 2003 Red Hat, Inc.
diff --git a/src/core/constraints.h b/src/core/constraints.h
index 6ccad00..fa3f039 100644
--- a/src/core/constraints.h
+++ b/src/core/constraints.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity size/position constraints */
+/* Mutter size/position constraints */
 
 /* 
  * Copyright (C) 2002 Red Hat, Inc.
diff --git a/src/core/core.c b/src/core/core.c
index 852c686..00f40fe 100644
--- a/src/core/core.c
+++ b/src/core/core.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity interface used by GTK+ UI to talk to core */
+/* Mutter interface used by GTK+ UI to talk to core */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/core/delete.c b/src/core/delete.c
index 6294423..635d8f2 100644
--- a/src/core/delete.c
+++ b/src/core/delete.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window deletion */
+/* Mutter window deletion */
 
 /* 
  * Copyright (C) 2001, 2002 Havoc Pennington
@@ -249,7 +249,7 @@ meta_window_present_delete_dialog (MetaWindow *window, guint32 timestamp)
       GSList *tmp;
 
       /* Activate transient for window that belongs to
-       * metacity-dialog
+       * mutter-dialog
        */
       
       windows = meta_display_list_windows (window->display);
@@ -260,7 +260,7 @@ meta_window_present_delete_dialog (MetaWindow *window, guint32 timestamp)
 
           if (w->xtransient_for == window->xwindow &&
               w->res_class &&
-              g_ascii_strcasecmp (w->res_class, "metacity-dialog") == 0)
+              g_ascii_strcasecmp (w->res_class, "mutter-dialog") == 0)
             {
               meta_window_activate (w, timestamp);
               break;
diff --git a/src/core/display-private.h b/src/core/display-private.h
index 2f75063..8aeb12f 100644
--- a/src/core/display-private.h
+++ b/src/core/display-private.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X display handler */
+/* Mutter X display handler */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/core/display.c b/src/core/display.c
index 5920047..309ff23 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X display handler */
+/* Mutter X display handler */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
@@ -403,7 +403,7 @@ meta_display_open (void)
 #endif
   
   /* FIXME copy the checks from GDK probably */
-  the_display->static_gravity_works = g_getenv ("METACITY_USE_STATIC_GRAVITY") != NULL;
+  the_display->static_gravity_works = g_getenv ("MUTTER_USE_STATIC_GRAVITY") != NULL;
   
   meta_bell_init (the_display);
 
@@ -681,11 +681,11 @@ meta_display_open (void)
     meta_prop_set_utf8_string_hint (the_display,
                                     the_display->leader_window,
                                     the_display->atom__NET_WM_NAME,
-                                    "Metacity");
+                                    "Mutter");
     
     meta_prop_set_utf8_string_hint (the_display,
                                     the_display->leader_window,
-                                    the_display->atom__METACITY_VERSION,
+                                    the_display->atom__MUTTER_VERSION,
                                     VERSION);
 
     data[0] = the_display->leader_window;
@@ -1434,7 +1434,7 @@ handle_net_restack_window (MetaDisplay* display,
 
 /**
  * This is the most important function in the whole program. It is the heart,
- * it is the nexus, it is the Grand Central Station of Metacity's world.
+ * it is the nexus, it is the Grand Central Station of Mutter's world.
  * When we create a MetaDisplay, we ask GDK to pass *all* events for *all*
  * windows to this function. So every time anything happens that we might
  * want to know about, this function gets called. You see why it gets a bit
@@ -1663,7 +1663,7 @@ event_callback (XEvent   *event,
           gboolean unmodified;
 
           grab_mask = display->window_grab_modifiers;
-          if (g_getenv ("METACITY_DEBUG_BUTTON_GRABS"))
+          if (g_getenv ("MUTTER_DEBUG_BUTTON_GRABS"))
             grab_mask |= ControlMask;
 
           /* Two possible sources of an unmodified event; one is a
@@ -2235,7 +2235,7 @@ event_callback (XEvent   *event,
              * sentinel_counter variable declaration in display.h
 	     */
 	    if (event->xproperty.atom ==
-		display->atom__METACITY_SENTINEL)
+		display->atom__MUTTER_SENTINEL)
 	      {
 		meta_display_decrement_focus_sentinel (display);
 	      }
@@ -2346,13 +2346,13 @@ event_callback (XEvent   *event,
                     }
                 }
               else if (event->xclient.message_type ==
-                       display->atom__METACITY_RESTART_MESSAGE)
+                       display->atom__MUTTER_RESTART_MESSAGE)
                 {
                   meta_verbose ("Received restart request\n");
                   meta_restart ();
                 }
               else if (event->xclient.message_type ==
-                       display->atom__METACITY_RELOAD_THEME_MESSAGE)
+                       display->atom__MUTTER_RELOAD_THEME_MESSAGE)
                 {
                   meta_verbose ("Received reload theme request\n");
                   meta_ui_set_current_theme (meta_prefs_get_theme (),
@@ -2360,14 +2360,14 @@ event_callback (XEvent   *event,
                   meta_display_retheme_all ();
                 }
               else if (event->xclient.message_type ==
-                       display->atom__METACITY_SET_KEYBINDINGS_MESSAGE)
+                       display->atom__MUTTER_SET_KEYBINDINGS_MESSAGE)
                 {
                   meta_verbose ("Received set keybindings request = %d\n",
                                 (int) event->xclient.data.l[0]);
                   meta_set_keybindings_disabled (!event->xclient.data.l[0]);
                 }
               else if (event->xclient.message_type ==
-                       display->atom__METACITY_TOGGLE_VERBOSE)
+                       display->atom__MUTTER_TOGGLE_VERBOSE)
                 {
                   meta_verbose ("Received toggle verbose message\n");
                   meta_set_verbose (!meta_is_verbose ());
@@ -3756,7 +3756,7 @@ meta_display_grab_window_buttons (MetaDisplay *display,
 
   if (display->window_grab_modifiers != 0)
     {
-      gboolean debug = g_getenv ("METACITY_DEBUG_BUTTON_GRABS") != NULL;
+      gboolean debug = g_getenv ("MUTTER_DEBUG_BUTTON_GRABS") != NULL;
       int i;
       for (i = 1; i < 4; i++)
         {
@@ -3798,7 +3798,7 @@ meta_display_ungrab_window_buttons  (MetaDisplay *display,
   if (display->window_grab_modifiers == 0)
     return;
   
-  debug = g_getenv ("METACITY_DEBUG_BUTTON_GRABS") != NULL;
+  debug = g_getenv ("MUTTER_DEBUG_BUTTON_GRABS") != NULL;
   i = 1;
   while (i < 4)
     {
@@ -3995,7 +3995,7 @@ static gboolean is_syncing = FALSE;
  *
  * \bug This is *only* called by meta_display_open, but by that time
  * we have already turned syncing on or off on startup, and we don't
- * have any way to do so while Metacity is running, so it's rather
+ * have any way to do so while Mutter is running, so it's rather
  * pointless.
  */
 gboolean
@@ -4971,7 +4971,7 @@ meta_display_increment_focus_sentinel (MetaDisplay *display)
   
   XChangeProperty (display->xdisplay,
                    ((MetaScreen*) display->screens->data)->xroot,
-                   display->atom__METACITY_SENTINEL,
+                   display->atom__MUTTER_SENTINEL,
                    XA_CARDINAL,
                    32, PropModeReplace, (guchar*) data, 1);
   
diff --git a/src/core/effects.c b/src/core/effects.c
index be36979..1965e6e 100644
--- a/src/core/effects.c
+++ b/src/core/effects.c
@@ -442,7 +442,7 @@ draw_box_animation (MetaScreen     *screen,
     
   g_return_if_fail (seconds_duration > 0.0);
 
-  if (g_getenv ("METACITY_DEBUG_EFFECTS"))
+  if (g_getenv ("MUTTER_DEBUG_EFFECTS"))
     seconds_duration *= 10; /* slow things down */
   
   /* Create the animation context */
diff --git a/src/core/errors.c b/src/core/errors.c
index 8de4608..385bb17 100644
--- a/src/core/errors.c
+++ b/src/core/errors.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X error handling */
+/* Mutter X error handling */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington, error trapping inspired by GDK
diff --git a/src/core/eventqueue.c b/src/core/eventqueue.c
index 4ce3e46..6143152 100644
--- a/src/core/eventqueue.c
+++ b/src/core/eventqueue.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X event source for main loop */
+/* Mutter X event source for main loop */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington (based on GDK code (C) Owen
diff --git a/src/core/eventqueue.h b/src/core/eventqueue.h
index cd115bd..0eb6799 100644
--- a/src/core/eventqueue.h
+++ b/src/core/eventqueue.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X event source for main loop */
+/* Mutter X event source for main loop */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/core/frame-private.h b/src/core/frame-private.h
index cba9b52..89c3d42 100644
--- a/src/core/frame-private.h
+++ b/src/core/frame-private.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X window decorations */
+/* Mutter X window decorations */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/core/frame.c b/src/core/frame.c
index 48696ff..373382a 100644
--- a/src/core/frame.c
+++ b/src/core/frame.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X window decorations */
+/* Mutter X window decorations */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/core/group-private.h b/src/core/group-private.h
index 25b05c7..ad4ce39 100644
--- a/src/core/group-private.h
+++ b/src/core/group-private.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window group private header */
+/* Mutter window group private header */
 
 /* 
  * Copyright (C) 2002 Red Hat Inc.
diff --git a/src/core/group.c b/src/core/group.c
index 0c4a820..8088f67 100644
--- a/src/core/group.c
+++ b/src/core/group.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window groups */
+/* Mutter window groups */
 
 /* 
  * Copyright (C) 2002 Red Hat Inc.
diff --git a/src/core/iconcache.c b/src/core/iconcache.c
index 7fa2184..b3ec718 100644
--- a/src/core/iconcache.c
+++ b/src/core/iconcache.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window icons */
+/* Mutter window icons */
 
 /*
  * Copyright (C) 2002 Havoc Pennington
diff --git a/src/core/iconcache.h b/src/core/iconcache.h
index ac3e40c..22a241b 100644
--- a/src/core/iconcache.h
+++ b/src/core/iconcache.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window icons */
+/* Mutter window icons */
 
 /* 
  * Copyright (C) 2002 Havoc Pennington
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 27fe298..fd7e9c1 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity Keybindings */ 
+/* Mutter Keybindings */
 /* 
  * Copyright (C) 2001 Havoc Pennington
  * Copyright (C) 2002 Red Hat Inc.
@@ -2396,7 +2396,7 @@ error_on_command (int         command_index,
                   command_index, command, message);  
 
   /*
-    metacity-dialog said:
+    mutter-dialog said:
         
     FIXME offer to change the value of the command's gconf key
   */
diff --git a/src/core/main.c b/src/core/main.c
index 52e3279..b815709 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity main() */
+/* Mutter main() */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
@@ -26,14 +26,14 @@
  * \file 
  * Program startup.
  * Functions which parse the command-line arguments, create the display,
- * kick everything off and then close down Metacity when it's time to go.
+ * kick everything off and then close down Mutter when it's time to go.
  */
 
 /**
  * \mainpage
- * Metacity - a boring window manager for the adult in you
+ * Mutter - a boring window manager for the adult in you
  *
- * Many window managers are like Marshmallow Froot Loops; Metacity
+ * Many window managers are like Marshmallow Froot Loops; Mutter
  * is like Cheerios.
  *
  * The best way to get a handle on how the whole system fits together
@@ -85,13 +85,13 @@
 static MetaExitCode meta_exit_code = META_EXIT_SUCCESS;
 
 /**
- * Handle on the main loop, so that we have an easy way of shutting Metacity
+ * Handle on the main loop, so that we have an easy way of shutting Mutter
  * down.
  */
 static GMainLoop *meta_main_loop = NULL;
 
 /**
- * If set, Metacity will spawn an identical copy of itself immediately
+ * If set, Mutter will spawn an identical copy of itself immediately
  * before quitting.
  */
 static gboolean meta_restart_after_quit = FALSE;
@@ -100,7 +100,7 @@ static void prefs_changed_callback (MetaPreference pref,
                                     gpointer       data);
 
 /**
- * Prints log messages. If Metacity was compiled with backtrace support,
+ * Prints log messages. If Mutter was compiled with backtrace support,
  * also prints a backtrace (see meta_print_backtrace()).
  *
  * \param log_domain  the domain the error occurred in (we ignore this)
@@ -120,13 +120,13 @@ log_handler (const gchar   *log_domain,
 }
 
 /**
- * Prints the version notice. This is shown when Metacity is called
+ * Prints the version notice. This is shown when Mutter is called
  * with the --version switch.
  */
 static void
 version (void)
 {
-  g_print (_("metacity %s\n"
+  g_print (_("mutter %s\n"
              "Copyright (C) 2001-2008 Havoc Pennington, Red Hat, Inc., and others\n"
              "This is free software; see the source for copying conditions.\n"
              "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"),
@@ -136,7 +136,7 @@ version (void)
 
 /**
  * Prints a list of which configure script options were used to
- * build this copy of Metacity. This is actually always called
+ * build this copy of Mutter. This is actually always called
  * on startup, but it's all no-op unless we're in verbose mode
  * (see meta_set_verbose).
  */
@@ -189,7 +189,7 @@ meta_print_compilation_info (void)
  * Prints the version number, the current timestamp (not the
  * build date), the locale, the character encoding, and a list
  * of configure script options that were used to build this
- * copy of Metacity. This is actually always called
+ * copy of Mutter. This is actually always called
  * on startup, but it's all no-op unless we're in verbose mode
  * (see meta_set_verbose).
  */
@@ -204,7 +204,7 @@ meta_print_self_identity (void)
   g_date_clear (&d, 1);
   g_date_set_time_t (&d, time (NULL));
   g_date_strftime (buf, sizeof (buf), "%x", &d);
-  meta_verbose ("Metacity version %s running on %s\n",
+  meta_verbose ("Mutter version %s running on %s\n",
     VERSION, buf);
   
   /* Locale and encoding. */
@@ -217,7 +217,7 @@ meta_print_self_identity (void)
 }
 
 /**
- * The set of possible options that can be set on Metacity's
+ * The set of possible options that can be set on Mutter's
  * command line. This type exists so that meta_parse_options() can
  * write to an instance of it.
  */
@@ -246,14 +246,14 @@ typedef struct
 
 /**
  * Parses argc and argv and returns the
- * arguments that Metacity understands in meta_args.
+ * arguments that Mutter understands in meta_args.
  *
  * The strange call signature has to be written like it is so
  * that g_option_context_parse() gets a chance to modify argc and
  * argv.
  *
- * \param argc  Pointer to the number of arguments Metacity was given
- * \param argv  Pointer to the array of arguments Metacity was given
+ * \param argc  Pointer to the number of arguments Mutter was given
+ * \param argv  Pointer to the array of arguments Mutter was given
  * \param meta_args  The result of parsing the arguments.
  **/
 static GOptionContext *
@@ -272,7 +272,7 @@ meta_parse_options (int *argc, char ***argv,
     {
       "replace", 0, 0, G_OPTION_ARG_NONE,
       &my_args.replace_wm,
-      N_("Replace the running window manager with Metacity"),
+      N_("Replace the running window manager with Mutter"),
       NULL
     },
     {
@@ -343,7 +343,7 @@ meta_parse_options (int *argc, char ***argv,
   GError *error = NULL;
 
   ctx = g_option_context_new (NULL);
-  g_option_context_add_main_entries (ctx, options, "metacity");
+  g_option_context_add_main_entries (ctx, options, "mutter");
   
 #ifdef WITH_CLUTTER
   /*
@@ -356,7 +356,7 @@ meta_parse_options (int *argc, char ***argv,
 
   if (!g_option_context_parse (ctx, argc, argv, &error))
     {
-      g_print ("metacity: %s\n", error->message);
+      g_print ("mutter: %s\n", error->message);
       exit(1);
     }
 
@@ -367,7 +367,7 @@ meta_parse_options (int *argc, char ***argv,
 
 
 #ifdef WITH_CLUTTER
-/* Metacity is responsible for pulling events off the X queue, so Clutter
+/* Mutter is responsible for pulling events off the X queue, so Clutter
  * doesn't need (and shouldn't) run its normal event source which polls
  * the X fd, but we do have to deal with dispatching events that accumulate
  * in the clutter queue. This happens, for example, when clutter generate
@@ -434,9 +434,9 @@ meta_clutter_init (GOptionContext *ctx, int *argc, char ***argv)
 #endif
 
 /**
- * Selects which display Metacity should use. It first tries to use
+ * Selects which display Mutter should use. It first tries to use
  * display_name as the display. If display_name is NULL then
- * try to use the environment variable METACITY_DISPLAY. If that
+ * try to use the environment variable MUTTER_DISPLAY. If that
  * also is NULL, use the default - :0.0
  */
 static void
@@ -445,9 +445,9 @@ meta_select_display (gchar *display_name)
   gchar *envVar = "";
   if (display_name)
     envVar = g_strconcat ("DISPLAY=", display_name, NULL);
-  else if (g_getenv ("METACITY_DISPLAY"))
+  else if (g_getenv ("MUTTER_DISPLAY"))
     envVar = g_strconcat ("DISPLAY=",
-      g_getenv ("METACITY_DISPLAY"), NULL);
+      g_getenv ("MUTTER_DISPLAY"), NULL);
   /* DO NOT FREE envVar, putenv() sucks */
   putenv (envVar);
 }
@@ -560,9 +560,9 @@ main (int argc, char **argv)
     g_printerr ("Failed to register SIGCHLD handler: %s\n",
 		g_strerror (errno));
 
-  if (g_getenv ("METACITY_VERBOSE"))
+  if (g_getenv ("MUTTER_VERBOSE"))
     meta_set_verbose (TRUE);
-  if (g_getenv ("METACITY_DEBUG"))
+  if (g_getenv ("MUTTER_DEBUG"))
     meta_set_debugging (TRUE);
 
   if (g_get_home_dir ())
@@ -574,7 +574,7 @@ main (int argc, char **argv)
 
   meta_print_self_identity ();
   
-  bindtextdomain (GETTEXT_PACKAGE, METACITY_LOCALEDIR);
+  bindtextdomain (GETTEXT_PACKAGE, MUTTER_LOCALEDIR);
   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
   textdomain (GETTEXT_PACKAGE);
 
@@ -606,7 +606,7 @@ main (int argc, char **argv)
 #endif /* WITH_CLUTTER */
 
 #ifdef HAVE_INTROSPECTION
-  g_irepository_prepend_search_path (METACITY_PKGLIBDIR);  
+  g_irepository_prepend_search_path (MUTTER_PKGLIBDIR);
   if (meta_args.introspect)
     {
       GError *error = NULL;
@@ -631,7 +631,7 @@ main (int argc, char **argv)
     }
 #endif
 
-  meta_set_syncing (meta_args.sync || (g_getenv ("METACITY_SYNC") != NULL));
+  meta_set_syncing (meta_args.sync || (g_getenv ("MUTTER_SYNC") != NULL));
 
   if (meta_args.print_version)
     version ();
@@ -674,7 +674,7 @@ main (int argc, char **argv)
 
 #endif
 
-  if (g_getenv ("METACITY_G_FATAL_WARNINGS") != NULL)
+  if (g_getenv ("MUTTER_G_FATAL_WARNINGS") != NULL)
     g_log_set_always_fatal (G_LOG_LEVEL_MASK);
   
   meta_ui_set_current_theme (meta_prefs_get_theme (), FALSE);
@@ -692,7 +692,7 @@ main (int argc, char **argv)
       GError *err = NULL;
       GDir   *themes_dir = NULL;
       
-      if (!(themes_dir = g_dir_open (METACITY_DATADIR"/themes", 0, &err)))
+      if (!(themes_dir = g_dir_open (MUTTER_DATADIR"/themes", 0, &err)))
         {
           meta_fatal (_("Failed to scan themes directory: %s\n"), err->message);
           g_error_free (err);
@@ -711,7 +711,7 @@ main (int argc, char **argv)
   
   if (!meta_ui_have_a_theme ())
     meta_fatal (_("Could not find a theme! Be sure %s exists and contains the usual themes.\n"),
-                METACITY_DATADIR"/themes");
+                MUTTER_DATADIR"/themes");
   
   /* Connect to SM as late as possible - but before managing display,
    * or we might try to manage a window before we have the session
@@ -782,7 +782,7 @@ main (int argc, char **argv)
 }
 
 /**
- * Stops Metacity. This tells the event loop to stop processing; it is rather
+ * Stops Mutter. This tells the event loop to stop processing; it is rather
  * dangerous to use this rather than meta_restart() because this will leave
  * the user with no window manager. We generally do this only if, for example,
  * the session manager asks us to; we assume the session manager knows what
@@ -800,10 +800,10 @@ meta_quit (MetaExitCode code)
 }
 
 /**
- * Restarts Metacity. In practice, this tells the event loop to stop
+ * Restarts Mutter. In practice, this tells the event loop to stop
  * processing, having first set the meta_restart_after_quit flag which
- * tells Metacity to spawn an identical copy of itself before quitting.
- * This happens on receipt of a _METACITY_RESTART_MESSAGE client event.
+ * tells Mutter to spawn an identical copy of itself before quitting.
+ * This happens on receipt of a _MUTTER_RESTART_MESSAGE client event.
  */
 void
 meta_restart (void)
diff --git a/src/core/metacity-Xatomtype.h b/src/core/metacity-Xatomtype.h
deleted file mode 100644
index d14d3ab..0000000
--- a/src/core/metacity-Xatomtype.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
-
-/**
- * \file metacity-Xatomtype.h  Types for communicating with X about properties
- *
- * This files defines crock C structures for calling XGetWindowProperty and
- * XChangeProperty.  All fields must be longs as the semantics of property
- * routines will handle conversion to and from actual 32 bit objects.  If your
- * compiler doesn't treat &structoflongs the same as &arrayoflongs[0], you
- * will have some work to do.
- */
-
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifndef _XATOMTYPE_H_
-#define _XATOMTYPE_H_
-
-#define BOOL long
-#define SIGNEDINT long
-#define UNSIGNEDINT unsigned long
-#define RESOURCEID unsigned long
-
-
-/* this structure may be extended, but do not change the order */
-typedef struct {
-    UNSIGNEDINT flags;
-    SIGNEDINT x, y, width, height;	/* need to cvt; only for pre-ICCCM */
-    SIGNEDINT minWidth, minHeight;	/* need to cvt */
-    SIGNEDINT maxWidth, maxHeight;	/* need to cvt */
-    SIGNEDINT widthInc, heightInc;	/* need to cvt */
-    SIGNEDINT minAspectX, minAspectY;	/* need to cvt */
-    SIGNEDINT maxAspectX, maxAspectY;	/* need to cvt */
-    SIGNEDINT baseWidth,baseHeight;	/* need to cvt; ICCCM version 1 */
-    SIGNEDINT winGravity;		/* need to cvt; ICCCM version 1 */
-} xPropSizeHints;
-#define OldNumPropSizeElements 15	/* pre-ICCCM */
-#define NumPropSizeElements 18		/* ICCCM version 1 */
-
-/* this structure may be extended, but do not change the order */
-/* RGB properties */
-typedef struct {
-	RESOURCEID colormap;
-	UNSIGNEDINT red_max;
-	UNSIGNEDINT red_mult;
-	UNSIGNEDINT green_max;
-	UNSIGNEDINT green_mult;
-	UNSIGNEDINT blue_max;
-	UNSIGNEDINT blue_mult;
-	UNSIGNEDINT base_pixel;
-	RESOURCEID visualid;		/* ICCCM version 1 */
-	RESOURCEID killid;		/* ICCCM version 1 */
-} xPropStandardColormap;
-#define OldNumPropStandardColormapElements 8  /* pre-ICCCM */
-#define NumPropStandardColormapElements 10  /* ICCCM version 1 */
-
-
-/* this structure may be extended, but do not change the order */
-typedef struct {
-    UNSIGNEDINT flags;
-    BOOL input;				/* need to convert */
-    SIGNEDINT initialState;		/* need to cvt */
-    RESOURCEID iconPixmap;
-    RESOURCEID iconWindow;
-    SIGNEDINT  iconX;			/* need to cvt */
-    SIGNEDINT  iconY;			/* need to cvt */
-    RESOURCEID iconMask;
-    UNSIGNEDINT windowGroup;
-  } xPropWMHints;
-#define NumPropWMHintsElements 9 /* number of elements in this structure */
-
-/* this structure defines the icon size hints information */
-typedef struct {
-    SIGNEDINT minWidth, minHeight;	/* need to cvt */
-    SIGNEDINT maxWidth, maxHeight;	/* need to cvt */
-    SIGNEDINT widthInc, heightInc;	/* need to cvt */
-  } xPropIconSize;
-#define NumPropIconSizeElements 6 /* number of elements in this structure */
-
-/* this structure defines the window manager state information */
-typedef struct {
-    SIGNEDINT state;			/* need to cvt */
-    RESOURCEID iconWindow;
-} xPropWMState;
-#define NumPropWMStateElements 2	/* number of elements in struct */
-
-#undef BOOL
-#undef SIGNEDINT
-#undef UNSIGNEDINT
-#undef RESOURCEID
-
-#endif /* _XATOMTYPE_H_ */
diff --git a/src/core/mutter-Xatomtype.h b/src/core/mutter-Xatomtype.h
new file mode 100644
index 0000000..2073bc5
--- /dev/null
+++ b/src/core/mutter-Xatomtype.h
@@ -0,0 +1,136 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+/**
+ * \file mutter-Xatomtype.h  Types for communicating with X about properties
+ *
+ * This files defines crock C structures for calling XGetWindowProperty and
+ * XChangeProperty.  All fields must be longs as the semantics of property
+ * routines will handle conversion to and from actual 32 bit objects.  If your
+ * compiler doesn't treat &structoflongs the same as &arrayoflongs[0], you
+ * will have some work to do.
+ */
+
+/***********************************************************
+
+Copyright 1987, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+
+#ifndef _XATOMTYPE_H_
+#define _XATOMTYPE_H_
+
+#define BOOL long
+#define SIGNEDINT long
+#define UNSIGNEDINT unsigned long
+#define RESOURCEID unsigned long
+
+
+/* this structure may be extended, but do not change the order */
+typedef struct {
+    UNSIGNEDINT flags;
+    SIGNEDINT x, y, width, height;	/* need to cvt; only for pre-ICCCM */
+    SIGNEDINT minWidth, minHeight;	/* need to cvt */
+    SIGNEDINT maxWidth, maxHeight;	/* need to cvt */
+    SIGNEDINT widthInc, heightInc;	/* need to cvt */
+    SIGNEDINT minAspectX, minAspectY;	/* need to cvt */
+    SIGNEDINT maxAspectX, maxAspectY;	/* need to cvt */
+    SIGNEDINT baseWidth,baseHeight;	/* need to cvt; ICCCM version 1 */
+    SIGNEDINT winGravity;		/* need to cvt; ICCCM version 1 */
+} xPropSizeHints;
+#define OldNumPropSizeElements 15	/* pre-ICCCM */
+#define NumPropSizeElements 18		/* ICCCM version 1 */
+
+/* this structure may be extended, but do not change the order */
+/* RGB properties */
+typedef struct {
+	RESOURCEID colormap;
+	UNSIGNEDINT red_max;
+	UNSIGNEDINT red_mult;
+	UNSIGNEDINT green_max;
+	UNSIGNEDINT green_mult;
+	UNSIGNEDINT blue_max;
+	UNSIGNEDINT blue_mult;
+	UNSIGNEDINT base_pixel;
+	RESOURCEID visualid;		/* ICCCM version 1 */
+	RESOURCEID killid;		/* ICCCM version 1 */
+} xPropStandardColormap;
+#define OldNumPropStandardColormapElements 8  /* pre-ICCCM */
+#define NumPropStandardColormapElements 10  /* ICCCM version 1 */
+
+
+/* this structure may be extended, but do not change the order */
+typedef struct {
+    UNSIGNEDINT flags;
+    BOOL input;				/* need to convert */
+    SIGNEDINT initialState;		/* need to cvt */
+    RESOURCEID iconPixmap;
+    RESOURCEID iconWindow;
+    SIGNEDINT  iconX;			/* need to cvt */
+    SIGNEDINT  iconY;			/* need to cvt */
+    RESOURCEID iconMask;
+    UNSIGNEDINT windowGroup;
+  } xPropWMHints;
+#define NumPropWMHintsElements 9 /* number of elements in this structure */
+
+/* this structure defines the icon size hints information */
+typedef struct {
+    SIGNEDINT minWidth, minHeight;	/* need to cvt */
+    SIGNEDINT maxWidth, maxHeight;	/* need to cvt */
+    SIGNEDINT widthInc, heightInc;	/* need to cvt */
+  } xPropIconSize;
+#define NumPropIconSizeElements 6 /* number of elements in this structure */
+
+/* this structure defines the window manager state information */
+typedef struct {
+    SIGNEDINT state;			/* need to cvt */
+    RESOURCEID iconWindow;
+} xPropWMState;
+#define NumPropWMStateElements 2	/* number of elements in struct */
+
+#undef BOOL
+#undef SIGNEDINT
+#undef UNSIGNEDINT
+#undef RESOURCEID
+
+#endif /* _XATOMTYPE_H_ */
diff --git a/src/core/place.c b/src/core/place.c
index a2e84a2..280d04b 100644
--- a/src/core/place.c
+++ b/src/core/place.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window placement */
+/* Mutter window placement */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/core/place.h b/src/core/place.h
index 10bf4a1..be825b1 100644
--- a/src/core/place.h
+++ b/src/core/place.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window placement */
+/* Mutter window placement */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/core/prefs.c b/src/core/prefs.c
index bd8a25d..84ba94c 100644
--- a/src/core/prefs.c
+++ b/src/core/prefs.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity preferences */
+/* Mutter preferences */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington, Copyright (C) 2002 Red Hat Inc.
@@ -57,7 +57,7 @@
 #define KEY_TERMINAL_DIR "/desktop/gnome/applications/terminal"
 #define KEY_TERMINAL_COMMAND KEY_TERMINAL_DIR "/exec"
 
-#define KEY_OVERLAY_KEY "/apps/metacity/general/overlay_key"
+#define KEY_OVERLAY_KEY "/apps/mutter/general/overlay_key"
 #define KEY_SCREEN_BINDINGS_PREFIX "/apps/metacity/global_keybindings"
 #define KEY_WINDOW_BINDINGS_PREFIX "/apps/metacity/window_keybindings"
 #define KEY_LIST_BINDINGS_SUFFIX "_list"
@@ -65,11 +65,11 @@
 #define KEY_WORKSPACE_NAME_PREFIX "/apps/metacity/workspace_names/name_"
 
 #ifdef WITH_CLUTTER
-#define KEY_CLUTTER_DISABLED "/apps/metacity/general/clutter_disabled"
-#define KEY_CLUTTER_PLUGINS  "/apps/metacity/general/clutter_plugins"
+#define KEY_CLUTTER_DISABLED "/apps/mutter/general/clutter_disabled"
+#define KEY_CLUTTER_PLUGINS  "/apps/mutter/general/clutter_plugins"
 #endif
 
-#define KEY_LIVE_HIDDEN_WINDOWS "/apps/metacity/general/live_hidden_windows"
+#define KEY_LIVE_HIDDEN_WINDOWS "/apps/mutter/general/live_hidden_windows"
 
 #define KEY_NO_TAB_POPUP "/apps/metacity/general/no_tab_popup"
 
@@ -328,7 +328,7 @@ typedef struct
 
 /* FIXMEs: */
 /* @@@ Don't use NULL lines at the end; glib can tell you how big it is */
-/* @@@ /apps/metacity/general should be assumed if first char is not / */
+/* @@@ /apps/mutter/general should be assumed if first char is not / */
 /* @@@ Will it ever be possible to merge init and update? If not, why not? */
 
 static MetaEnumPreference preferences_enum[] =
@@ -429,13 +429,13 @@ static MetaBoolPreference preferences_bool[] =
       FALSE,
     },
 #ifdef WITH_CLUTTER
-    { "/apps/metacity/general/clutter_disabled",
+    { "/apps/mutter/general/clutter_disabled",
       META_PREF_CLUTTER_DISABLED,
       &clutter_disabled,
       FALSE,
     },
 #endif
-    { "/apps/metacity/general/live_hidden_windows",
+    { "/apps/mutter/general/live_hidden_windows",
       META_PREF_LIVE_HIDDEN_WINDOWS,
       &live_hidden_windows,
       FALSE,
@@ -1028,6 +1028,7 @@ meta_prefs_remove_listener (MetaPrefsChangedFunc func,
 /* @@@ again, use glib's ability to tell you the size of the array */
 static gchar *gconf_dirs_we_are_interested_in[] = {
   "/apps/metacity",
+  "/apps/mutter",
   KEY_TERMINAL_DIR,
   KEY_GNOME_ACCESSIBILITY,
   "/desktop/gnome/peripherals/mouse",
@@ -1243,7 +1244,7 @@ change_notify (GConfClient    *client,
 #endif
   else
     {
-      meta_topic (META_DEBUG_PREFS, "Key %s doesn't mean anything to Metacity\n",
+      meta_topic (META_DEBUG_PREFS, "Key %s doesn't mean anything to Mutter\n",
                   key);
     }
   
diff --git a/src/core/schema-bindings.c b/src/core/schema-bindings.c
deleted file mode 100644
index c19d0ca..0000000
--- a/src/core/schema-bindings.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
-
-/*
- * Copyright (C) 2008 Thomas Thurman
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-/** \file  Schema bindings generator.
- *
- * This program simply takes the items given in the binding list in
- * all-keybindings.h and turns them into a portion of
- * the GConf .schemas file.
- *
- * FIXME: also need to make 50-metacity-desktop-key.xml
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <glib.h>
-#include "config.h"
-
-#define _(x) x
-
-static void single_stanza (gboolean is_window, const char *name,
-               const char *default_value,
-               gboolean can_reverse,
-               const char *description);
-
-char *about_keybindings, *about_reversible_keybindings;
-
-char *source_filename, *target_filename;
-FILE *source_file, *target_file;
-
-static void
-single_stanza (gboolean is_window, const char *name,
-               const char *default_value,
-               gboolean can_reverse,
-               const char *description)
-{
-  char *keybinding_type = is_window? "window": "global";
-  char *escaped_default_value, *escaped_description;
-
-  if (description==NULL)
-    return; /* it must be undocumented, so it can't go in this table */
-
-  escaped_description = g_markup_escape_text (description, -1);
-  escaped_default_value = default_value==NULL? "disabled":
-        g_markup_escape_text (default_value, -1);
-  
-  fprintf (target_file, "    <schema>\n");
-  fprintf (target_file, "      <key>/schemas/apps/metacity/%s_keybindings/%s</key>\n",
-            keybinding_type, name);
-  fprintf (target_file, "      <applyto>/apps/metacity/%s_keybindings/%s</applyto>\n",
-            keybinding_type, name);
-  fprintf (target_file, "      <owner>metacity</owner>\n");
-  fprintf (target_file, "      <type>string</type>\n");
-  fprintf (target_file, "      <default>%s</default>\n", escaped_default_value);
-  
-  fprintf (target_file, "      <locale name=\"C\">\n");
-  fprintf (target_file, "        <short>%s</short>\n", description);
-  fprintf (target_file, "        <long>%s</long>\n",
-                   can_reverse? about_reversible_keybindings:
-                   about_keybindings);
-  fprintf (target_file, "      </locale>\n");
-  fprintf (target_file, "    </schema>\n\n");
-
-  g_free (escaped_description);
-
-  if (default_value!=NULL)
-    g_free (escaped_default_value);
-}
-
-static void produce_bindings ();
-
-static void
-produce_bindings ()
-{
-  /* 10240 is ridiculous overkill; we're writing the input file and
-   * the lines are always 80 chars or less.
-   */
-  char buffer[10240];
-
-  source_file = fopen(source_filename, "r");
-
-  if (!source_file)
-    {
-      g_error ("Cannot compile without %s: %s\n",
-        source_filename, strerror (errno));
-    }
-
-  target_file = fopen(target_filename, "w");
-
-  if (!target_file)
-    {
-      g_error ("Cannot create %s: %s\n",
-        target_filename, strerror (errno));
-    }
-
-  while (fgets (buffer, sizeof (buffer), source_file))
-    {
-      if (strstr (buffer, "<!-- GENERATED -->"))
-         break;
-         
-      fprintf (target_file, "%s", buffer);
-    }
-
-  if (!feof (source_file))
-    {
-#define keybind(name, handler, param, flags, stroke, description) \
-  single_stanza ( \
-               flags & BINDING_PER_WINDOW, \
-               #name, \
-               stroke, \
-               flags & BINDING_REVERSES, \
-               description);
-#include "all-keybindings.h"
-#undef keybind
-    }
-
-  while (fgets (buffer, sizeof (buffer), source_file))
-      fprintf (target_file, "%s", buffer);
-
-  if (fclose (source_file)!=0)
-    {
-      g_error ("Cannot close %s: %s\n",
-        source_filename, strerror (errno));
-    }
-
-  if (fclose (target_file)!=0)
-    {
-      g_error ("Cannot close %s: %s\n",
-        target_filename, strerror (errno));
-    }
-}
-
-int
-main (int argc, char **argv)
-{
-  if (argc!=3)
-    {
-      g_error ("Syntax: %s <source.in.in> <target.in>\n", argv[0]);
-    }
-  
-  source_filename = argv[1];
-  target_filename = argv[2];
-
-  /* Translators: Please don't translate "Control", "Shift", etc, since these
-   * are hardcoded (in gtk/gtkaccelgroup.c; it's not metacity's fault).
-   * "disabled" must also stay as it is.
-   */
-  about_keybindings = g_markup_escape_text(_( \
-        "The format looks like \"<Control>a\" or <Shift><Alt>F1\".\n\n"\
-        "The parser is fairly liberal and allows "\
-  	"lower or upper case, and also abbreviations such as \"<Ctl>\" and " \
-	"\"<Ctrl>\". If you set the option to the special string " \
-	"\"disabled\", then there will be no keybinding for this action."),
-        -1);
-
-  about_reversible_keybindings = g_markup_escape_text(_( \
-        "The format looks like \"<Control>a\" or <Shift><Alt>F1\".\n\n"\
-        "The parser is fairly liberal and allows "\
-  	"lower or upper case, and also abbreviations such as \"<Ctl>\" and " \
-	"\"<Ctrl>\". If you set the option to the special string " \
-	"\"disabled\", then there will be no keybinding for this action.\n\n"\
-	"This keybinding may be reversed by holding down the \"shift\" key; "
-	"therefore, \"shift\" cannot be one of the keys it uses."),
-	-1);
-
-  produce_bindings ();
-
-  g_free (about_keybindings);
-  g_free (about_reversible_keybindings);
-  
-  return 0;
-}
-
-/* eof schema-bindings.c */
-
diff --git a/src/core/screen-private.h b/src/core/screen-private.h
index 043a51d..81770da 100644
--- a/src/core/screen-private.h
+++ b/src/core/screen-private.h
@@ -1,7 +1,7 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
 /**
- * \file screen-private.h  Screens which Metacity manages
+ * \file screen-private.h  Screens which Mutter manages
  *
  * Managing X screens.
  * This file contains methods on this class which are available to
diff --git a/src/core/screen.c b/src/core/screen.c
index 777bd73..832293a 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X screen handler */
+/* Mutter X screen handler */
 
 /* 
  * Copyright (C) 2001, 2002 Havoc Pennington
@@ -328,7 +328,7 @@ reload_xinerama_infos (MetaScreen *screen)
     }
 #else
   meta_topic (META_DEBUG_XINERAMA,
-              "Metacity compiled without XFree86 Xinerama support\n");
+              "Mutter compiled without XFree86 Xinerama support\n");
 #endif /* HAVE_XFREE_XINERAMA */
 
 #ifdef HAVE_SOLARIS_XINERAMA
@@ -387,7 +387,7 @@ reload_xinerama_infos (MetaScreen *screen)
     }
 #else
   meta_topic (META_DEBUG_XINERAMA,
-              "Metacity compiled without Solaris Xinerama support\n");
+              "Mutter compiled without Solaris Xinerama support\n");
 #endif /* HAVE_SOLARIS_XINERAMA */
 
   
@@ -396,7 +396,7 @@ reload_xinerama_infos (MetaScreen *screen)
    */
   if (screen->n_xinerama_infos == 0)
     {
-      if (g_getenv ("METACITY_DEBUG_XINERAMA"))
+      if (g_getenv ("MUTTER_DEBUG_XINERAMA"))
         {
           meta_topic (META_DEBUG_XINERAMA,
                       "Pretending a single monitor has two Xinerama screens\n");
@@ -1204,7 +1204,7 @@ set_desktop_viewport_hint (MetaScreen *screen)
     return;
 
   /*
-   * Metacity does not implement viewports, so this is a fixed 0,0
+   * Mutter does not implement viewports, so this is a fixed 0,0
    */
   data[0] = 0;
   data[1] = 0;
diff --git a/src/core/session.c b/src/core/session.c
index da2c59a..8eb110c 100644
--- a/src/core/session.c
+++ b/src/core/session.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity Session Management */
+/* Mutter Session Management */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington (some code in here from
@@ -309,8 +309,8 @@ meta_session_init (const char *previous_client_id,
     prop1.type = SmARRAY8;
     prop1.num_vals = 1;
     prop1.vals = &prop1val;
-    prop1val.value = "metacity";
-    prop1val.length = strlen ("metacity");
+    prop1val.value = "mutter";
+    prop1val.length = strlen ("mutter");
 
     /* twm sets getuid() for this, but the SM spec plainly
      * says pw_name, twm is on crack
@@ -596,7 +596,7 @@ set_clone_restart_commands (void)
   g_return_if_fail (client_id);
   
   i = 0;
-  restartv[i] = "metacity";
+  restartv[i] = "mutter";
   ++i;
   restartv[i] = "--sm-client-id";
   ++i;
@@ -617,7 +617,7 @@ set_clone_restart_commands (void)
   /* Clone (no client ID) */
   
   i = 0;
-  clonev[i] = "metacity";
+  clonev[i] = "mutter";
   ++i;
   clonev[i] = NULL;
 
@@ -818,7 +818,7 @@ decode_text_from_utf8 (const char *text)
 static void
 save_state (void)
 {
-  char *metacity_dir;
+  char *mutter_dir;
   char *session_dir;
   FILE *outfile;
   GSList *windows;
@@ -837,19 +837,19 @@ save_state (void)
    * we probably already have full_save_path figured out and therefore
    * can just use the directory name from that.
    */
-  metacity_dir = g_strconcat (g_get_user_config_dir (),
-                              G_DIR_SEPARATOR_S "metacity",
+  mutter_dir = g_strconcat (g_get_user_config_dir (),
+                              G_DIR_SEPARATOR_S "mutter",
                               NULL);
   
-  session_dir = g_strconcat (metacity_dir,
+  session_dir = g_strconcat (mutter_dir,
                              G_DIR_SEPARATOR_S "sessions",
                              NULL);
 
-  if (mkdir (metacity_dir, 0700) < 0 &&
+  if (mkdir (mutter_dir, 0700) < 0 &&
       errno != EEXIST)
     {
       meta_warning (_("Could not create directory '%s': %s\n"),
-                    metacity_dir, g_strerror (errno));
+                    mutter_dir, g_strerror (errno));
     }
 
   if (mkdir (session_dir, 0700) < 0 &&
@@ -871,14 +871,14 @@ save_state (void)
     }
 
   /* The file format is:
-   * <metacity_session id="foo">
+   * <mutter_session id="foo">
    *   <window id="bar" class="XTerm" name="xterm" title="/foo/bar" role="blah" type="normal" stacking="5">
    *     <workspace index="2"/>
    *     <workspace index="4"/>
    *     <sticky/> <minimized/> <maximized/>
    *     <geometry x="100" y="100" width="200" height="200" gravity="northwest"/>
    *   </window>
-   * </metacity_session>
+   * </mutter_session>
    *
    * Note that attributes on <window> are the match info we use to
    * see if the saved state applies to a restored window, and
@@ -886,7 +886,7 @@ save_state (void)
    * 
    */
   
-  fprintf (outfile, "<metacity_session id=\"%s\">\n",
+  fprintf (outfile, "<mutter_session id=\"%s\">\n",
            client_id);
 
   windows = meta_display_list_windows (meta_get_display ());
@@ -998,7 +998,7 @@ save_state (void)
       
   g_slist_free (windows);
 
-  fputs ("</metacity_session>\n", outfile);
+  fputs ("</mutter_session>\n", outfile);
   
  out:
   if (outfile)
@@ -1016,7 +1016,7 @@ save_state (void)
         }
     }
   
-  g_free (metacity_dir);
+  g_free (mutter_dir);
   g_free (session_dir);
 }
 
@@ -1055,7 +1055,7 @@ static void text_handler          (GMarkupParseContext  *context,
                                    gpointer              user_data,
                                    GError              **error);
 
-static GMarkupParser metacity_session_parser = {
+static GMarkupParser mutter_session_parser = {
   start_element_handler,
   end_element_handler,
   text_handler,
@@ -1076,7 +1076,7 @@ load_state (const char *previous_save_file)
   char *session_file;
 
   session_file = g_strconcat (g_get_user_config_dir (),
-                              G_DIR_SEPARATOR_S "metacity"
+                              G_DIR_SEPARATOR_S "mutter"
                               G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S,
                               previous_save_file,
                               NULL);
@@ -1089,9 +1089,9 @@ load_state (const char *previous_save_file)
     {
       char *canonical_session_file = session_file;
 
-      /* Maybe they were doing it the old way, with ~/.metacity */
+      /* Maybe they were doing it the old way, with ~/.mutter */
       session_file = g_strconcat (g_get_home_dir (),
-                                  G_DIR_SEPARATOR_S ".metacity"
+                                  G_DIR_SEPARATOR_S ".mutter"
                                   G_DIR_SEPARATOR_S "sessions"
                                   G_DIR_SEPARATOR_S,
                                   previous_save_file,
@@ -1122,7 +1122,7 @@ load_state (const char *previous_save_file)
   parse_data.info = NULL;
   parse_data.previous_id = NULL;
   
-  context = g_markup_parse_context_new (&metacity_session_parser,
+  context = g_markup_parse_context_new (&mutter_session_parser,
                                         0, &parse_data, NULL);
 
   error = NULL;
@@ -1173,7 +1173,7 @@ start_element_handler  (GMarkupParseContext *context,
 
   pd = user_data;
 
-  if (strcmp (element_name, "metacity_session") == 0)
+  if (strcmp (element_name, "mutter_session") == 0)
     {
       /* Get previous ID */
       int i;      
@@ -1192,7 +1192,7 @@ start_element_handler  (GMarkupParseContext *context,
               g_set_error (error,
                            G_MARKUP_ERROR,
                        G_MARKUP_ERROR_PARSE,
-                           _("<metacity_session> attribute seen but we already have the session ID"));
+                           _("<mutter_session> attribute seen but we already have the session ID"));
               return;
             }
           
@@ -1206,7 +1206,7 @@ start_element_handler  (GMarkupParseContext *context,
                            G_MARKUP_ERROR,
                            G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
                            _("Unknown attribute %s on <%s> element"),
-                           name, "metacity_session");
+                           name, "mutter_session");
               return;
             }
           
@@ -1530,7 +1530,7 @@ get_possible_matches (MetaWindow *window)
   
   retval = NULL;
 
-  ignore_client_id = g_getenv ("METACITY_DEBUG_SM") != NULL;
+  ignore_client_id = g_getenv ("MUTTER_DEBUG_SM") != NULL;
   
   tmp = window_info_list;
   while (tmp != NULL)
@@ -1715,7 +1715,7 @@ regenerate_save_file (void)
 
   if (client_id)
     full_save_path = g_strconcat (g_get_user_config_dir (),
-                                  G_DIR_SEPARATOR_S "metacity"
+                                  G_DIR_SEPARATOR_S "mutter"
                                   G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S,
                                   client_id,
                                   ".ms",
diff --git a/src/core/testasyncgetprop.c b/src/core/testasyncgetprop.c
index 0318268..782d0b1 100644
--- a/src/core/testasyncgetprop.c
+++ b/src/core/testasyncgetprop.c
@@ -276,7 +276,7 @@ main (int argc, char **argv)
       return 1;
     }
 
-  if (getenv ("METACITY_SYNC") != NULL)
+  if (getenv ("MUTTER_SYNC") != NULL)
     XSynchronize (xdisplay, True);
 
   XSetErrorHandler (x_error_handler);
diff --git a/src/core/testboxes.c b/src/core/testboxes.c
index 91ac2f8..93f430c 100644
--- a/src/core/testboxes.c
+++ b/src/core/testboxes.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity box operation testing program */
+/* Mutter box operation testing program */
 
 /* 
  * Copyright (C) 2005 Elijah Newren
diff --git a/src/core/util.c b/src/core/util.c
index 299cd79..aca85f3 100644
--- a/src/core/util.c
+++ b/src/core/util.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity utilities */
+/* Mutter utilities */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
@@ -81,14 +81,14 @@ static FILE* logfile = NULL;
 static void
 ensure_logfile (void)
 {
-  if (logfile == NULL && g_getenv ("METACITY_USE_LOGFILE"))
+  if (logfile == NULL && g_getenv ("MUTTER_USE_LOGFILE"))
     {
       char *filename = NULL;
       char *tmpl;
       int fd;
       GError *err;
       
-      tmpl = g_strdup_printf ("metacity-%d-debug-log-XXXXXX",
+      tmpl = g_strdup_printf ("mutter-%d-debug-log-XXXXXX",
                               (int) getpid ());
 
       err = NULL;
@@ -135,7 +135,7 @@ meta_set_verbose (gboolean setting)
 {
 #ifndef WITH_VERBOSE_MODE
   if (setting)
-    meta_fatal (_("Metacity was compiled without support for verbose mode\n"));
+    meta_fatal (_("Mutter was compiled without support for verbose mode\n"));
 #else 
   if (setting)
     ensure_logfile ();
@@ -567,7 +567,7 @@ meta_show_dialog (const char *type,
   argvl[i++] = screen_number_text;
   argvl[i++] = "--title";
   /* Translators: This is the title used on dialog boxes */
-  argvl[i++] = _("Metacity");
+  argvl[i++] = _("Mutter");
   argvl[i++] = "--text";
   argvl[i++] = message;
   
diff --git a/src/core/window-private.h b/src/core/window-private.h
index 3f3980c..08f60c5 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -1,7 +1,7 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
 /**
- * \file window-private.h  Windows which Metacity manages
+ * \file window-private.h  Windows which Mutter manages
  *
  * Managing X windows.
  * This file contains methods on this class which are available to
diff --git a/src/core/window.c b/src/core/window.c
index 74f8e95..2bdc792 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X managed windows */
+/* Mutter X managed windows */
 
 /*
  * Copyright (C) 2001 Havoc Pennington, Anders Carlsson
@@ -1419,7 +1419,7 @@ set_wm_state (MetaWindow *window,
   meta_verbose ("Setting wm state %s on %s\n",
                 wm_state_to_string (state), window->desc);
 
-  /* Metacity doesn't use icon windows, so data[1] should be None
+  /* Mutter doesn't use icon windows, so data[1] should be None
    * according to the ICCCM 2.0 Section 4.1.3.1.
    */
   data[0] = state;
@@ -3332,7 +3332,7 @@ window_activate (MetaWindow     *window,
 }
 
 /* This function exists since most of the functionality in window_activate
- * is useful for Metacity, but Metacity shouldn't need to specify a client
+ * is useful for Mutter, but Mutter shouldn't need to specify a client
  * type for itself.  ;-)
  */
 void
@@ -3863,10 +3863,10 @@ meta_window_move_resize_internal (MetaWindow          *window,
     need_configure_notify = TRUE;
 
   /* MapRequest events with a PPosition or UPosition hint with a frame
-   * are moved by metacity without resizing; send a configure notify
+   * are moved by mutter without resizing; send a configure notify
    * in such cases.  See #322840.  (Note that window->constructing is
    * only true iff this call is due to a MapRequest, and when
-   * PPosition/UPosition hints aren't set, metacity seems to send a
+   * PPosition/UPosition hints aren't set, mutter seems to send a
    * ConfigureNotify anyway due to the above code.)
    */
   if (window->constructing && window->frame &&
@@ -5707,7 +5707,7 @@ meta_window_notify_focus (MetaWindow *window,
    *
    * My suggestion is to change it so that we clearly separate
    * actual keyboard focus tracking using the xterm algorithm,
-   * and metacity's "pretend" focus window, and go through all
+   * and mutter's "pretend" focus window, and go through all
    * the code and decide which one should be used in each place;
    * a hard bit is deciding on a policy for that.
    *
@@ -6577,8 +6577,8 @@ set_allowed_actions_hint (MetaWindow *window)
       data[i] = window->display->atom__NET_WM_ACTION_SHADE;
       ++i;
     }
-  /* sticky according to EWMH is different from metacity's sticky;
-   * metacity doesn't support EWMH sticky
+  /* sticky according to EWMH is different from mutter's sticky;
+   * mutter doesn't support EWMH sticky
    */
   if (window->has_maximize_func)
     {
diff --git a/src/core/workspace.c b/src/core/workspace.c
index ca8acf0..8e7c19a 100644
--- a/src/core/workspace.c
+++ b/src/core/workspace.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity Workspaces */
+/* Mutter Workspaces */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/core/xprops.c b/src/core/xprops.c
index a39c7b4..1eeedb5 100644
--- a/src/core/xprops.c
+++ b/src/core/xprops.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X property convenience routines */
+/* Mutter X property convenience routines */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
@@ -86,7 +86,7 @@ from The Open Group.
 #include "util.h"
 #include "async-getprop.h"
 #include "ui.h"
-#include "metacity-Xatomtype.h"
+#include "mutter-Xatomtype.h"
 #include <X11/Xatom.h>
 #include <string.h>
 #include "window-private.h"
diff --git a/src/include/all-keybindings.h b/src/include/all-keybindings.h
index a3e824c..408b94a 100644
--- a/src/include/all-keybindings.h
+++ b/src/include/all-keybindings.h
@@ -200,7 +200,7 @@ keybind (toggle_recording, handle_toggle_recording, 0, 0, "<Control><Shift><Alt>
 
 /* Yes, the param is offset by one.  Historical reasons.  (Maybe worth fixing
  * at some point.)  The description is NULL here because the stanza is
- * irregularly shaped in metacity.schemas.in.  This will probably be fixed
+ * irregularly shaped in mutter.schemas.in.  This will probably be fixed
  * as well.
  */
 keybind (run_command_1,  handle_run_command,  0, 0, NULL, NULL)
diff --git a/src/include/atomnames.h b/src/include/atomnames.h
index 00d5e22..38ece97 100644
--- a/src/include/atomnames.h
+++ b/src/include/atomnames.h
@@ -26,7 +26,7 @@
 /**
  * \file atomnames.h  A list of atom names.
  *
- * This is a list of the names of all the X atoms that Metacity uses.
+ * This is a list of the names of all the X atoms that Mutter uses.
  * Each is wrapped in a macro "item()" which is undefined here; the
  * idea is that when you need to make a big list of all the X atoms,
  * you can define item(), include this file, and then undefine it
@@ -54,15 +54,15 @@ item(WM_WINDOW_ROLE)
 item(UTF8_STRING)
 item(WM_ICON_SIZE)
 item(_KWM_WIN_ICON)
-item(_METACITY_RESTART_MESSAGE)
-item(_METACITY_RELOAD_THEME_MESSAGE)
-item(_METACITY_SET_KEYBINDINGS_MESSAGE)
-item(_METACITY_TOGGLE_VERBOSE)
+item(_MUTTER_RESTART_MESSAGE)
+item(_MUTTER_RELOAD_THEME_MESSAGE)
+item(_MUTTER_SET_KEYBINDINGS_MESSAGE)
+item(_MUTTER_TOGGLE_VERBOSE)
 item(_GNOME_PANEL_ACTION)
 item(_GNOME_PANEL_ACTION_MAIN_MENU)
 item(_GNOME_PANEL_ACTION_RUN_DIALOG)
-item(_METACITY_SENTINEL)
-item(_METACITY_VERSION)
+item(_MUTTER_SENTINEL)
+item(_MUTTER_VERSION)
 item(WM_CLIENT_MACHINE)
 item(MANAGER)
 item(TARGETS)
diff --git a/src/include/common.h b/src/include/common.h
index 77fc9c5..647bc8e 100644
--- a/src/include/common.h
+++ b/src/include/common.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity common types shared by core.h and ui.h */
+/* Mutter common types shared by core.h and ui.h */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/core.h b/src/include/core.h
index 0c518e7..54abbfc 100644
--- a/src/include/core.h
+++ b/src/include/core.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity interface used by GTK+ UI to talk to core */
+/* Mutter interface used by GTK+ UI to talk to core */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/display.h b/src/include/display.h
index 472c66b..a4eaa5a 100644
--- a/src/include/display.h
+++ b/src/include/display.h
@@ -113,7 +113,7 @@ void     meta_display_end_grab_op   (MetaDisplay *display,
                                      guint32      timestamp);
 /* meta_display_set_input_focus_window is like XSetInputFocus, except
  * that (a) it can't detect timestamps later than the current time,
- * since Metacity isn't part of the XServer, and thus gives erroneous
+ * since Mutter isn't part of the XServer, and thus gives erroneous
  * behavior in this circumstance (so don't do it), (b) it uses
  * display->last_focus_time since we don't have access to the true
  * Xserver one, (c) it makes use of display->user_time since checking
diff --git a/src/include/errors.h b/src/include/errors.h
index 8278948..035a60a 100644
--- a/src/include/errors.h
+++ b/src/include/errors.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X error handling */
+/* Mutter X error handling */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/group.h b/src/include/group.h
index 45f03b0..9e20951 100644
--- a/src/include/group.h
+++ b/src/include/group.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window groups */
+/* Mutter window groups */
 
 /* 
  * Copyright (C) 2002 Red Hat Inc.
diff --git a/src/include/main.h b/src/include/main.h
index 62106e1..043f9d7 100644
--- a/src/include/main.h
+++ b/src/include/main.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity main */
+/* Mutter main */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/mutter-plugin.h b/src/include/mutter-plugin.h
index 5f84adb..12f5bdc 100644
--- a/src/include/mutter-plugin.h
+++ b/src/include/mutter-plugin.h
@@ -108,7 +108,7 @@ struct _MutterPluginClass
                             MutterWindow     *actor,
                             gulong            events);
 
-  /* General XEvent filter. This is fired *before* metacity itself handles
+  /* General XEvent filter. This is fired *before* mutter itself handles
    * an event. Return TRUE to block any further processing.
    */
   gboolean (*xevent_filter) (MutterPlugin       *plugin,
@@ -137,7 +137,7 @@ const MutterPluginInfo * mutter_plugin_get_info (MutterPlugin *plugin);
 struct _MutterPluginVersion
 {
   /*
-   * Version information; the first three numbers match the Metacity version
+   * Version information; the first three numbers match the Mutter version
    * with which the plugin was compiled (see clutter-plugins/simple.c for sample
    * code).
    */
@@ -159,10 +159,10 @@ struct _MutterPluginVersion
 #define MUTTER_PLUGIN_DECLARE(ObjectName, object_name)                  \
   G_MODULE_EXPORT MutterPluginVersion mutter_plugin_version =           \
     {                                                                   \
-      METACITY_MAJOR_VERSION,                                           \
-      METACITY_MINOR_VERSION,                                           \
-      METACITY_MICRO_VERSION,                                           \
-      METACITY_CLUTTER_PLUGIN_API_VERSION                               \
+      MUTTER_MAJOR_VERSION,                                           \
+      MUTTER_MINOR_VERSION,                                           \
+      MUTTER_MICRO_VERSION,                                           \
+      MUTTER_PLUGIN_API_VERSION                               \
     };                                                                  \
                                                                         \
   static GType g_define_type_id = 0;                                    \
diff --git a/src/include/prefs.h b/src/include/prefs.h
index 2731700..284e54c 100644
--- a/src/include/prefs.h
+++ b/src/include/prefs.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity preferences */
+/* Mutter preferences */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/resizepopup.h b/src/include/resizepopup.h
index a861ff3..2446786 100644
--- a/src/include/resizepopup.h
+++ b/src/include/resizepopup.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity resizing-terminal-window feedback */
+/* Mutter resizing-terminal-window feedback */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/tabpopup.h b/src/include/tabpopup.h
index c210a19..1c90fc7 100644
--- a/src/include/tabpopup.h
+++ b/src/include/tabpopup.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity tab popup window */
+/* Mutter tab popup window */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/ui.h b/src/include/ui.h
index a4d7fea..df3c106 100644
--- a/src/include/ui.h
+++ b/src/include/ui.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity interface for talking to GTK+ UI module */
+/* Mutter interface for talking to GTK+ UI module */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/util.h b/src/include/util.h
index 24b5a69..a2ac232 100644
--- a/src/include/util.h
+++ b/src/include/util.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity utilities */
+/* Mutter utilities */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/include/window.h b/src/include/window.h
index 83d95b4..12f91ee 100644
--- a/src/include/window.h
+++ b/src/include/window.h
@@ -59,7 +59,7 @@ typedef enum
 #define META_TYPE_WINDOW            (meta_window_get_type ())
 #define META_WINDOW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_WINDOW, MetaWindow))
 #define META_WINDOW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  META_TYPE_WINDOW, MetaWindowClass))
-#define META_IS_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_WINDOW_TYPE))
+#define META_IS_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_TYPE_WINDOW))
 #define META_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  META_TYPE_WINDOW))
 #define META_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  META_TYPE_WINDOW, MetaWindowClass))
 
diff --git a/src/include/xprops.h b/src/include/xprops.h
index f5ecb6a..b8d0f07 100644
--- a/src/include/xprops.h
+++ b/src/include/xprops.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity X property convenience routines */
+/* Mutter X property convenience routines */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/libmetacity-private.pc.in b/src/libmetacity-private.pc.in
deleted file mode 100644
index 3f034b6..0000000
--- a/src/libmetacity-private.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-libgnome_serverdir=@libexecdir@
-
-Name: libmetacity-private
-Description: Metacity internals shared 
-Requires: gtk+-2.0
-Version: @VERSION@
-Libs: -L${libdir} -lmetacity-private
-Cflags: -I${includedir}/metacity-1
diff --git a/src/libmutter-private.pc.in b/src/libmutter-private.pc.in
new file mode 100644
index 0000000..97706f8
--- /dev/null
+++ b/src/libmutter-private.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+libgnome_serverdir=@libexecdir@
+
+Name: libmutter-private
+Description: Mutter internals shared
+Requires: gtk+-2.0
+Version: @VERSION@
+Libs: -L${libdir} -lmutter-private
+Cflags: -I${includedir}/mutter
diff --git a/src/metacity-plugins.pc.in b/src/metacity-plugins.pc.in
deleted file mode 100644
index 5f4f2b3..0000000
--- a/src/metacity-plugins.pc.in
+++ /dev/null
@@ -1,17 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-mutterplugindir=@MUTTER_PLUGIN_DIR@
-libgnome_serverdir=@libexecdir@
-metacity_major_version=@METACITY_MAJOR_VERSION@
-metacity_minor_version=@METACITY_MINOR_VERSION@
-metacity_micro_version=@METACITY_MICRO_VERSION@
-metacity_clutter_plugin_api_version=@METACITY_CLUTTER_PLUGIN_API_VERSION@
-
-Name: metacity-plugins
-Description: Dev parameters for mutter plugins
-Requires: @CLUTTER_PACKAGE@
-Version: @VERSION@
-Libs: @CLUTTER_LIBS@
-Cflags: @CLUTTER_CFLAGS@ -DWITH_CLUTTER -I${includedir}/metacity-1/metacity-private -DMETACITY_MAJOR_VERSION=${metacity_major_version} -DMETACITY_MINOR_VERSION=${metacity_minor_version} -DMETACITY_MICRO_VERSION=${metacity_micro_version} -DMETACITY_CLUTTER_PLUGIN_API_VERSION=${metacity_clutter_plugin_api_version} -DMUTTER_PLUGIN_DIR=\"${mutterplugindir}\"
diff --git a/src/metacity-wm.desktop.in b/src/metacity-wm.desktop.in
deleted file mode 100644
index 91b8124..0000000
--- a/src/metacity-wm.desktop.in
+++ /dev/null
@@ -1,21 +0,0 @@
-[Desktop Entry]
-Type=Application
-Encoding=UTF-8
-_Name=Metacity
-Exec=metacity
-# name of loadable control center module
-X-GNOME-WMSettingsModule=metacity
-# name we put on the WM spec check window
-X-GNOME-WMName=Metacity
-# back compat only 
-X-GnomeWMSettingsLibrary=metacity
-X-GNOME-Bugzilla-Bugzilla=GNOME
-X-GNOME-Bugzilla-Product=metacity
-X-GNOME-Bugzilla-Component=general
-X-GNOME-Autostart-Phase=WindowManager
-X-GNOME-Provides=windowmanager
-X-GNOME-Autostart-Notify=true
-
-[Window Manager]
-SessionManaged=true
-
diff --git a/src/metacity.desktop.in b/src/metacity.desktop.in
deleted file mode 100644
index e6b5d47..0000000
--- a/src/metacity.desktop.in
+++ /dev/null
@@ -1,18 +0,0 @@
-[Desktop Entry]
-Type=Application
-Encoding=UTF-8
-_Name=Metacity
-Exec=metacity
-NoDisplay=true
-# name of loadable control center module
-X-GNOME-WMSettingsModule=metacity
-# name we put on the WM spec check window
-X-GNOME-WMName=Metacity
-# back compat only 
-X-GnomeWMSettingsLibrary=metacity
-X-GNOME-Bugzilla-Bugzilla=GNOME
-X-GNOME-Bugzilla-Product=metacity
-X-GNOME-Bugzilla-Component=general
-X-GNOME-Autostart-Phase=WindowManager
-X-GNOME-Provides=windowmanager
-X-GNOME-Autostart-Notify=true
diff --git a/src/metacity.schemas.in.in b/src/metacity.schemas.in.in
deleted file mode 100644
index 29759c9..0000000
--- a/src/metacity.schemas.in.in
+++ /dev/null
@@ -1,639 +0,0 @@
-<gconfschemafile>
-  <schemalist>
-
-    <!-- General preferences -->        
-
-    <schema>
-      <key>/schemas/apps/metacity/general/overlay_key</key>
-      <applyto>/apps/metacity/general/overlay_key</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>&lt;Super_L&gt;</default>
-      <locale name="C">
-         <short>Modifier to use for extended window management operations</short>
-         <long>
-			This key will initiate the "overlay", which is a combination window
-			overview and application launching system.  The default is intended
-			to be the "Windows key" on PC hardware.
-
-			It's expected that this binding either the default or set to 
-			the empty string.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/mouse_button_modifier</key>
-      <applyto>/apps/metacity/general/mouse_button_modifier</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>&lt;Alt&gt;</default>
-      <locale name="C">
-         <short>Modifier to use for modified window click actions</short>
-         <long>
-           Clicking a window while holding down this modifier key 
-           will move the window (left click), resize the window 
-           (middle click), or show the window menu (right click).
-           The left and right operations may be swapped
-           using the "mouse_button_resize" key.
-           Modifier is expressed as "&lt;Alt&gt;" or "&lt;Super&gt;"
-           for example.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/resize_with_right_button</key>
-      <applyto>/apps/metacity/general/resize_with_right_button</applyto>
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-         <short>Whether to resize with the right button</short>
-         <long>
-           Set this to true to resize with the right button and show a menu
-           with the middle button while holding down the key given in
-           "mouse_button_modifier"; set it to false to make it work the
-           opposite way around.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/button_layout</key>
-      <applyto>/apps/metacity/general/button_layout</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>menu:minimize,maximize,close</default>
-      <locale name="C">
-         <short>Arrangement of buttons on the titlebar</short>
-         <long>
-           Arrangement of buttons on the titlebar. The 
-           value should be a string, such as 
-           "menu:minimize,maximize,spacer,close"; the colon separates the 
-           left corner of the window from the right corner, and 
-           the button names are comma-separated. Duplicate buttons
-           are not allowed. Unknown button names are silently ignored
-           so that buttons can be added in future metacity versions 
-           without breaking older versions.
-           A special spacer tag can be used to insert some space between
-           two adjacent buttons.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/focus_mode</key>
-      <applyto>/apps/metacity/general/focus_mode</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>click</default>
-      <locale name="C">
-        <short>Window focus mode</short>
-        <long>
-          The window focus mode indicates how windows are activated. 
-          It has three possible values; "click" means windows must 
-          be clicked in order to focus them, "sloppy" means windows
-          are focused when the mouse enters the window, and "mouse" means
-          windows are focused when the mouse enters the window and 
-          unfocused when the mouse leaves the window.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/focus_new_windows</key>
-      <applyto>/apps/metacity/general/focus_new_windows</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>smart</default>
-      <locale name="C">
-         <short>Control how new windows get focus</short>
-         <long>
-          This option provides additional control over how newly created
-          windows get focus.  It has two possible values; "smart" applies
-          the user's normal focus mode, and "strict" results in windows
-          started from a terminal not being given focus.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/raise_on_click</key>
-      <applyto>/apps/metacity/general/raise_on_click</applyto>
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>true</default>
-      <locale name="C">
-         <short>Whether raising should be a side-effect of other user
-                interactions</short>
-         <long>
-           Setting this option to false can lead to buggy behavior, so
-           users are strongly discouraged from changing it from the default
-           of true.
-
-           Many actions (e.g. clicking in the client area, moving or resizing the window)
-           normally raise the window as a side-effect. Setting this option to false, which
-           is strongly discouraged, will decouple raising from other user actions, and
-           ignore raise requests generated by applications. See
-           http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6.
-           Even when this option is false, windows can
-           still be raised by an alt-left-click anywhere on the window, a
-           normal click on the window decorations, or by special messages
-           from pagers, such as activation requests from tasklist applets.
-           This option is currently disabled in click-to-focus mode.
-
-           Note that the list of ways to raise windows when raise_on_click
-           is false does not include programmatic requests from
-           applications to raise windows; such requests will be ignored
-           regardless of the reason for the request.  If you are an
-           application developer and have a user complaining that your
-           application does not work with this setting disabled, tell them
-           it is _their_ fault for breaking their window manager and that
-           they need to change this option back to true or live with the
-           "bug" they requested.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/action_double_click_titlebar</key>
-      <applyto>/apps/metacity/general/action_double_click_titlebar</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>toggle_maximize</default>
-      <locale name="C">
-         <short>Action on title bar double-click</short>
-         <long>
-           This option determines the effects of double-clicking on the
-           title bar.  Current valid options are
-	   'toggle_shade', which will shade/unshade the window,
-	   'toggle_maximize' which will maximize/unmaximize the window,
-	   'toggle_maximize_horizontally' and 'toggle_maximize_vertically'
-	   which will maximize/unmaximize the window in that direction only,
-	   'minimize' which will minimize the window,
-	   'shade' which will roll the window up,
-	   'menu' which will display the window menu,
-	   'lower' which will put the window behind all the others,
-	   and 'none' which will not do anything.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/action_middle_click_titlebar</key>
-      <applyto>/apps/metacity/general/action_middle_click_titlebar</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>lower</default>
-      <locale name="C">
-         <short>Action on title bar middle-click</short>
-         <long>
-           This option determines the effects of middle-clicking on the
-           title bar.  Current valid options are
-	   'toggle_shade', which will shade/unshade the window,
-	   'toggle_maximize' which will maximize/unmaximize the window,
-	   'toggle_maximize_horizontally' and 'toggle_maximize_vertically'
-	   which will maximize/unmaximize the window in that direction only,
-	   'minimize' which will minimize the window,
-	   'shade' which will roll the window up,
-	   'menu' which will display the window menu,
-	   'lower' which will put the window behind all the others,
-	   and 'none' which will not do anything.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/action_right_click_titlebar</key>
-      <applyto>/apps/metacity/general/action_right_click_titlebar</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>menu</default>
-      <locale name="C">
-         <short>Action on title bar right-click</short>
-         <long>
-           This option determines the effects of right-clicking on the
-           title bar.  Current valid options are
-	   'toggle_shade', which will shade/unshade the window,
-	   'toggle_maximize' which will maximize/unmaximize the window,
-	   'toggle_maximize_horizontally' and 'toggle_maximize_vertically'
-	   which will maximize/unmaximize the window in that direction only,
-	   'minimize' which will minimize the window,
-	   'shade' which will roll the window up,
-	   'menu' which will display the window menu,
-	   'lower' which will put the window behind all the others,
-	   and 'none' which will not do anything.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/auto_raise</key>
-      <applyto>/apps/metacity/general/auto_raise</applyto>
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Automatically raises the focused window</short>
-        <long>
-          If set to true, and the focus mode is either "sloppy" or "mouse"
-          then the focused window will be automatically raised after a
-          delay specified by the auto_raise_delay key. This is not related
-          to clicking on a window to raise it, nor to entering a window
-          during drag-and-drop.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/auto_raise_delay</key>
-      <applyto>/apps/metacity/general/auto_raise_delay</applyto>
-      <owner>metacity</owner>
-      <type>int</type>
-      <default>500</default>
-      <locale name="C">
-        <short>Delay in milliseconds for the auto raise option</short>
-        <long>
-          The time delay before raising a window if auto_raise is set to
-          true. The delay is given in thousandths of a second.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/theme</key>
-      <applyto>/apps/metacity/general/theme</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>Clearlooks</default>
-      <locale name="C">
-         <short>Current theme</short>
-         <long>
-          The theme determines the appearance of window borders,
-          titlebar, and so forth.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/titlebar_uses_system_font</key>
-      <applyto>/apps/metacity/general/titlebar_uses_system_font</applyto>      
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-         <short>Use standard system font in window titles</short>
-         <long> 
-          If true, ignore the titlebar_font
-          option, and use the standard application font for window 
-          titles.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/titlebar_font</key>
-      <applyto>/apps/metacity/general/titlebar_font</applyto>   
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>Sans Bold 10</default>
-      <locale name="C">
-        <short>Window title font</short>
-        <long>
-          A font description string describing a font for window
-          titlebars. The size from the description will only be used if the
-          titlebar_font_size option is set to 0. Also, this option is
-          disabled if the titlebar_uses_desktop_font option is set to true.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/num_workspaces</key>
-      <applyto>/apps/metacity/general/num_workspaces</applyto>      
-      <owner>metacity</owner>
-      <type>int</type>
-      <default>4</default>
-      <locale name="C">
-        <short>Number of workspaces</short>
-        <long>
-          Number of workspaces. Must be more than zero, and has a fixed
-          maximum to prevent making the desktop unusable by accidentally
-          asking for too many workspaces.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/visual_bell</key>
-      <applyto>/apps/metacity/general/visual_bell</applyto>      
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Enable Visual Bell</short>
-        <long>
-          Turns on a visual indication when an application or the system
-          issues a 'bell' or 'beep'; useful for the hard-of-hearing and for
-          use in noisy environments.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/audible_bell</key>
-      <applyto>/apps/metacity/general/audible_bell</applyto>      
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>true</default>
-      <locale name="C">
-        <short>System Bell is Audible</short>
-        <long>
-          Determines whether applications or the system can generate
-          audible 'beeps'; may be used in conjunction with 'visual bell' to
-          allow silent 'beeps'.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/visual_bell_type</key>
-      <applyto>/apps/metacity/general/visual_bell_type</applyto>      
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>fullscreen</default>
-      <locale name="C">
-        <short>Visual Bell Type</short>
-        <long>
-          Tells Metacity how to implement the visual indication that the
-          system bell or another application 'bell' indicator has been
-          rung.  Currently there are two valid values, "fullscreen", which
-          causes a fullscreen white-black flash, and "frame_flash" which
-          causes the titlebar of the application which sent the bell signal
-          to flash.  If the application which sent the bell is unknown (as
-          is usually the case for the default "system beep"), the currently
-          focused window's titlebar is flashed.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/compositing_manager</key>
-      <applyto>/apps/metacity/general/compositing_manager</applyto>
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Compositing Manager</short>
-        <long>
-          Determines whether Metacity is a compositing manager.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/clutter_disabled</key>
-      <applyto>/apps/metacity/general/clutter_disabled</applyto>
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Clutter Disabled</short>
-        <long>
-          Determines whether Clutter compositing backend should be disabled.
-          Change to this option will not take effect until Metacity is
-          restarted.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/clutter_plugins</key>
-      <applyto>/apps/metacity/general/clutter_plugins</applyto>
-      <owner>metacity</owner>
-      <type>list</type>
-      <list_type>string</list_type>
-      <default>[default]</default>
-      <locale name="C">
-        <short>Clutter Plugins</short>
-        <long>
-          Plugins to load for the Clutter-based compositing manager.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/live_hidden_windows</key>
-      <applyto>/apps/metacity/general/live_hidden_windows</applyto>
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Live Hidden Windows</short>
-        <long>
-          Determines whether hidden windows (i.e., minimized windows and
-          windows on other workspaces than the current one) should be kept
-          alive.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/workspace_names/name</key>
-      <applyto>/apps/metacity/workspace_names/name_1</applyto>
-      <applyto>/apps/metacity/workspace_names/name_2</applyto>
-      <applyto>/apps/metacity/workspace_names/name_3</applyto>
-      <applyto>/apps/metacity/workspace_names/name_4</applyto>
-      <applyto>/apps/metacity/workspace_names/name_5</applyto>
-      <applyto>/apps/metacity/workspace_names/name_6</applyto>
-      <applyto>/apps/metacity/workspace_names/name_7</applyto>
-      <applyto>/apps/metacity/workspace_names/name_8</applyto>
-      <applyto>/apps/metacity/workspace_names/name_9</applyto>
-      <applyto>/apps/metacity/workspace_names/name_10</applyto>
-      <applyto>/apps/metacity/workspace_names/name_11</applyto>
-      <applyto>/apps/metacity/workspace_names/name_12</applyto>
-      <applyto>/apps/metacity/workspace_names/name_13</applyto>
-      <applyto>/apps/metacity/workspace_names/name_14</applyto>
-      <applyto>/apps/metacity/workspace_names/name_15</applyto>
-      <applyto>/apps/metacity/workspace_names/name_16</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default></default>
-      <locale name="C">
-         <short>Name of workspace</short>
-         <long>
-          The name of a workspace.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/reduced_resources</key>
-      <applyto>/apps/metacity/general/reduced_resources</applyto>
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-         <short>If true, trade off usability for less resource usage</short>
-         <long>
-           If true, metacity will give the user less feedback by using
-           wireframes, avoiding animations, or other means.  This is a
-           significant reduction in usability for many users, but may allow
-           legacy applications to continue working, and may also be a
-           useful tradeoff for terminal servers.  However, the wireframe
-           feature is disabled when accessibility is on.
-         </long>
-      </locale>
-    </schema>
-
-    <!-- Keybindings -->
-
-    <schema>
-      <key>/schemas/apps/metacity/global_keybindings/run_command</key>
-      <applyto>/apps/metacity/global_keybindings/run_command_1</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_2</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_3</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_4</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_5</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_6</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_7</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_8</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_9</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_10</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_11</applyto>
-      <applyto>/apps/metacity/global_keybindings/run_command_12</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>disabled</default>
-      <locale name="C">
-         <short>Run a defined command</short>
-         <long>
-          The keybinding that runs the correspondingly-numbered
-          command in /apps/metacity/keybinding_commands
-
-          The format looks like "&lt;Control&gt;a" or
-          "&lt;Shift&gt;&lt;Alt&gt;F1".
-
-          The parser is fairly liberal and allows lower or upper case,
-          and also abbreviations such as "&lt;Ctl&gt;" and
-          "&lt;Ctrl&gt;". If you set the option to the special string
-          "disabled", then there will be no keybinding for this
-          action.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/keybinding_commands/command</key>
-      <applyto>/apps/metacity/keybinding_commands/command_1</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_2</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_3</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_4</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_5</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_6</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_7</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_8</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_9</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_10</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_11</applyto>
-      <applyto>/apps/metacity/keybinding_commands/command_12</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default> </default>
-      <locale name="C">
-         <short>Commands to run in response to keybindings</short>
-         <long>
-         The /apps/metacity/global_keybindings/run_command_N 
-         keys define keybindings that correspond to these commands.
-         Pressing the keybinding for run_command_N will 
-         execute command_N.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/keybinding_commands/command_screenshot</key>
-      <applyto>/apps/metacity/keybinding_commands/command_screenshot</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>gnome-screenshot</default>
-      <locale name="C">
-         <short>The screenshot command</short>
-         <long>
-         The /apps/metacity/global_keybindings/run_command_screenshot
-         key defines a keybinding which causes the command specified
-         by this setting to be invoked.
-         </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/keybinding_commands/command_window_screenshot</key>
-      <applyto>/apps/metacity/keybinding_commands/command_window_screenshot</applyto>
-      <owner>metacity</owner>
-      <type>string</type>
-      <default>gnome-screenshot --window</default>
-      <locale name="C">
-         <short>The window screenshot command</short>
-         <long>
-         The /apps/metacity/global_keybindings/run_command_window_screenshot
-         key defines a keybinding which causes the command specified
-         by this setting to be invoked.
-         </long>
-      </locale>
-    </schema>
-
-    <!-- Schemas below are generated by schema-bindings.c when this file
-         becomes metacity.schemas.in     
-    -->
-    <!-- GENERATED -->
-
-    <!-- Not used and/or crackrock -->
-
-    <schema>
-      <key>/schemas/apps/metacity/general/application_based</key>
-      <applyto>/apps/metacity/general/application_based</applyto>      
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>(Not implemented) Navigation works in terms of applications not windows</short>
-        <long>
-          If true, then Metacity works in terms of applications rather than
-          windows. The concept is a bit abstract, but in general an
-          application-based setup is more like the Mac and less like
-          Windows. When you focus a window in application-based mode, all
-          the windows in the application will be raised. Also, in
-          application-based mode, focus clicks are not passed through to
-          windows in other applications. Application-based mode is,
-          however, largely unimplemented at the moment.
-        </long>
-      </locale>
-    </schema>
-
-    <schema>
-      <key>/schemas/apps/metacity/general/disable_workarounds</key>
-      <applyto>/apps/metacity/general/disable_workarounds</applyto>      
-      <owner>metacity</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Disable misfeatures that are required by old or broken
-               applications</short>
-        <long> 
-          Some applications disregard specifications in ways that result in
-          window manager misfeatures. This option puts Metacity in a
-          rigorously correct mode, which gives a more consistent user
-          interface, provided one does not need to run any misbehaving
-          applications.
-        </long>
-      </locale>
-    </schema>
-
-  </schemalist>  
-</gconfschemafile>
-
-
-
-
diff --git a/src/mutter-plugins.pc.in b/src/mutter-plugins.pc.in
new file mode 100644
index 0000000..dfb5521
--- /dev/null
+++ b/src/mutter-plugins.pc.in
@@ -0,0 +1,17 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+mutterplugindir=@MUTTER_PLUGIN_DIR@
+libgnome_serverdir=@libexecdir@
+mutter_major_version=@MUTTER_MAJOR_VERSION@
+mutter_minor_version=@MUTTER_MINOR_VERSION@
+mutter_micro_version=@MUTTER_MICRO_VERSION@
+mutter_plugin_api_version=@MUTTER_PLUGIN_API_VERSION@
+
+Name: mutter-plugins
+Description: Dev parameters for mutter plugins
+Requires: @CLUTTER_PACKAGE@
+Version: @VERSION@
+Libs: @CLUTTER_LIBS@
+Cflags: @CLUTTER_CFLAGS@ -DWITH_CLUTTER -I${includedir}/mutter/mutter-private -DMUTTER_MAJOR_VERSION=${mutter_major_version} -DMUTTER_MINOR_VERSION=${mutter_minor_version} -DMUTTER_MICRO_VERSION=${mutter_micro_version} -DMUTTER_PLUGIN_API_VERSION=${mutter_plugin_api_version} -DMUTTER_PLUGIN_DIR=\"${mutterplugindir}\"
diff --git a/src/mutter-wm.desktop.in b/src/mutter-wm.desktop.in
new file mode 100644
index 0000000..f1999f9
--- /dev/null
+++ b/src/mutter-wm.desktop.in
@@ -0,0 +1,21 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+_Name=Mutter
+Exec=mutter
+# name of loadable control center module
+X-GNOME-WMSettingsModule=mutter
+# name we put on the WM spec check window
+X-GNOME-WMName=Mutter
+# back compat only 
+X-GnomeWMSettingsLibrary=mutter
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=mutter
+X-GNOME-Bugzilla-Component=general
+X-GNOME-Autostart-Phase=WindowManager
+X-GNOME-Provides=windowmanager
+X-GNOME-Autostart-Notify=true
+
+[Window Manager]
+SessionManaged=true
+
diff --git a/src/mutter.desktop.in b/src/mutter.desktop.in
new file mode 100644
index 0000000..d97087f
--- /dev/null
+++ b/src/mutter.desktop.in
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+_Name=Mutter
+Exec=mutter
+NoDisplay=true
+# name of loadable control center module
+X-GNOME-WMSettingsModule=mutter
+# name we put on the WM spec check window
+X-GNOME-WMName=Mutter
+# back compat only 
+X-GnomeWMSettingsLibrary=mutter
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=mutter
+X-GNOME-Bugzilla-Component=general
+X-GNOME-Autostart-Phase=WindowManager
+X-GNOME-Provides=windowmanager
+X-GNOME-Autostart-Notify=true
diff --git a/src/mutter.schemas.in b/src/mutter.schemas.in
new file mode 100644
index 0000000..207a7fa
--- /dev/null
+++ b/src/mutter.schemas.in
@@ -0,0 +1,56 @@
+<gconfschemafile>
+  <schemalist>
+
+    <!-- General preferences -->        
+
+    <schema>
+      <key>/schemas/apps/mutter/general/overlay_key</key>
+      <applyto>/apps/metacity/general/overlay_key</applyto>
+      <owner>metacity</owner>
+      <type>string</type>
+      <default>&lt;Super_L&gt;</default>
+      <locale name="C">
+         <short>Modifier to use for extended window management operations</short>
+         <long>
+			This key will initiate the "overlay", which is a combination window
+			overview and application launching system.  The default is intended
+			to be the "Windows key" on PC hardware.
+
+			It's expected that this binding either the default or set to 
+			the empty string.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/mutter/general/clutter_plugins</key>
+      <applyto>/apps/mutter/general/clutter_plugins</applyto>
+      <owner>mutter</owner>
+      <type>list</type>
+      <list_type>string</list_type>
+      <default>[default]</default>
+      <locale name="C">
+        <short>Clutter Plugins</short>
+        <long>
+          Plugins to load for the Clutter-based compositing manager.
+        </long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/mutter/general/live_hidden_windows</key>
+      <applyto>/apps/mutter/general/live_hidden_windows</applyto>
+      <owner>mutter</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>Live Hidden Windows</short>
+        <long>
+          Determines whether hidden windows (i.e., minimized windows and
+          windows on other workspaces than the current one) should be kept
+          alive.
+        </long>
+      </locale>
+    </schema>
+  </schemalist>  
+</gconfschemafile>
diff --git a/src/run-metacity.sh b/src/run-metacity.sh
deleted file mode 100755
index e0d9265..0000000
--- a/src/run-metacity.sh
+++ /dev/null
@@ -1,109 +0,0 @@
-#! /bin/bash
-
-if test -z "$XNEST_DISPLAY"; then
-  XNEST_DISPLAY=:8
-fi
-
-if test -z "$CLIENT_DISPLAY"; then
-  CLIENT_DISPLAY=:8
-fi
-
-if test -z "$METACITY_DISPLAY"; then
-  export METACITY_DISPLAY=$CLIENT_DISPLAY
-fi
-
-if test -z "$SCREENS"; then
-  SCREENS=1
-fi
-
-MAX_SCREEN=`echo $SCREENS-1 | bc`
-
-if test "$DEBUG" = none; then
-  DEBUG=
-elif test -z "$DEBUG"; then
-  DEBUG=
-fi
-
-if test -z "$CLIENTS"; then
-  CLIENTS=0
-fi
-
-if test -z "$SM_CLIENTS"; then
-  SM_CLIENTS=0
-fi
-
-if test -n "$EVIL_TEST"; then
-  TEST_CLIENT='./wm-tester/wm-tester --evil'
-fi
-
-if test -n "$ICON_TEST"; then
-  TEST_CLIENT='./wm-tester/wm-tester --icon-windows'
-fi
-
-if test -n "$DEMO_TEST"; then
-  TEST_CLIENT='./tools/metacity-window-demo'
-fi
-
-if test -n "$XINERAMA"; then
-  XINERAMA_FLAGS='+xinerama'
-fi
-
-export EF_ALLOW_MALLOC_0=1
-
-if test -z "$ONLY_WM"; then
-  echo "Launching Xnest"
-  Xnest -ac $XNEST_DISPLAY -scrns $SCREENS -geometry 640x480 -bw 15 $XINERAMA_FLAGS &
-  ## usleep 800000
-  sleep 1
-
-  if test -n "$XMON_DIR"; then
-    echo "Launching xmond"
-    $XMON_DIR/xmonui | $XMON_DIR/xmond -server localhost:$XNEST_DISPLAY &
-    sleep 1
-  fi
-
-  if test -n "$XSCOPE_DIR"; then
-    ## xscope doesn't like to die when it should, it backgrounds itself
-    killall -9 xscope
-    killall -9 xscope
-    echo "Launching xscope"
-    DISPLAY= $XSCOPE_DIR/xscope -o1 -i28  > xscoped-replies.txt &
-    export METACITY_DISPLAY=localhost:28
-    sleep 1
-  fi
-
-  echo "Launching clients"
-  if test -n "$TEST_CLIENT"; then
-      for I in `seq 0 $MAX_SCREEN`; do
-          DISPLAY=$CLIENT_DISPLAY.$I $TEST_CLIENT &
-      done
-  fi
-
-  if test $CLIENTS != 0; then
-    for I in `seq 1 $CLIENTS`; do
-      echo "Launching xterm $I"
-      DISPLAY=$CLIENT_DISPLAY xterm -geometry 25x15 &
-    done
-  fi
-
-  if test $SM_CLIENTS != 0; then
-    for I in `seq 1 $SM_CLIENTS`; do
-      echo "Launching gnome-terminal $I"
-      DISPLAY=$CLIENT_DISPLAY gnome-terminal --geometry 25x15 &
-    done
-  fi
-
-  if test -e ~/.Xmodmap; then
-      DISPLAY=$CLIENT_DISPLAY xmodmap ~/.Xmodmap
-  fi
- 
-  usleep 50000
-
-  for I in `seq 0 $MAX_SCREEN`; do
-      DISPLAY=$CLIENT_DISPLAY.$I xsetroot -solid royalblue3
-  done
-fi
-
-if test -z "$ONLY_SETUP"; then
-  METACITY_VERBOSE=1 METACITY_USE_LOGFILE=1 METACITY_DEBUG_BUTTON_GRABS=1 exec $DEBUG ./metacity $OPTIONS
-fi
diff --git a/src/run-mutter.sh b/src/run-mutter.sh
new file mode 100755
index 0000000..b64834f
--- /dev/null
+++ b/src/run-mutter.sh
@@ -0,0 +1,109 @@
+#! /bin/bash
+
+if test -z "$XNEST_DISPLAY"; then
+  XNEST_DISPLAY=:8
+fi
+
+if test -z "$CLIENT_DISPLAY"; then
+  CLIENT_DISPLAY=:8
+fi
+
+if test -z "$MUTTER_DISPLAY"; then
+  export MUTTER_DISPLAY=$CLIENT_DISPLAY
+fi
+
+if test -z "$SCREENS"; then
+  SCREENS=1
+fi
+
+MAX_SCREEN=`echo $SCREENS-1 | bc`
+
+if test "$DEBUG" = none; then
+  DEBUG=
+elif test -z "$DEBUG"; then
+  DEBUG=
+fi
+
+if test -z "$CLIENTS"; then
+  CLIENTS=0
+fi
+
+if test -z "$SM_CLIENTS"; then
+  SM_CLIENTS=0
+fi
+
+if test -n "$EVIL_TEST"; then
+  TEST_CLIENT='./wm-tester/wm-tester --evil'
+fi
+
+if test -n "$ICON_TEST"; then
+  TEST_CLIENT='./wm-tester/wm-tester --icon-windows'
+fi
+
+if test -n "$DEMO_TEST"; then
+  TEST_CLIENT='./tools/mutter-window-demo'
+fi
+
+if test -n "$XINERAMA"; then
+  XINERAMA_FLAGS='+xinerama'
+fi
+
+export EF_ALLOW_MALLOC_0=1
+
+if test -z "$ONLY_WM"; then
+  echo "Launching Xnest"
+  Xnest -ac $XNEST_DISPLAY -scrns $SCREENS -geometry 640x480 -bw 15 $XINERAMA_FLAGS &
+  ## usleep 800000
+  sleep 1
+
+  if test -n "$XMON_DIR"; then
+    echo "Launching xmond"
+    $XMON_DIR/xmonui | $XMON_DIR/xmond -server localhost:$XNEST_DISPLAY &
+    sleep 1
+  fi
+
+  if test -n "$XSCOPE_DIR"; then
+    ## xscope doesn't like to die when it should, it backgrounds itself
+    killall -9 xscope
+    killall -9 xscope
+    echo "Launching xscope"
+    DISPLAY= $XSCOPE_DIR/xscope -o1 -i28  > xscoped-replies.txt &
+    export MUTTER_DISPLAY=localhost:28
+    sleep 1
+  fi
+
+  echo "Launching clients"
+  if test -n "$TEST_CLIENT"; then
+      for I in `seq 0 $MAX_SCREEN`; do
+          DISPLAY=$CLIENT_DISPLAY.$I $TEST_CLIENT &
+      done
+  fi
+
+  if test $CLIENTS != 0; then
+    for I in `seq 1 $CLIENTS`; do
+      echo "Launching xterm $I"
+      DISPLAY=$CLIENT_DISPLAY xterm -geometry 25x15 &
+    done
+  fi
+
+  if test $SM_CLIENTS != 0; then
+    for I in `seq 1 $SM_CLIENTS`; do
+      echo "Launching gnome-terminal $I"
+      DISPLAY=$CLIENT_DISPLAY gnome-terminal --geometry 25x15 &
+    done
+  fi
+
+  if test -e ~/.Xmodmap; then
+      DISPLAY=$CLIENT_DISPLAY xmodmap ~/.Xmodmap
+  fi
+ 
+  usleep 50000
+
+  for I in `seq 0 $MAX_SCREEN`; do
+      DISPLAY=$CLIENT_DISPLAY.$I xsetroot -solid royalblue3
+  done
+fi
+
+if test -z "$ONLY_SETUP"; then
+  MUTTER_VERBOSE=1 MUTTER_USE_LOGFILE=1 MUTTER_DEBUG_BUTTON_GRABS=1 exec $DEBUG ./mutter $OPTIONS
+fi
diff --git a/src/themes/.cvsignore b/src/themes/.cvsignore
deleted file mode 100644
index 282522d..0000000
--- a/src/themes/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/src/themes/AgingGorilla/README b/src/themes/AgingGorilla/README
deleted file mode 100644
index c275e5e..0000000
--- a/src/themes/AgingGorilla/README
+++ /dev/null
@@ -1,7 +0,0 @@
-* Gorilla *
-
-A metacity theme to accompany Scalable and Unscalable Gorilla nautilus
-themes.
-
-(c) 2001 Jakub 'jimmac' Steiner
-Ported by Kenneth Christiansen
diff --git a/src/themes/AgingGorilla/active-button.png b/src/themes/AgingGorilla/active-button.png
deleted file mode 100644
index 64455b3..0000000
Binary files a/src/themes/AgingGorilla/active-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/active-close-button.png b/src/themes/AgingGorilla/active-close-button.png
deleted file mode 100644
index 1d29216..0000000
Binary files a/src/themes/AgingGorilla/active-close-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/active-close-menu-icon.png b/src/themes/AgingGorilla/active-close-menu-icon.png
deleted file mode 100644
index b77f77a..0000000
Binary files a/src/themes/AgingGorilla/active-close-menu-icon.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/active-maximize-button.png b/src/themes/AgingGorilla/active-maximize-button.png
deleted file mode 100644
index a982e5c..0000000
Binary files a/src/themes/AgingGorilla/active-maximize-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/active-maximize-menu-icon.png b/src/themes/AgingGorilla/active-maximize-menu-icon.png
deleted file mode 100644
index 02ccc37..0000000
Binary files a/src/themes/AgingGorilla/active-maximize-menu-icon.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/active-menu-button.png b/src/themes/AgingGorilla/active-menu-button.png
deleted file mode 100644
index b55d707..0000000
Binary files a/src/themes/AgingGorilla/active-menu-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/active-minimize-button.png b/src/themes/AgingGorilla/active-minimize-button.png
deleted file mode 100644
index 4205f4e..0000000
Binary files a/src/themes/AgingGorilla/active-minimize-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/active-minimize-menu-icon.png b/src/themes/AgingGorilla/active-minimize-menu-icon.png
deleted file mode 100644
index 2927692..0000000
Binary files a/src/themes/AgingGorilla/active-minimize-menu-icon.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/gorilla.xcf.bz2 b/src/themes/AgingGorilla/gorilla.xcf.bz2
deleted file mode 100644
index 89b8565..0000000
Binary files a/src/themes/AgingGorilla/gorilla.xcf.bz2 and /dev/null differ
diff --git a/src/themes/AgingGorilla/inactive-close-button.png b/src/themes/AgingGorilla/inactive-close-button.png
deleted file mode 100644
index c566b12..0000000
Binary files a/src/themes/AgingGorilla/inactive-close-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/inactive-maximize-button.png b/src/themes/AgingGorilla/inactive-maximize-button.png
deleted file mode 100644
index 9c83882..0000000
Binary files a/src/themes/AgingGorilla/inactive-maximize-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/inactive-menu-button.png b/src/themes/AgingGorilla/inactive-menu-button.png
deleted file mode 100644
index b000a37..0000000
Binary files a/src/themes/AgingGorilla/inactive-menu-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/inactive-minimize-button.png b/src/themes/AgingGorilla/inactive-minimize-button.png
deleted file mode 100644
index 4459af4..0000000
Binary files a/src/themes/AgingGorilla/inactive-minimize-button.png and /dev/null differ
diff --git a/src/themes/AgingGorilla/metacity-theme-1.xml b/src/themes/AgingGorilla/metacity-theme-1.xml
deleted file mode 100644
index f4f75eb..0000000
--- a/src/themes/AgingGorilla/metacity-theme-1.xml
+++ /dev/null
@@ -1,291 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-<info>
-  <name>Gorilla</name>
-  <author>Kenneth Christiansen &lt;kenneth@gnu.org&gt; Anders Carlsson &lt;andersca@gnu.org&gt;</author>
-  <copyright>&#194; Ximian, Inc, 2001</copyright>
-  <date>February 8, 2002</date>
-  <description>A port of the Gorilla theme by Jacub Steiner</description>
-</info>
-
-<!-- define constants -->
-<constant name="IconTitleSpacing" value="2"/> <!-- Space between menu button and title -->
-<constant name="ButtonWidth" value="18"/> <!-- Button width -->
-
-<frame_geometry name="normal">
-  <distance name="left_width" value="6"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="6"/>
-  <distance name="left_titlebar_edge" value="8"/>
-  <distance name="right_titlebar_edge" value="8"/>
-  <aspect_ratio name="button" value="1.0"/>
-  <distance name="title_vertical_pad" value="0"/>
-  <border name="title_border" left="0" right="0" top="7" bottom="4"/>
-  <border name="button_border" left="0" right="0" top="9" bottom="0"/>
-</frame_geometry>
-
-<frame_geometry name="border" has_title="false">
-  <distance name="left_width" value="4"/>
-  <distance name="right_width" value="4"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-  <distance name="button_width" value="0"/>
-  <distance name="button_height" value="0"/>
-  <distance name="title_vertical_pad" value="4"/>
-  <border name="title_border" left="0" right="0" top="0" bottom="0"/>
-  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- Buttons -->
-
-<draw_ops name="title_tile">
-  <line color="#494d59" x1="0" y1="0" x2="width" y2="0"/>
-  <line color="#515961" x1="0" y1="1" x2="width" y2="1"/>
-</draw_ops>
-
-<!-- Inactive style -->
-<frame_style name="normal" geometry="normal">
-  <piece position="entire_background">
-    <draw_ops>
-      <rectangle color="black" x="1" y="1" width="width - 2" height="height - 2" filled="true"/>
-      <rectangle color="dark gray" x="3" y="3" width="width - 8" height="height - 7" filled="false"/>
-      <rectangle color="light gray" x="4" y="4" width="width - 9" height="height - 8" filled="false"/>
-      <rectangle color="light gray" x="5" y="5" width="width - 11" height="height - 10" filled="false"/>
-      <rectangle color="white" x="6" y="6" width="width - 13" height="height - 12" filled="false"/>
-      <rectangle color="gtk:bg[INSENSITIVE]" x="6" y="6" width="width - 12" height="height - 12" filled="true"/>
-
-      <line color="gtk:bg[INSENSITIVE]" x1="1" y1="1" x2="2" y2="2"/>
-      <line color="gtk:bg[INSENSITIVE]" x1="1" y1="height - 2" x2="1" y2="height"/>
-      <line color="gtk:bg[INSENSITIVE]" x1="width - 2" y1="1" x2="width - 1" y2="2"/>
-      <line color="gtk:bg[INSENSITIVE]" x1="width - 1" y1="height - 1" x2="width - 2" y2="height - 2"/>
-   </draw_ops>
-  </piece>
-
-  <piece position="title">
-    <draw_ops>
-      <title color="gray" x="IconTitleSpacing" y="0"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="titlebar">
-    <draw_ops>
-      <rectangle color="black" x="6" y="6" width="width - 12" height="height - 10" filled="true"/>
-      <tile name="title_tile" tile_width="width" tile_height="2" x="8" y="8" width="width - 16" height="height - 14"/>
-    </draw_ops>
-  </piece>
-
-  <button function="close" state="normal">
-    <draw_ops>
-      <image filename="inactive-close-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="pressed">
-    <draw_ops>
-      <image filename="inactive-close-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="normal">
-    <draw_ops>
-      <image filename="inactive-minimize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="pressed">
-    <draw_ops>
-      <image filename="inactive-minimize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <image filename="inactive-maximize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <image filename="inactive-maximize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="normal">
-    <draw_ops>
-      <image filename="inactive-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="pressed">
-    <draw_ops>
-      <image filename="inactive-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-
-</frame_style>
-
-
-<!-- Active (focused) shaded style -->
-<frame_style name="normal_shaded" geometry="normal" parent="normal">
-
-</frame_style>
-
-<!-- Active (focused) style -->
-<frame_style name="focused" geometry="normal">
-  <piece position="entire_background">
-    <draw_ops>
-      <rectangle color="black" x="0" y="0" width="width" height="height" filled="true"/>
-      <rectangle color="dark gray" x="3" y="3" width="width - 8" height="height - 7" filled="false"/>
-      <rectangle color="light gray" x="4" y="4" width="width - 9" height="height - 8" filled="false"/>
-      <rectangle color="light gray" x="5" y="5" width="width - 11" height="height - 10" filled="false"/>
-      <rectangle color="white" x="6" y="6" width="width - 13" height="height - 12" filled="false"/>
-      <rectangle color="gtk:bg[NORMAL]" x="6" y="6" width="width - 12" height="height - 12" filled="true"/>
-
-      <line color="gtk:bg[NORMAL]" x1="0" y1="0" x2="1" y2="1"/>
-      <line color="gtk:bg[NORMAL]" x1="0" y1="height - 1" x2="1" y2="height"/>
-      <line color="gtk:bg[NORMAL]" x1="width - 1" y1="0" x2="width" y2="1"/>
-      <line color="gtk:bg[NORMAL]" x1="width" y1="height" x2="width - 1" y2="height - 1"/>
-   </draw_ops>
-  </piece>
-
-  <piece position="title">
-    <draw_ops>
-      <title color="white" x="IconTitleSpacing" y="0"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="titlebar">
-    <draw_ops>
-      <rectangle color="black" x="6" y="6" width="width - 12" height="height - 10" filled="true"/>
-      <tile name="title_tile" tile_width="width" tile_height="2" x="8" y="8" width="width - 16" height="height - 14"/>
-    </draw_ops>
-  </piece>
-
-  <button function="close" state="normal">
-    <draw_ops>
-      <image filename="active-close-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="pressed">
-    <draw_ops>
-      <image filename="active-close-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="normal">
-    <draw_ops>
-      <image filename="active-minimize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="pressed">
-    <draw_ops>
-      <image filename="active-minimize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <image filename="active-maximize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <image filename="active-maximize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="normal">
-    <draw_ops>
-      <image filename="active-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="pressed">
-    <draw_ops>
-      <image filename="active-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-</frame_style>
-
-<!-- Active (focused) shaded style -->
-<frame_style name="focused_shaded" geometry="normal" parent="focused">
-
-</frame_style>
-
-<frame_style_set name="normal">
-<frame focus="yes" state="shaded" style="focused_shaded"/>
-<frame focus="yes" state="normal" resize="both" style="focused"/>
-<frame focus="yes" state="maximized" style="focused"/>
-<frame focus="yes" state="maximized_and_shaded" style="focused_shaded"/>
-<frame focus="no" state="normal" resize="both" style="normal"/>
-<frame focus="no" state="shaded" style="normal_shaded"/>
-<frame focus="no" state="maximized" style="normal"/>
-<frame focus="no" state="maximized_and_shaded" style="normal_shaded"/>
-</frame_style_set>
-
-<draw_ops name="blank">
-<!-- nothing -->
-</draw_ops>
-
-<frame_style name="border" geometry="border" parent="normal">
-  <piece position="title" draw_ops="blank"/>
-</frame_style>
-
-<frame_style_set name="border">
-<frame focus="yes" state="normal" resize="both" style="border"/>
-<frame focus="no" state="normal" resize="both" style="border"/>
-<frame focus="yes" state="maximized" style="border"/>
-<frame focus="no" state="maximized" style="border"/>
-<frame focus="yes" state="shaded" style="border"/>
-<frame focus="no" state="shaded" style="border"/>
-<frame focus="yes" state="maximized_and_shaded" style="border"/>
-<frame focus="no" state="maximized_and_shaded" style="border"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="normal"/>
-<window type="modal_dialog" style_set="normal"/>
-<window type="menu" style_set="normal"/>
-<window type="utility" style_set="normal"/>
-<window type="border" style_set="border"/>
-
-<menu_icon function="maximize" state="normal">
-  <draw_ops>
-    <image filename="active-maximize-menu-icon.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-
-<menu_icon function="close" state="normal">
-  <draw_ops>
-    <image filename="active-close-menu-icon.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-<menu_icon function="minimize" state="normal">
-  <draw_ops>
-    <image filename="active-minimize-menu-icon.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-<menu_icon function="unmaximize" state="normal">
-  <draw_ops>
-  </draw_ops>
-</menu_icon>
-
-</metacity_theme>
diff --git a/src/themes/Atlanta/metacity-theme-1.xml b/src/themes/Atlanta/metacity-theme-1.xml
deleted file mode 100644
index 8355f4c..0000000
--- a/src/themes/Atlanta/metacity-theme-1.xml
+++ /dev/null
@@ -1,350 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-<info>
-  <name>Default</name>
-  <author>Havoc Pennington &lt;hp@redhat.com&gt;</author>
-  <copyright>&#194; Havoc Pennington, 2002</copyright>
-  <date>February 3, 2002</date>
-  <description>Simple low-overhead default theme that comes with Metacity.</description>
-</info>
-
-<frame_geometry name="normal">
-  <distance name="left_width" value="6"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="7"/>
-  <distance name="left_titlebar_edge" value="6"/>
-  <distance name="right_titlebar_edge" value="6"/>
-  <aspect_ratio name="button" value="1.0"/>
-  <distance name="title_vertical_pad" value="3"/>
-  <border name="title_border" left="3" right="4" top="4" bottom="3"/>
-  <border name="button_border" left="0" right="0" top="1" bottom="1"/>
-</frame_geometry>
-
-<!-- strip borders off the normal geometry -->
-<frame_geometry name="normal_small_borders" parent="normal">
-  <distance name="left_width" value="0"/>
-  <distance name="right_width" value="0"/>
-  <distance name="bottom_height" value="0"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-</frame_geometry>
-
-<frame_geometry name="utility" title_scale="xx-small">
-  <distance name="left_width" value="3"/>
-  <distance name="right_width" value="3"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="3"/>
-  <distance name="right_titlebar_edge" value="3"/>
-  <distance name="button_width" value="11"/>
-  <distance name="button_height" value="11"/>
-  <distance name="title_vertical_pad" value="1"/>
-  <border name="title_border" left="3" right="4" top="3" bottom="3"/>
-  <border name="button_border" left="0" right="0" top="1" bottom="1"/>
-</frame_geometry>
-
-<frame_geometry name="border" has_title="false">
-  <distance name="left_width" value="4"/>
-  <distance name="right_width" value="4"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-  <distance name="button_width" value="0"/>
-  <distance name="button_height" value="0"/>
-  <distance name="title_vertical_pad" value="4"/>
-  <border name="title_border" left="0" right="0" top="0" bottom="0"/>
-  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- define constants -->
-<constant name="ArrowSpacer" value="8"/>
-<constant name="MinArrowSize" value="7"/>
-<constant name="ButtonIPad" value="6"/>
-<constant name="ThickLineWidth" value="3"/>
-<constant name="IconTitleSpacing" value="2"/>
-<constant name="SpacerWidth" value="6"/>
-<constant name="SpacerHeight" value="9"/>
-<constant name="SpacerOffset" value="4"/>
-
-<!-- Buttons -->
-
-<draw_ops name="button_pressed_bg">
-  <gtk_box state="active" shadow="in" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="menu_button">
-  <gtk_arrow state="normal" shadow="out" arrow="down"
-             x="ArrowSpacer `min` (width-MinArrowSize)/2"
-             y="ArrowSpacer `min` (height-MinArrowSize)/2"
-             width="(width-(ArrowSpacer*2)) `max` MinArrowSize"
-             height="(height-(ArrowSpacer*2)) `max` MinArrowSize"/>
-</draw_ops>
-
-<draw_ops name="menu_button_pressed">
-  <include name="menu_button"/>
-</draw_ops>
-
-<draw_ops name="minimize_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="height - ButtonIPad - ThickLineWidth + 1"
-        x2="width - ButtonIPad"
-        y2="height - ButtonIPad - ThickLineWidth + 1"
-        width="3"/> <!-- FIXME allow a constant here -->
-</draw_ops>
-
-<draw_ops name="minimize_button_pressed">
-  <include name="minimize_button"/>
-</draw_ops>
-
-<draw_ops name="maximize_button">
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-1" height="height-ButtonIPad*2-1"/>
-  <line color="gtk:fg[NORMAL]" width="3"
-        x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad" y2="ButtonIPad+1"/>
-</draw_ops>
-
-<draw_ops name="maximize_button_pressed">
-  <include name="maximize_button"/>
-</draw_ops>
-
-<draw_ops name="mini_window_icon">
-  <rectangle color="gtk:bg[NORMAL]" filled="true"
-             x="0" y="0" width="width-1" height="height-1"/>
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="0" width="width-1" height="height-1"/>
-  <line color="gtk:fg[NORMAL]" width="2"
-        x1="0" y1="1" x2="width" y2="1"/>
-</draw_ops>
-
-<draw_ops name="restore_button">
-  <include name="mini_window_icon" 
-           x="ButtonIPad" y="ButtonIPad" 
-           width="width - 5 - ButtonIPad"
-           height="height - 5 - ButtonIPad"/>
-  <include name="mini_window_icon" 
-           x="3 + ButtonIPad" y="3 + ButtonIPad"
-           width="width - 5 - ButtonIPad"
-           height="height - 5 - ButtonIPad"/>
-</draw_ops>
-
-<draw_ops name="restore_button_pressed">
-  <include name="restore_button"/>
-</draw_ops>
-
-<draw_ops name="close_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="ButtonIPad"
-        x2="width - ButtonIPad - 1" y2="height - ButtonIPad - 1"
-        width="1"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="height - ButtonIPad - 1"
-        x2="width - ButtonIPad - 1" y2="ButtonIPad"
-	width="1"/>
-</draw_ops>
-
-<draw_ops name="close_button_pressed">
-  <include name="close_button"/>
-</draw_ops>
-
-<draw_ops name="outer_bevel">
-  <rectangle color="gtk:fg[NORMAL]"
-             x="0" y="0" width="width-1" height="height-1"/>
-  <line color="gtk:light[NORMAL]"
-        x1="1" y1="1" x2="1" y2="height-2"/>
-  <line color="gtk:light[NORMAL]"
-        x1="1" y1="1" x2="width-2" y2="1"/>
-  <line color="gtk:dark[NORMAL]"
-        x1="width-2" y1="1" x2="width-2" y2="height-2"/>
-  <line color="gtk:dark[NORMAL]"
-        x1="1" y1="height-2" x2="width-2" y2="height-2"/>        
-</draw_ops>
-
-<draw_ops name="blank">
-<!-- nothing -->
-</draw_ops>
-
-<draw_ops name="focus_outline">
-  <rectangle color="gtk:fg[NORMAL]"
-             x="left_width-1" y="top_height-1"
-             width="width-left_width-right_width+1"
-             height="height-top_height-bottom_height+1"/>
-</draw_ops>
-
-<draw_ops name="focus_background">
-  <include name="outer_bevel"/>
-  <include name="focus_outline"/>
-</draw_ops>
-
-<draw_ops name="background_unfocused">
-  <include name="outer_bevel"/>
-  <include name="focus_outline"/>
-</draw_ops>
-
-<draw_ops name="title_gradient">
-  <gradient type="diagonal" x="0" y="0" width="width-SpacerWidth" height="height">
-    <color value="blend/gtk:bg[NORMAL]/gtk:bg[SELECTED]/0.6"/>
-    <color value="gtk:bg[SELECTED]"/>
-  </gradient>
-</draw_ops>
-
-<draw_ops name="title_spacer">
-  <gtk_vline state="normal" x="width+1-SpacerWidth/2"
-	y1="SpacerOffset"
-        y2="height - SpacerOffset"/>
-</draw_ops>
-	     
-<draw_ops name="title_text_focused_with_icon">
-  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
-  <title color="gtk:fg[SELECTED]"
-         x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
-         y="((height - title_height) / 2) `max` 0"/>
-  <icon  x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
-         y="(height-mini_icon_height) / 2"
-         width="mini_icon_width" height="mini_icon_height"/>
-</draw_ops>
-
-<draw_ops name="title_text_focused_no_icon">
-  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
-  <title color="gtk:fg[SELECTED]"
-         x="(0 `max` (width-title_width)) / 2"
-         y="((height - title_height) / 2) `max` 0"/>
-</draw_ops>
-
-<draw_ops name="title_text_with_icon">
-  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
-  <title color="gtk:fg[NORMAL]"
-         x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
-         y="((height - title_height) / 2) `max` 0"/>
-  <icon  x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
-         y="(height-mini_icon_height) / 2"
-         width="mini_icon_width" height="mini_icon_height"/>
-</draw_ops>
-
-<draw_ops name="title_text_no_icon">
-  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
-  <title color="gtk:fg[NORMAL]"
-         x="(0 `max` (width-title_width)) / 2"
-         y="((height - title_height) / 2) `max` 0"/>
-</draw_ops>
-
-<draw_ops name="title_normal">
-  <include name="title_spacer"/>
-  <include name="title_text_with_icon"/>
-</draw_ops>
-
-<draw_ops name="title_focused">
-  <include name="title_gradient"/>
-  <include name="title_spacer"/>
-  <include name="title_text_focused_with_icon"/>
-</draw_ops>
-
-<draw_ops name="title_utility">
-  <include name="title_spacer"/>
-  <include name="title_text_no_icon"/>
-</draw_ops>
-
-<draw_ops name="title_utility_focused">
-  <include name="title_gradient"/>
-  <include name="title_spacer"/>
-  <include name="title_text_focused_no_icon"/>
-</draw_ops>
-
-<frame_style name="normal_unfocused" geometry="normal">
-  <piece position="entire_background" draw_ops="background_unfocused"/>
-  <piece position="title" draw_ops="title_normal"/>
-
-  <!-- we don't specify for prelight, so normal is used -->
-  <button function="left_left_background" state="pressed" draw_ops="button_pressed_bg"/>
-  <button function="left_middle_background" state="pressed" draw_ops="button_pressed_bg"/>
-  <button function="left_right_background" state="pressed" draw_ops="button_pressed_bg"/>
-  <button function="right_left_background" state="pressed" draw_ops="button_pressed_bg"/>
-  <button function="right_middle_background" state="pressed" draw_ops="button_pressed_bg"/>
-  <button function="right_right_background" state="pressed" draw_ops="button_pressed_bg"/>
-
-  <button function="close" state="normal" draw_ops="close_button"/>
-  <button function="close" state="pressed" draw_ops="close_button_pressed"/>
-  <button function="minimize" state="normal" draw_ops="minimize_button"/>
-  <button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
-  <button function="maximize" state="normal" draw_ops="maximize_button"/>
-  <button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
-  <button function="menu" state="normal" draw_ops="menu_button"/>
-  <button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
-</frame_style>
-
-<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="focus_background"/>
-  <piece position="title" draw_ops="title_focused"/>
-</frame_style>
-
-<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="blank"/>
-  <button function="maximize" state="normal" draw_ops="restore_button"/>
-  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
-  <piece position="entire_background" draw_ops="focus_outline"/>
-  <button function="maximize" state="normal" draw_ops="restore_button"/>
-  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
-  <piece position="title" draw_ops="title_utility"/>
-</frame_style>
-
-<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
-  <piece position="title" draw_ops="title_utility_focused"/>
-</frame_style>
-
-<frame_style name="border" geometry="border" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="outer_bevel"/>
-  <piece position="title" draw_ops="blank"/>
-</frame_style>
-
-<frame_style_set name="normal">
-<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
-<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
-<frame focus="yes" state="maximized" style="maximized_focused"/>
-<frame focus="no" state="maximized" style="maximized_unfocused"/>
-<frame focus="yes" state="shaded" style="normal_focused"/>
-<frame focus="no" state="shaded" style="normal_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="utility" parent="normal">
-<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
-<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
-<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
-<frame focus="yes" state="maximized" style="utility_focused"/>
-<frame focus="no" state="maximized" style="utility_unfocused"/>
-<frame focus="yes" state="shaded" style="utility_focused"/>
-<frame focus="no" state="shaded" style="utility_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="border">
-<frame focus="yes" state="normal" resize="both" style="border"/>
-<frame focus="no" state="normal" resize="both" style="border"/>
-<frame focus="yes" state="maximized" style="border"/>
-<frame focus="no" state="maximized" style="border"/>
-<frame focus="yes" state="shaded" style="border"/>
-<frame focus="no" state="shaded" style="border"/>
-<frame focus="yes" state="maximized_and_shaded" style="border"/>
-<frame focus="no" state="maximized_and_shaded" style="border"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="normal"/>
-<window type="modal_dialog" style_set="normal"/>
-<window type="menu" style_set="normal"/>
-<window type="utility" style_set="utility"/>
-<window type="border" style_set="border"/>
-
-<menu_icon function="close" state="normal" draw_ops="close_button"/>
-<menu_icon function="maximize" state="normal" draw_ops="maximize_button"/>
-<menu_icon function="unmaximize" state="normal" draw_ops="restore_button"/>
-<menu_icon function="minimize" state="normal" draw_ops="minimize_button"/>
-
-</metacity_theme>
diff --git a/src/themes/Bright/metacity-theme-1.xml b/src/themes/Bright/metacity-theme-1.xml
deleted file mode 100644
index a55f446..0000000
--- a/src/themes/Bright/metacity-theme-1.xml
+++ /dev/null
@@ -1,376 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-<info>
-  <name>Bright</name>
-  <author>Gaute Lindkvist &lt;lindkvis@linpro.no&gt;</author>
-  <copyright>&#194; Havoc Pennington, 2002 for Atlanta. &#194; Gaute Lindkvist, 2002 for modifications</copyright>
-  <date>February 3, 2002</date>
-  <description>Simple theme based on Havoc Pennington's Atlanta</description>
-</info>
-
-<frame_geometry name="normal">
-  <distance name="left_width" value="6"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="7"/>
-  <distance name="left_titlebar_edge" value="6"/>
-  <distance name="right_titlebar_edge" value="6"/>
-  <distance name="button_width" value="15"/>
-  <distance name="button_height" value="15"/>
-  <distance name="title_vertical_pad" value="4"/>
-  <border name="title_border" left="3" right="4" top="4" bottom="3"/>
-  <border name="button_border" left="1" right="2" top="2" bottom="1"/>
-</frame_geometry>
-
-<!-- strip borders off the normal geometry -->
-<frame_geometry name="normal_small_borders" parent="normal">
-  <distance name="left_width" value="4"/>
-  <distance name="right_width" value="4"/>
-  <distance name="bottom_height" value="5"/>
-  <distance name="left_titlebar_edge" value="4"/>
-  <distance name="right_titlebar_edge" value="4"/>
-</frame_geometry>
-
-<frame_geometry name="utility" title_scale="xx-small">
-  <distance name="left_width" value="3"/>
-  <distance name="right_width" value="3"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="3"/>
-  <distance name="right_titlebar_edge" value="3"/>
-  <distance name="button_width" value="11"/>
-  <distance name="button_height" value="11"/>
-  <distance name="title_vertical_pad" value="1"/>
-  <border name="title_border" left="3" right="4" top="3" bottom="3"/>
-  <border name="button_border" left="0" right="0" top="1" bottom="1"/>
-</frame_geometry>
-
-<frame_geometry name="border" has_title="false">
-  <distance name="left_width" value="4"/>
-  <distance name="right_width" value="4"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-  <distance name="button_width" value="0"/>
-  <distance name="button_height" value="0"/>
-  <distance name="title_vertical_pad" value="4"/>
-  <border name="title_border" left="0" right="0" top="0" bottom="0"/>
-  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- define constants -->
-<constant name="ArrowWidth" value="7"/>
-<constant name="ArrowHeight" value="5"/>
-<constant name="ButtonIPad" value="3"/>
-<constant name="ThickLineWidth" value="3"/>
-<constant name="IconTitleSpacing" value="2"/>
-<constant name="SpacerWidth" value="7"/>
-<constant name="SpacerHeight" value="11"/>
-
-<!-- Buttons -->
-
-<draw_ops name="button_normal_bg">
-<rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="0" width="width-2" height="height-2"/>
-<line color="#BBBBBB"
-        x1="1"
-        y1="height-1"
-        x2="width"
-        y2="height-1"
-        width="1"/>
-<line color="#BBBBBB"
-        x1="width-1"
-        y1="1"
-        x2="width-1"
-        y2="height-1"
-        width="1"/>
-<rectangle color="gtk:base[NORMAL]" filled="true"
-             x="1" y="1" width="width-3" height="height-3"/>
-</draw_ops>
-
-<draw_ops name="button_pressed_bg">
-  <gtk_box state="active" shadow="in" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="menu_button">
-  <clip x="0" y="0" width="width" height="height"/>
-<icon  x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
-         y="(height-mini_icon_height) / 2"
-         width="mini_icon_width-1" height="mini_icon_height-1"/>
-</draw_ops>
-
-<draw_ops name="menu_button_normal">
-  <include name="menu_button"/>
-</draw_ops>
-<draw_ops name="menu_button_pressed">
-  <include name="menu_button"/>
-</draw_ops>
-
-<draw_ops name="minimize_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="height - ButtonIPad - ThickLineWidth + 1"
-        x2="width - ButtonIPad-1"
-        y2="height - ButtonIPad - ThickLineWidth + 1"
-        width="2"/> <!-- FIXME allow a constant here -->
-</draw_ops>
-
-<draw_ops name="minimize_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="minimize_button"/>
-</draw_ops>
-
-<draw_ops name="minimize_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="minimize_button"/>
-</draw_ops>
-
-<draw_ops name="maximize_button">
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-2" height="height-ButtonIPad*2-2"/>
-  <line color="gtk:fg[NORMAL]" width="2"
-        x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad-1" y2="ButtonIPad+1"/>
-</draw_ops>
-
-<draw_ops name="maximize_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="maximize_button"/>
-</draw_ops>
-
-<draw_ops name="maximize_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="maximize_button"/>
-</draw_ops>
-
-<draw_ops name="mini_window_icon">
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="0" width="width-3" height="height-3"/>
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="0" width="width-3" height="height-3"/>
-  <line color="gtk:fg[NORMAL]" width="1"
-        x1="0" y1="1" x2="width-1" y2="1"/>
-</draw_ops>
-
-<draw_ops name="restore_button">
-  <include name="mini_window_icon" 
-           x="ButtonIPad" y="ButtonIPad" 
-           width="width - 5 - ButtonIPad"
-           height="height - 5 - ButtonIPad"/>
-  <include name="mini_window_icon" 
-           x="3 + ButtonIPad" y="3 + ButtonIPad"
-           width="width - 5 - ButtonIPad"
-           height="height - 5 - ButtonIPad"/>
-</draw_ops>
-
-<draw_ops name="restore_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="restore_button"/>
-</draw_ops>
-
-<draw_ops name="restore_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="restore_button"/>
-</draw_ops>
-
-<draw_ops name="close_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="ButtonIPad"
-        x2="width - ButtonIPad - 2" y2="height - ButtonIPad - 2"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="height - ButtonIPad - 2"
-        x2="width - ButtonIPad - 2" y2="ButtonIPad"/>
-</draw_ops>
-
-<draw_ops name="close_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="close_button"/>
-</draw_ops>
-
-<draw_ops name="close_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="close_button"/>
-</draw_ops>
-
-<draw_ops name="outer_bevel">
-  <rectangle color="gtk:fg[NORMAL]"
-             x="0" y="0" width="width-1" height="height-1"/>
-  <line color="gtk:light[NORMAL]"
-        x1="1" y1="1" x2="1" y2="height-2"/>
-  <line color="gtk:light[NORMAL]"
-        x1="1" y1="1" x2="width-2" y2="1"/>
-  <line color="gtk:dark[NORMAL]"
-        x1="width-2" y1="1" x2="width-2" y2="height-2"/>
-  <line color="gtk:dark[NORMAL]"
-        x1="1" y1="height-2" x2="width-2" y2="height-2"/>        
-</draw_ops>
-
-<draw_ops name="blank">
-<!-- nothing -->
-</draw_ops>
-
-<draw_ops name="focus_outline">
-  <rectangle color="gtk:fg[NORMAL]"
-             x="left_width-1" y="top_height-1"
-             width="width-left_width-right_width+1"
-             height="height-top_height-bottom_height+1"/>
-</draw_ops>
-
-<draw_ops name="focus_background">
-  <include name="outer_bevel"/>
-  <include name="focus_outline"/>
-</draw_ops>
-
-<draw_ops name="background_unfocused">
-  <include name="outer_bevel"/>
-  <include name="focus_outline"/>
-</draw_ops>
-
-<draw_ops name="title_box">
-<rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="1" width="width-SpacerWidth+3" height="height-2"/>
-<line color="#BBBBBB"
-        x1="2"
-        y1="height-2"
-        x2="width-SpacerWidth+2"
-        y2="height-2"
-        width="1"/>
-<line color="#BBBBBB"
-        x1="width-5"
-        y1="2"
-        x2="width-SpacerWidth+2"
-        y2="height-2"
-        width="1"/>
-<rectangle color="gtk:bg[SELECTED]" filled="true"
-	     x="1" y="2" width="width-5" height="height-3"/>
-</draw_ops>
-
-<draw_ops name="title_spacer">
-  <gtk_vline state="normal" x="width+1-SpacerWidth/2"
-             y1="(height-SpacerHeight)/2"
-             y2="height - (height-SpacerHeight)/2"/>
-</draw_ops>
-
-<draw_ops name="title_text_focused_no_icon">
-  <clip x="3" y="2" width="width-SpacerWidth-2" height="height-4"/>
-  <title color="gtk:fg[SELECTED]"
-         x="(3 `max` (width-title_width)) / 2+2"
-         y="((height - title_height) / 2) `max` 0"/>
-</draw_ops>
-
-<draw_ops name="title_text_no_icon">
-  <clip x="3" y="2" width="width-SpacerWidth-2" height="height-4"/>
-  <title color="gtk:fg[NORMAL]"
-         x="(3 `max` (width-title_width)) / 2+2"
-         y="((height - title_height) / 2) `max` 0"/>
-</draw_ops>
-
-<draw_ops name="title_normal">
-  <include name="title_text_no_icon"/>
-</draw_ops>
-
-<draw_ops name="title_focused">
-  <include name="title_box"/>
-  <include name="title_text_focused_no_icon"/>
-</draw_ops>
-
-<draw_ops name="title_utility">
-  <include name="title_spacer"/>
-  <include name="title_text_no_icon"/>
-</draw_ops>
-
-<draw_ops name="title_utility_focused">
-  <include name="title_box"/>
-  <include name="title_spacer"/>
-  <include name="title_text_focused_no_icon"/>
-</draw_ops>
-
-<frame_style name="normal_unfocused" geometry="normal">
-  <piece position="entire_background" draw_ops="background_unfocused"/>
-  <piece position="title" draw_ops="title_normal"/>
-
-  <!-- we don't specify for prelight, so normal is used -->
-  <button function="close" state="normal" draw_ops="close_button_normal"/>
-  <button function="close" state="pressed" draw_ops="close_button_pressed"/>
-  <button function="minimize" state="normal" draw_ops="minimize_button_normal"/>
-  <button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
-  <button function="maximize" state="normal" draw_ops="maximize_button_normal"/>
-  <button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
-  <button function="menu" state="normal" draw_ops="menu_button_normal"/>
-  <button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
-</frame_style>
-
-<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="focus_background"/>
-  <piece position="title" draw_ops="title_focused"/>
-</frame_style>
-
-<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="blank"/>
-  <button function="maximize" state="normal" draw_ops="restore_button_normal"/>
-  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
-  <piece position="entire_background" draw_ops="focus_outline"/>
-  <button function="maximize" state="normal" draw_ops="restore_button_normal"/>
-  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
-  <piece position="title" draw_ops="title_utility"/>
-</frame_style>
-
-<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
-  <piece position="title" draw_ops="title_utility_focused"/>
-</frame_style>
-
-<frame_style name="border" geometry="border" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="outer_bevel"/>
-  <piece position="title" draw_ops="blank"/>
-</frame_style>
-
-<frame_style_set name="normal">
-<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
-<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
-<frame focus="yes" state="maximized" style="maximized_focused"/>
-<frame focus="no" state="maximized" style="maximized_unfocused"/>
-<frame focus="yes" state="shaded" style="normal_focused"/>
-<frame focus="no" state="shaded" style="normal_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="utility" parent="normal">
-<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
-<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
-<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
-<frame focus="yes" state="maximized" style="utility_focused"/>
-<frame focus="no" state="maximized" style="utility_unfocused"/>
-<frame focus="yes" state="shaded" style="utility_focused"/>
-<frame focus="no" state="shaded" style="utility_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="border">
-<frame focus="yes" state="normal" resize="both" style="border"/>
-<frame focus="no" state="normal" resize="both" style="border"/>
-<frame focus="yes" state="maximized" style="border"/>
-<frame focus="no" state="maximized" style="border"/>
-<frame focus="yes" state="shaded" style="border"/>
-<frame focus="no" state="shaded" style="border"/>
-<frame focus="yes" state="maximized_and_shaded" style="border"/>
-<frame focus="no" state="maximized_and_shaded" style="border"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="normal"/>
-<window type="modal_dialog" style_set="normal"/>
-<window type="menu" style_set="normal"/>
-<window type="utility" style_set="utility"/>
-<window type="border" style_set="border"/>
-
-<menu_icon function="close" state="normal" draw_ops="close_button_normal"/>
-<menu_icon function="maximize" state="normal" draw_ops="maximize_button_normal"/>
-<menu_icon function="unmaximize" state="normal" draw_ops="restore_button_normal"/>
-<menu_icon function="minimize" state="normal" draw_ops="minimize_button_normal"/>
-
-</metacity_theme>
diff --git a/src/themes/Bright/metacity-theme-2.xml b/src/themes/Bright/metacity-theme-2.xml
deleted file mode 100644
index 1a43fe1..0000000
--- a/src/themes/Bright/metacity-theme-2.xml
+++ /dev/null
@@ -1,546 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-<info>
-  <name>Bright</name>
-  <author>Gaute Lindkvist &lt;lindkvis@linpro.no&gt;</author>
-  <copyright>&#194; Havoc Pennington, 2002 for Atlanta. &#194; Gaute Lindkvist, 2002 for modifications</copyright>
-  <date>February 3, 2002</date>
-  <description>Simple theme based on Havoc Pennington's Atlanta</description>
-</info>
-
-<frame_geometry name="normal">
-  <distance name="left_width" value="6"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="7"/>
-  <distance name="left_titlebar_edge" value="6"/>
-  <distance name="right_titlebar_edge" value="6"/>
-  <distance name="button_width" value="15"/>
-  <distance name="button_height" value="15"/>
-  <distance name="title_vertical_pad" value="4"/>
-  <border name="title_border" left="3" right="4" top="4" bottom="3"/>
-  <border name="button_border" left="1" right="2" top="2" bottom="1"/>
-</frame_geometry>
-
-<!-- strip borders off the normal geometry -->
-<frame_geometry name="normal_small_borders" parent="normal">
-  <distance name="left_width" value="4"/>
-  <distance name="right_width" value="4"/>
-  <distance name="bottom_height" value="5"/>
-  <distance name="left_titlebar_edge" value="4"/>
-  <distance name="right_titlebar_edge" value="4"/>
-</frame_geometry>
-
-<frame_geometry name="utility" title_scale="xx-small">
-  <distance name="left_width" value="3"/>
-  <distance name="right_width" value="3"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="3"/>
-  <distance name="right_titlebar_edge" value="3"/>
-  <distance name="button_width" value="11"/>
-  <distance name="button_height" value="11"/>
-  <distance name="title_vertical_pad" value="1"/>
-  <border name="title_border" left="3" right="4" top="3" bottom="3"/>
-  <border name="button_border" left="0" right="0" top="1" bottom="1"/>
-</frame_geometry>
-
-<frame_geometry name="border" has_title="false">
-  <distance name="left_width" value="4"/>
-  <distance name="right_width" value="4"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-  <distance name="button_width" value="0"/>
-  <distance name="button_height" value="0"/>
-  <distance name="title_vertical_pad" value="4"/>
-  <border name="title_border" left="0" right="0" top="0" bottom="0"/>
-  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- define constants -->
-<constant name="ArrowWidth" value="7"/>
-<constant name="ArrowHeight" value="5"/>
-<constant name="ButtonIPad" value="3"/>
-<constant name="ThickLineWidth" value="3"/>
-<constant name="IconTitleSpacing" value="2"/>
-<constant name="SpacerWidth" value="7"/>
-<constant name="SpacerHeight" value="11"/>
-
-<!-- Buttons -->
-
-<draw_ops name="button_normal_bg">
-<rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="0" width="width-2" height="height-2"/>
-<line color="#BBBBBB"
-        x1="1"
-        y1="height-1"
-        x2="width"
-        y2="height-1"
-        width="1"/>
-<line color="#BBBBBB"
-        x1="width-1"
-        y1="1"
-        x2="width-1"
-        y2="height-1"
-        width="1"/>
-<rectangle color="gtk:base[NORMAL]" filled="true"
-             x="1" y="1" width="width-3" height="height-3"/>
-</draw_ops>
-
-<draw_ops name="button_pressed_bg">
-  <gtk_box state="active" shadow="in" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="menu_button">
-  <clip x="0" y="0" width="width" height="height"/>
-<icon  x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
-         y="(height-mini_icon_height) / 2"
-         width="mini_icon_width-1" height="mini_icon_height-1"/>
-</draw_ops>
-
-<draw_ops name="menu_button_normal">
-  <include name="menu_button"/>
-</draw_ops>
-<draw_ops name="menu_button_pressed">
-  <include name="menu_button"/>
-</draw_ops>
-
-<draw_ops name="minimize_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="height - ButtonIPad - ThickLineWidth + 1"
-        x2="width - ButtonIPad-1"
-        y2="height - ButtonIPad - ThickLineWidth + 1"
-        width="ThickLineWidth"/>
-</draw_ops>
-
-<draw_ops name="minimize_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="minimize_button"/>
-</draw_ops>
-
-<draw_ops name="minimize_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="minimize_button"/>
-</draw_ops>
-
-<draw_ops name="maximize_button">
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-2" height="height-ButtonIPad*2-2"/>
-  <line color="gtk:fg[NORMAL]" width="2"
-        x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad-1" y2="ButtonIPad+1"/>
-</draw_ops>
-
-<draw_ops name="maximize_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="maximize_button"/>
-</draw_ops>
-
-<draw_ops name="maximize_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="maximize_button"/>
-</draw_ops>
-
-<draw_ops name="mini_window_icon">
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="0" width="width-3" height="height-3"/>
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="0" width="width-3" height="height-3"/>
-  <line color="gtk:fg[NORMAL]" width="1"
-        x1="0" y1="1" x2="width-1" y2="1"/>
-</draw_ops>
-
-<draw_ops name="restore_button">
-  <include name="mini_window_icon" 
-           x="ButtonIPad" y="ButtonIPad" 
-           width="width - 5 - ButtonIPad"
-           height="height - 5 - ButtonIPad"/>
-  <include name="mini_window_icon" 
-           x="3 + ButtonIPad" y="3 + ButtonIPad"
-           width="width - 5 - ButtonIPad"
-           height="height - 5 - ButtonIPad"/>
-</draw_ops>
-
-<draw_ops name="restore_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="restore_button"/>
-</draw_ops>
-
-<draw_ops name="restore_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="restore_button"/>
-</draw_ops>
-
-<draw_ops name="close_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="ButtonIPad"
-        x2="width - ButtonIPad - 2" y2="height - ButtonIPad - 2"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="height - ButtonIPad - 2"
-        x2="width - ButtonIPad - 2" y2="ButtonIPad"/>
-</draw_ops>
-
-<draw_ops name="shade_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="ButtonIPad"
-        x2="width - ButtonIPad-1"
-        y2="ButtonIPad"
-        width="ThickLineWidth"/>
-</draw_ops>
-
-<draw_ops name="unshade_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="ButtonIPad"
-        x2="width - ButtonIPad-1"
-        y2="ButtonIPad"
-        width="ThickLineWidth"/>
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-        x="ButtonIPad"
-        y="ButtonIPad*2"
-        width="width - ButtonIPad*2-1"
-        height="height - ButtonIPad*3-1"/>
-</draw_ops>
-
-<draw_ops name="above_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="height/2"
-        x2="ButtonIPad + 2"
-        y2="height/2"
-        width="ThickLineWidth"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="width - ButtonIPad-1"
-        y1="height/2"
-        x2="width - ButtonIPad-3"
-        y2="height/2"
-        width="ThickLineWidth"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="width/2-1"
-        y1="height - ButtonIPad - 2"
-        x2="width/2+1"
-        y2="height - ButtonIPad - 2"
-        width="ThickLineWidth"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="ButtonIPad"
-        x2="width - ButtonIPad-1"
-        y2="ButtonIPad"
-        width="ThickLineWidth"/>
-</draw_ops>
-
-<draw_ops name="unabove_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="height/2"
-        x2="ButtonIPad + 2"
-        y2="height/2"
-        width="ThickLineWidth"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="width - ButtonIPad-1"
-        y1="height/2"
-        x2="width - ButtonIPad-3"
-        y2="height/2"
-        width="ThickLineWidth"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="width/2-1"
-        y1="height - ButtonIPad - 2"
-        x2="width/2+1"
-        y2="height - ButtonIPad - 2"
-        width="ThickLineWidth"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="width/2-1"
-        y1="ButtonIPad"
-        x2="width/2+1"
-        y2="ButtonIPad"
-        width="ThickLineWidth"/>
-</draw_ops>
-
-<draw_ops name="stick_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="ButtonIPad"
-        x2="ButtonIPad" y2="height - ButtonIPad - 2"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="height/2-1"
-        x2="width - ButtonIPad - 2" y2="height/2-1"/>
-</draw_ops>
-
-<draw_ops name="unstick_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="width/2" y1="ButtonIPad"
-        x2="width/2" y2="height - ButtonIPad - 2"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="width/2" y1="height/2-1"
-        x2="width - ButtonIPad - 2" y2="height/2-1"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="width-ButtonIPad-2" y1="height/2-3"
-        x2="width-ButtonIPad-2" y2="height/2+2"/>
-</draw_ops>
-
-<draw_ops name="close_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="close_button"/>
-</draw_ops>
-
-<draw_ops name="close_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="close_button"/>
-</draw_ops>
-
-<draw_ops name="shade_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="shade_button"/>
-</draw_ops>
-
-<draw_ops name="shade_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="shade_button"/>
-</draw_ops>
-
-<draw_ops name="unshade_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="unshade_button"/>
-</draw_ops>
-
-<draw_ops name="unshade_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="unshade_button"/>
-</draw_ops>
-
-<draw_ops name="above_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="above_button"/>
-</draw_ops>
-
-<draw_ops name="above_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="above_button"/>
-</draw_ops>
-
-<draw_ops name="unabove_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="unabove_button"/>
-</draw_ops>
-
-<draw_ops name="unabove_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="unabove_button"/>
-</draw_ops>
-
-<draw_ops name="stick_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="stick_button"/>
-</draw_ops>
-
-<draw_ops name="stick_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="stick_button"/>
-</draw_ops>
-
-<draw_ops name="unstick_button_normal">
-  <include name="button_normal_bg"/>
-  <include name="unstick_button"/>
-</draw_ops>
-
-<draw_ops name="unstick_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="unstick_button"/>
-</draw_ops>
-
-<draw_ops name="outer_bevel">
-  <rectangle color="gtk:fg[NORMAL]"
-             x="0" y="0" width="width-1" height="height-1"/>
-  <line color="gtk:light[NORMAL]"
-        x1="1" y1="1" x2="1" y2="height-2"/>
-  <line color="gtk:light[NORMAL]"
-        x1="1" y1="1" x2="width-2" y2="1"/>
-  <line color="gtk:dark[NORMAL]"
-        x1="width-2" y1="1" x2="width-2" y2="height-2"/>
-  <line color="gtk:dark[NORMAL]"
-        x1="1" y1="height-2" x2="width-2" y2="height-2"/>        
-</draw_ops>
-
-<draw_ops name="blank">
-<!-- nothing -->
-</draw_ops>
-
-<draw_ops name="focus_outline">
-  <rectangle color="gtk:fg[NORMAL]"
-             x="left_width-1" y="top_height-1"
-             width="width-left_width-right_width+1"
-             height="height-top_height-bottom_height+1"/>
-</draw_ops>
-
-<draw_ops name="focus_background">
-  <include name="outer_bevel"/>
-  <include name="focus_outline"/>
-</draw_ops>
-
-<draw_ops name="background_unfocused">
-  <include name="outer_bevel"/>
-  <include name="focus_outline"/>
-</draw_ops>
-
-<draw_ops name="title_box">
-<rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="1" width="width-SpacerWidth+3" height="height-2"/>
-<line color="#BBBBBB"
-        x1="2"
-        y1="height-2"
-        x2="width-SpacerWidth+2"
-        y2="height-2"
-        width="1"/>
-<line color="#BBBBBB"
-        x1="width-5"
-        y1="2"
-        x2="width-SpacerWidth+2"
-        y2="height-2"
-        width="1"/>
-<rectangle color="gtk:bg[SELECTED]" filled="true"
-	     x="1" y="2" width="width-5" height="height-3"/>
-</draw_ops>
-
-<draw_ops name="title_spacer">
-  <gtk_vline state="normal" x="width+1-SpacerWidth/2"
-             y1="(height-SpacerHeight)/2"
-             y2="height - (height-SpacerHeight)/2"/>
-</draw_ops>
-
-<draw_ops name="title_text_focused_no_icon">
-  <clip x="3" y="2" width="width-SpacerWidth-2" height="height-4"/>
-  <title color="gtk:fg[SELECTED]"
-         x="(3 `max` (width-title_width)) / 2+2"
-         y="((height - title_height) / 2) `max` 0"/>
-</draw_ops>
-
-<draw_ops name="title_text_no_icon">
-  <clip x="3" y="2" width="width-SpacerWidth-2" height="height-4"/>
-  <title color="gtk:fg[NORMAL]"
-         x="(3 `max` (width-title_width)) / 2+2"
-         y="((height - title_height) / 2) `max` 0"/>
-</draw_ops>
-
-<draw_ops name="title_normal">
-  <include name="title_text_no_icon"/>
-</draw_ops>
-
-<draw_ops name="title_focused">
-  <include name="title_box"/>
-  <include name="title_text_focused_no_icon"/>
-</draw_ops>
-
-<draw_ops name="title_utility">
-  <include name="title_spacer"/>
-  <include name="title_text_no_icon"/>
-</draw_ops>
-
-<draw_ops name="title_utility_focused">
-  <include name="title_box"/>
-  <include name="title_spacer"/>
-  <include name="title_text_focused_no_icon"/>
-</draw_ops>
-
-<frame_style name="normal_unfocused" geometry="normal">
-  <piece position="entire_background" draw_ops="background_unfocused"/>
-  <piece position="title" draw_ops="title_normal"/>
-
-  <!-- we don't specify for prelight, so normal is used -->
-  <button function="close" state="normal" draw_ops="close_button_normal"/>
-  <button function="close" state="pressed" draw_ops="close_button_pressed"/>
-  <button function="minimize" state="normal" draw_ops="minimize_button_normal"/>
-  <button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
-  <button function="maximize" state="normal" draw_ops="maximize_button_normal"/>
-  <button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
-  <button function="menu" state="normal" draw_ops="menu_button_normal"/>
-  <button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
-  <button function="shade" state="normal" draw_ops="shade_button_normal"/>
-  <button function="shade" state="pressed" draw_ops="shade_button_pressed"/>
-  <button function="unshade" state="normal" draw_ops="unshade_button_normal"/>
-  <button function="unshade" state="pressed" draw_ops="unshade_button_pressed"/>
-  <button function="above" state="normal" draw_ops="above_button_normal"/>
-  <button function="above" state="pressed" draw_ops="above_button_pressed"/>
-  <button function="unabove" state="normal" draw_ops="unabove_button_normal"/>
-  <button function="unabove" state="pressed" draw_ops="unabove_button_pressed"/>
-  <button function="stick" state="normal" draw_ops="stick_button_normal"/>
-  <button function="stick" state="pressed" draw_ops="stick_button_pressed"/>
-  <button function="unstick" state="normal" draw_ops="unstick_button_normal"/>
-  <button function="unstick" state="pressed" draw_ops="unstick_button_pressed"/>
-</frame_style>
-
-<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="focus_background"/>
-  <piece position="title" draw_ops="title_focused"/>
-</frame_style>
-
-<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="blank"/>
-  <button function="maximize" state="normal" draw_ops="restore_button_normal"/>
-  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
-  <piece position="entire_background" draw_ops="focus_outline"/>
-  <button function="maximize" state="normal" draw_ops="restore_button_normal"/>
-  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
-  <piece position="title" draw_ops="title_utility"/>
-</frame_style>
-
-<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
-  <piece position="title" draw_ops="title_utility_focused"/>
-</frame_style>
-
-<frame_style name="border" geometry="border" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="outer_bevel"/>
-  <piece position="title" draw_ops="blank"/>
-</frame_style>
-
-<frame_style_set name="normal">
-<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
-<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
-<frame focus="yes" state="maximized" style="maximized_focused"/>
-<frame focus="no" state="maximized" style="maximized_unfocused"/>
-<frame focus="yes" state="shaded" style="normal_focused"/>
-<frame focus="no" state="shaded" style="normal_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="utility" parent="normal">
-<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
-<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
-<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
-<frame focus="yes" state="maximized" style="utility_focused"/>
-<frame focus="no" state="maximized" style="utility_unfocused"/>
-<frame focus="yes" state="shaded" style="utility_focused"/>
-<frame focus="no" state="shaded" style="utility_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="border">
-<frame focus="yes" state="normal" resize="both" style="border"/>
-<frame focus="no" state="normal" resize="both" style="border"/>
-<frame focus="yes" state="maximized" style="border"/>
-<frame focus="no" state="maximized" style="border"/>
-<frame focus="yes" state="shaded" style="border"/>
-<frame focus="no" state="shaded" style="border"/>
-<frame focus="yes" state="maximized_and_shaded" style="border"/>
-<frame focus="no" state="maximized_and_shaded" style="border"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="normal"/>
-<window type="modal_dialog" style_set="normal"/>
-<window type="menu" style_set="normal"/>
-<window type="utility" style_set="utility"/>
-<window type="border" style_set="border"/>
-
-<menu_icon function="close" state="normal" draw_ops="close_button_normal"/>
-<menu_icon function="maximize" state="normal" draw_ops="maximize_button_normal"/>
-<menu_icon function="unmaximize" state="normal" draw_ops="restore_button_normal"/>
-<menu_icon function="minimize" state="normal" draw_ops="minimize_button_normal"/>
-
-</metacity_theme>
diff --git a/src/themes/Crux/active-above-button.png b/src/themes/Crux/active-above-button.png
deleted file mode 100644
index 0eec82b..0000000
Binary files a/src/themes/Crux/active-above-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-border-top-left-border.png b/src/themes/Crux/active-border-top-left-border.png
deleted file mode 100644
index 2d61acf..0000000
Binary files a/src/themes/Crux/active-border-top-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-border-top-right-border.png b/src/themes/Crux/active-border-top-right-border.png
deleted file mode 100644
index 9797c0f..0000000
Binary files a/src/themes/Crux/active-border-top-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-bottom-left-border.png b/src/themes/Crux/active-bottom-left-border.png
deleted file mode 100644
index f22ea1a..0000000
Binary files a/src/themes/Crux/active-bottom-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-bottom-left-corner.png b/src/themes/Crux/active-bottom-left-corner.png
deleted file mode 100644
index de8fe86..0000000
Binary files a/src/themes/Crux/active-bottom-left-corner.png and /dev/null differ
diff --git a/src/themes/Crux/active-bottom-mid-left-border.png b/src/themes/Crux/active-bottom-mid-left-border.png
deleted file mode 100644
index 7eec69f..0000000
Binary files a/src/themes/Crux/active-bottom-mid-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-bottom-mid-right-border.png b/src/themes/Crux/active-bottom-mid-right-border.png
deleted file mode 100644
index 63da8e9..0000000
Binary files a/src/themes/Crux/active-bottom-mid-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-bottom-right-border.png b/src/themes/Crux/active-bottom-right-border.png
deleted file mode 100644
index 61a4f56..0000000
Binary files a/src/themes/Crux/active-bottom-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-bottom-right-corner.png b/src/themes/Crux/active-bottom-right-corner.png
deleted file mode 100644
index 5759446..0000000
Binary files a/src/themes/Crux/active-bottom-right-corner.png and /dev/null differ
diff --git a/src/themes/Crux/active-button-prelight.png b/src/themes/Crux/active-button-prelight.png
deleted file mode 100644
index 6da2ae2..0000000
Binary files a/src/themes/Crux/active-button-prelight.png and /dev/null differ
diff --git a/src/themes/Crux/active-button-pressed.png b/src/themes/Crux/active-button-pressed.png
deleted file mode 100644
index 4fb94aa..0000000
Binary files a/src/themes/Crux/active-button-pressed.png and /dev/null differ
diff --git a/src/themes/Crux/active-button.png b/src/themes/Crux/active-button.png
deleted file mode 100644
index cd93b8c..0000000
Binary files a/src/themes/Crux/active-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-close-button.png b/src/themes/Crux/active-close-button.png
deleted file mode 100644
index bfbfd14..0000000
Binary files a/src/themes/Crux/active-close-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-left-border.png b/src/themes/Crux/active-left-border.png
deleted file mode 100644
index 89b47f4..0000000
Binary files a/src/themes/Crux/active-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-left-top-border-shaded.png b/src/themes/Crux/active-left-top-border-shaded.png
deleted file mode 100644
index a9e775a..0000000
Binary files a/src/themes/Crux/active-left-top-border-shaded.png and /dev/null differ
diff --git a/src/themes/Crux/active-left-top-border.png b/src/themes/Crux/active-left-top-border.png
deleted file mode 100644
index 24a13ea..0000000
Binary files a/src/themes/Crux/active-left-top-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-maximize-button.png b/src/themes/Crux/active-maximize-button.png
deleted file mode 100644
index 870e2cb..0000000
Binary files a/src/themes/Crux/active-maximize-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-menu-button-prelight.png b/src/themes/Crux/active-menu-button-prelight.png
deleted file mode 100644
index db0a88c..0000000
Binary files a/src/themes/Crux/active-menu-button-prelight.png and /dev/null differ
diff --git a/src/themes/Crux/active-menu-button-pressed.png b/src/themes/Crux/active-menu-button-pressed.png
deleted file mode 100644
index 8ac8201..0000000
Binary files a/src/themes/Crux/active-menu-button-pressed.png and /dev/null differ
diff --git a/src/themes/Crux/active-menu-button.png b/src/themes/Crux/active-menu-button.png
deleted file mode 100644
index de8e1a7..0000000
Binary files a/src/themes/Crux/active-menu-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-minimize-button.png b/src/themes/Crux/active-minimize-button.png
deleted file mode 100644
index ea740ff..0000000
Binary files a/src/themes/Crux/active-minimize-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-restore-button.png b/src/themes/Crux/active-restore-button.png
deleted file mode 100644
index ec7259e..0000000
Binary files a/src/themes/Crux/active-restore-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-right-border.png b/src/themes/Crux/active-right-border.png
deleted file mode 100644
index 2dea03e..0000000
Binary files a/src/themes/Crux/active-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-right-top-border-shaded.png b/src/themes/Crux/active-right-top-border-shaded.png
deleted file mode 100644
index cf7ac2e..0000000
Binary files a/src/themes/Crux/active-right-top-border-shaded.png and /dev/null differ
diff --git a/src/themes/Crux/active-right-top-border.png b/src/themes/Crux/active-right-top-border.png
deleted file mode 100644
index eab9cae..0000000
Binary files a/src/themes/Crux/active-right-top-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-shade-button.png b/src/themes/Crux/active-shade-button.png
deleted file mode 100644
index 2c86470..0000000
Binary files a/src/themes/Crux/active-shade-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-stick-button.png b/src/themes/Crux/active-stick-button.png
deleted file mode 100644
index 2bb224c..0000000
Binary files a/src/themes/Crux/active-stick-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-center-left.png b/src/themes/Crux/active-top-center-left.png
deleted file mode 100644
index 9d43fc2..0000000
Binary files a/src/themes/Crux/active-top-center-left.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-center-mid-left.png b/src/themes/Crux/active-top-center-mid-left.png
deleted file mode 100644
index 927d50e..0000000
Binary files a/src/themes/Crux/active-top-center-mid-left.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-center-mid-right.png b/src/themes/Crux/active-top-center-mid-right.png
deleted file mode 100644
index 8cea6f6..0000000
Binary files a/src/themes/Crux/active-top-center-mid-right.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-center-right.png b/src/themes/Crux/active-top-center-right.png
deleted file mode 100644
index e471c36..0000000
Binary files a/src/themes/Crux/active-top-center-right.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-left-border.png b/src/themes/Crux/active-top-left-border.png
deleted file mode 100644
index fa4a6f5..0000000
Binary files a/src/themes/Crux/active-top-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-left-corner.png b/src/themes/Crux/active-top-left-corner.png
deleted file mode 100644
index 477e46a..0000000
Binary files a/src/themes/Crux/active-top-left-corner.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-mid-left-border.png b/src/themes/Crux/active-top-mid-left-border.png
deleted file mode 100644
index 35a42fe..0000000
Binary files a/src/themes/Crux/active-top-mid-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-mid-right-border.png b/src/themes/Crux/active-top-mid-right-border.png
deleted file mode 100644
index 1fa1650..0000000
Binary files a/src/themes/Crux/active-top-mid-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-right-border.png b/src/themes/Crux/active-top-right-border.png
deleted file mode 100644
index b3f07f2..0000000
Binary files a/src/themes/Crux/active-top-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/active-top-right-corner.png b/src/themes/Crux/active-top-right-corner.png
deleted file mode 100644
index 199a378..0000000
Binary files a/src/themes/Crux/active-top-right-corner.png and /dev/null differ
diff --git a/src/themes/Crux/active-unabove-button.png b/src/themes/Crux/active-unabove-button.png
deleted file mode 100644
index af1104c..0000000
Binary files a/src/themes/Crux/active-unabove-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-unshade-button.png b/src/themes/Crux/active-unshade-button.png
deleted file mode 100644
index ddaf11f..0000000
Binary files a/src/themes/Crux/active-unshade-button.png and /dev/null differ
diff --git a/src/themes/Crux/active-unstick-button.png b/src/themes/Crux/active-unstick-button.png
deleted file mode 100644
index 2936b16..0000000
Binary files a/src/themes/Crux/active-unstick-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-above-button.png b/src/themes/Crux/inactive-above-button.png
deleted file mode 100644
index dd6de03..0000000
Binary files a/src/themes/Crux/inactive-above-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-border-top-left-border.png b/src/themes/Crux/inactive-border-top-left-border.png
deleted file mode 100644
index 0f6a1b8..0000000
Binary files a/src/themes/Crux/inactive-border-top-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-border-top-right-border.png b/src/themes/Crux/inactive-border-top-right-border.png
deleted file mode 100644
index 0e37f50..0000000
Binary files a/src/themes/Crux/inactive-border-top-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-bottom-left-border.png b/src/themes/Crux/inactive-bottom-left-border.png
deleted file mode 100644
index ea174d6..0000000
Binary files a/src/themes/Crux/inactive-bottom-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-bottom-left-corner.png b/src/themes/Crux/inactive-bottom-left-corner.png
deleted file mode 100644
index f6f4363..0000000
Binary files a/src/themes/Crux/inactive-bottom-left-corner.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-bottom-mid-border.png b/src/themes/Crux/inactive-bottom-mid-border.png
deleted file mode 100644
index b24ea23..0000000
Binary files a/src/themes/Crux/inactive-bottom-mid-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-bottom-right-border.png b/src/themes/Crux/inactive-bottom-right-border.png
deleted file mode 100644
index 3302e01..0000000
Binary files a/src/themes/Crux/inactive-bottom-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-bottom-right-corner.png b/src/themes/Crux/inactive-bottom-right-corner.png
deleted file mode 100644
index 0fddaac..0000000
Binary files a/src/themes/Crux/inactive-bottom-right-corner.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-button-prelight.png b/src/themes/Crux/inactive-button-prelight.png
deleted file mode 100644
index 070a164..0000000
Binary files a/src/themes/Crux/inactive-button-prelight.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-button-pressed.png b/src/themes/Crux/inactive-button-pressed.png
deleted file mode 100644
index 88f3f8a..0000000
Binary files a/src/themes/Crux/inactive-button-pressed.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-button.png b/src/themes/Crux/inactive-button.png
deleted file mode 100644
index e74564d..0000000
Binary files a/src/themes/Crux/inactive-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-close-button.png b/src/themes/Crux/inactive-close-button.png
deleted file mode 100644
index 2f9d0a5..0000000
Binary files a/src/themes/Crux/inactive-close-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-left-border.png b/src/themes/Crux/inactive-left-border.png
deleted file mode 100644
index 3f7ad16..0000000
Binary files a/src/themes/Crux/inactive-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-left-top-border-shaded.png b/src/themes/Crux/inactive-left-top-border-shaded.png
deleted file mode 100644
index 177fa41..0000000
Binary files a/src/themes/Crux/inactive-left-top-border-shaded.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-left-top-border.png b/src/themes/Crux/inactive-left-top-border.png
deleted file mode 100644
index 74fa074..0000000
Binary files a/src/themes/Crux/inactive-left-top-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-maximize-button.png b/src/themes/Crux/inactive-maximize-button.png
deleted file mode 100644
index 7324467..0000000
Binary files a/src/themes/Crux/inactive-maximize-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-menu-button-prelight.png b/src/themes/Crux/inactive-menu-button-prelight.png
deleted file mode 100644
index 8c45a1b..0000000
Binary files a/src/themes/Crux/inactive-menu-button-prelight.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-menu-button-pressed.png b/src/themes/Crux/inactive-menu-button-pressed.png
deleted file mode 100644
index 757ff7c..0000000
Binary files a/src/themes/Crux/inactive-menu-button-pressed.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-menu-button.png b/src/themes/Crux/inactive-menu-button.png
deleted file mode 100644
index 89b2a44..0000000
Binary files a/src/themes/Crux/inactive-menu-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-minimize-button.png b/src/themes/Crux/inactive-minimize-button.png
deleted file mode 100644
index 6cdac56..0000000
Binary files a/src/themes/Crux/inactive-minimize-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-restore-button.png b/src/themes/Crux/inactive-restore-button.png
deleted file mode 100644
index bafa296..0000000
Binary files a/src/themes/Crux/inactive-restore-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-right-border.png b/src/themes/Crux/inactive-right-border.png
deleted file mode 100644
index 0404cc4..0000000
Binary files a/src/themes/Crux/inactive-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-right-top-border-shaded.png b/src/themes/Crux/inactive-right-top-border-shaded.png
deleted file mode 100644
index 9295527..0000000
Binary files a/src/themes/Crux/inactive-right-top-border-shaded.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-right-top-border.png b/src/themes/Crux/inactive-right-top-border.png
deleted file mode 100644
index c1882e9..0000000
Binary files a/src/themes/Crux/inactive-right-top-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-shade-button.png b/src/themes/Crux/inactive-shade-button.png
deleted file mode 100644
index 93ff14b..0000000
Binary files a/src/themes/Crux/inactive-shade-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-stick-button.png b/src/themes/Crux/inactive-stick-button.png
deleted file mode 100644
index 14ffd9e..0000000
Binary files a/src/themes/Crux/inactive-stick-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-top-center-left.png b/src/themes/Crux/inactive-top-center-left.png
deleted file mode 100644
index eaba479..0000000
Binary files a/src/themes/Crux/inactive-top-center-left.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-top-center-mid.png b/src/themes/Crux/inactive-top-center-mid.png
deleted file mode 100644
index 7346fbc..0000000
Binary files a/src/themes/Crux/inactive-top-center-mid.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-top-center-right.png b/src/themes/Crux/inactive-top-center-right.png
deleted file mode 100644
index 3a2e3a0..0000000
Binary files a/src/themes/Crux/inactive-top-center-right.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-top-left-border.png b/src/themes/Crux/inactive-top-left-border.png
deleted file mode 100644
index 8ebbdca..0000000
Binary files a/src/themes/Crux/inactive-top-left-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-top-left-corner.png b/src/themes/Crux/inactive-top-left-corner.png
deleted file mode 100644
index 1db1770..0000000
Binary files a/src/themes/Crux/inactive-top-left-corner.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-top-mid-border.png b/src/themes/Crux/inactive-top-mid-border.png
deleted file mode 100644
index 0ec3b26..0000000
Binary files a/src/themes/Crux/inactive-top-mid-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-top-right-border.png b/src/themes/Crux/inactive-top-right-border.png
deleted file mode 100644
index e86fddc..0000000
Binary files a/src/themes/Crux/inactive-top-right-border.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-top-right-corner.png b/src/themes/Crux/inactive-top-right-corner.png
deleted file mode 100644
index 7b13da3..0000000
Binary files a/src/themes/Crux/inactive-top-right-corner.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-unabove-button.png b/src/themes/Crux/inactive-unabove-button.png
deleted file mode 100644
index bc1052d..0000000
Binary files a/src/themes/Crux/inactive-unabove-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-unshade-button.png b/src/themes/Crux/inactive-unshade-button.png
deleted file mode 100644
index 982abea..0000000
Binary files a/src/themes/Crux/inactive-unshade-button.png and /dev/null differ
diff --git a/src/themes/Crux/inactive-unstick-button.png b/src/themes/Crux/inactive-unstick-button.png
deleted file mode 100644
index e482272..0000000
Binary files a/src/themes/Crux/inactive-unstick-button.png and /dev/null differ
diff --git a/src/themes/Crux/metacity-theme-1.xml b/src/themes/Crux/metacity-theme-1.xml
deleted file mode 100644
index a699456..0000000
--- a/src/themes/Crux/metacity-theme-1.xml
+++ /dev/null
@@ -1,579 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-<info>
-  <name>Crux</name>
-  <author>Anders Carlsson &lt;andersca@gnu.org&gt;</author>
-  <copyright>&#194; Eazel Inc, 2000</copyright>
-  <date>February 6, 2002</date>
-  <description>A port of the Crux theme by Arlo Rose and John Harper</description>
-</info>
-
-<!-- define constants -->
-<constant name="IconTitleSpacing" value="2"/> <!-- Space between menu button and title -->
-<constant name="CenterTitlePieceWidth" value="48"/> <!-- Width of center title piece -->
-<constant name="ButtonWidth" value="16"/> <!-- Button width -->
-
-<frame_geometry name="normal">
-  <distance name="left_width" value="5"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="6"/>
-  <distance name="left_titlebar_edge" value="5"/>
-  <distance name="right_titlebar_edge" value="6"/>
-  <aspect_ratio name="button" value="1.0"/>
-  <distance name="title_vertical_pad" value="0"/>
-  <border name="title_border" left="0" right="0" top="3" bottom="3"/>
-  <border name="button_border" left="0" right="0" top="3" bottom="3"/>
-</frame_geometry>
-
-<frame_geometry name="border" has_title="false">
-  <distance name="left_width" value="5"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="6"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-  <distance name="button_width" value="0"/>
-  <distance name="button_height" value="0"/>
-  <distance name="title_vertical_pad" value="5"/>
-  <border name="title_border" left="0" right="0" top="0" bottom="0"/>
-  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- Buttons -->
-
-<draw_ops name="active_button">
-  <image filename="active-button.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="active_button_pressed">
-  <image filename="active-button-pressed.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="active_button_prelight">
-  <image filename="active-button-prelight.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="inactive_button">
-  <image filename="inactive-button.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="inactive_button_pressed">
-  <image filename="inactive-button-pressed.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="inactive_button_prelight">
-  <image filename="inactive-button-prelight.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<!-- Inactive style -->
-<frame_style name="normal" geometry="normal">
-  <piece position="left_edge">
-    <draw_ops>
-      <image filename="inactive-left-border.png" x="0" y="0" width="object_width" height="height"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="right_edge">
-    <draw_ops>
-      <image filename="inactive-right-border.png" x="0" y="0" width="object_width" height="height"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="title">
-    <draw_ops>
-      <title color="gtk:fg[SELECTED]" x="IconTitleSpacing" y="0"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="titlebar">
-    <draw_ops>
-
-      <image filename="inactive-left-top-border.png" 
-             x="0" y="0" width="object_width" height="height"/>
-      <image filename="inactive-right-top-border.png" 
-             x="width - object_width" y="0" width="object_width" height="height"/>
-
-      <image filename="inactive-top-center-left.png" 
-             x="4" y="0" 
-             width="(left_width + ButtonWidth + IconTitleSpacing + title_width) `min`
-                    (width - right_width - 3 * ButtonWidth - CenterTitlePieceWidth * height / 22 - 3)" 
-             height="height"/>
-
-      <image filename="inactive-top-center-mid.png" 
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width) `min` (width - object_width * height / 22 - right_width - 3 * ButtonWidth)) + 1"
-             y="0" width="object_width * height / 22" height="height"/>
-
-      <image filename="inactive-top-center-right.png"
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width + CenterTitlePieceWidth * height / 22) `min` (width - 3 * ButtonWidth - right_width)) + 1"
-             y="0"
-             width="(width - title_width - left_width - ButtonWidth - IconTitleSpacing - CenterTitlePieceWidth * height / 22 - right_width) `max` (3 * ButtonWidth)"
-             height="height"/>
-
-    </draw_ops>
-  </piece>
-
-  <!-- We have to draw the bottom edge in the background piece 
-       because that's the only way we can get the correct window height -->
-  <piece position="overlay">
-    <draw_ops>
-      <image filename="inactive-bottom-left-corner.png" 
-             x="0" y="height - object_height" width="object_width" height="object_height"/>
-      <image filename="inactive-bottom-left-border.png" x="5" y="height - object_height" 
-             width="((title_width + height / 2 - 4) `min` (width - object_width - 26))"
-             height="object_height"/>
-      <image filename="inactive-bottom-mid-border.png" 
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="height - object_height" width="object_width" height="object_height"/>
-
-      <image filename="inactive-bottom-right-border.png"
-             x="((title_width + height / 2 + 32)) + 1" 
-             y="height - object_height" 
-             width="(width - title_width - height / 2 - 32 - 7) `max` 0"
-             height="object_height"/>
-
-      <image filename="inactive-bottom-right-corner.png" 
-             x="width - object_width" y="height - object_height" width="object_height" height="object_height"/>
-
-    </draw_ops>
-  </piece>
-
-  <button function="close" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-maximize-button.png" x="2" y="2" width="width - 4" height="height - 4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="normal">
-    <draw_ops>
-      <image filename="inactive-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="pressed">
-    <draw_ops>
-      <image filename="inactive-menu-button-pressed.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-  <button function="menu" state="prelight">
-    <draw_ops>
-      <image filename="inactive-menu-button-prelight.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-</frame_style>
-
-<frame_style name="normal_maximized" parent="normal">
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-restore-button.png" x="2" y="2" width="width - 4" height="height - 4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-</frame_style>
-
-<!-- Active (focused) shaded style -->
-	<frame_style name="normal_shaded" geometry="normal" parent="normal">
-	  <piece position="left_titlebar_edge">
-	    <draw_ops>
-	      <image filename="inactive-left-top-border-shaded.png" x="0" y="3" width="object_width" height="object_height"/>
-	    </draw_ops>
-	  </piece>
-	  <piece position="right_titlebar_edge">
-	    <draw_ops>
-	      <image filename="inactive-right-top-border-shaded.png" x="width - object_width" y="3" width="object_width" height="object_height"/>
-	    </draw_ops>
-	  </piece>
-	</frame_style>
-
-
-<!-- Active (focused) style -->
-<frame_style name="focused" geometry="normal">
-  <piece position="left_edge">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-left-border.png" x="0" y="0" width="object_width" height="height"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="right_edge">
-    <draw_ops>
-      <image filename="active-right-border.png" x="0" y="0" width="object_width" height="height"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="title">
-    <draw_ops>
-      <title color="gtk:fg[SELECTED]" x="IconTitleSpacing" y="((height - title_height) / 2) `max` 0"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="titlebar">
-    <draw_ops>
-
-      <image filename="active-left-top-border.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="0" y="0" width="object_width" height="height"/>
-
-      <image filename="active-right-top-border.png" 
-             x="width - object_width" y="0" width="object_width" height="height"/>
-
-      <image filename="active-top-center-left.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="4" y="0" 
-             width="(left_width + ButtonWidth + IconTitleSpacing + title_width) `min`
-                    (width - right_width - 3 * ButtonWidth - CenterTitlePieceWidth * height / 22 - 3)" 
-             height="height"/>
-
-      <image filename="active-top-center-mid-left.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width) `min` (width - object_width * height / 22 - right_width - 3 * ButtonWidth)) + 1"
-             y="0" width="object_width * height / 22" height="height"/>
-
-      <image filename="active-top-center-mid-right.png" 
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width) `min` (width - object_width * height / 22 - right_width - 3 * ButtonWidth)) + 1"
-             y="0" width="object_width * height / 22" height="height"/>
-
-      <image filename="active-top-center-right.png"
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width + CenterTitlePieceWidth * height / 22) `min` (width - 3 * ButtonWidth - right_width)) + 1"
-             y="0"
-             width="(width - title_width - left_width - ButtonWidth - IconTitleSpacing - CenterTitlePieceWidth * height / 22 - right_width) `max` (3 * ButtonWidth)"
-             height="height"/>
-
-    </draw_ops>
-  </piece>
-
-  <!-- We have to draw the bottom edge in the background piece 
-       because that's the only way we can get the correct window height -->
-  <piece position="overlay">
-    <draw_ops>
-      <image filename="active-bottom-left-corner.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="0" y="height - object_height" width="object_width" height="object_height"/>
-      <image filename="active-bottom-left-border.png" x="5" y="height - object_height" 
-             colorize="gtk:bg[SELECTED]"
-             width="((title_width + height / 2 - 4) `min` (width - object_width - 26))"
-             height="object_height"/>
-      <image filename="active-bottom-mid-left-border.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="height - object_height" width="object_width" height="object_height"/>
-      <image filename="active-bottom-mid-right-border.png" 
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="height - object_height" width="object_width" height="object_height"/>
-
-      <image filename="active-bottom-right-border.png"
-             x="((title_width + height / 2 + 32)) + 1" 
-             y="height - object_height" 
-             width="(width - title_width - height / 2 - 32 - 7) `max` 0"
-             height="object_height"/>
-
-      <image filename="active-bottom-right-corner.png" 
-             x="width - object_width" y="height - object_height" width="object_height" height="object_height"/>
-
-    </draw_ops>
-  </piece>
-
-  <button function="close" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="normal">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="pressed">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-menu-button-pressed.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-  <button function="menu" state="prelight">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-menu-button-prelight.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-</frame_style>
-
-<frame_style name="focused_maximized" geometry="normal" parent="focused">
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-  
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-</frame_style>
-
-<!-- Active (focused) shaded style -->
-<frame_style name="focused_shaded" geometry="normal" parent="focused">
-  <piece position="left_titlebar_edge">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-left-top-border-shaded.png" x="0" y="3" width="object_width" height="object_height"/>
-    </draw_ops>
-  </piece>
-  <piece position="right_titlebar_edge">
-    <draw_ops>
-      <image filename="active-right-top-border-shaded.png" x="width - object_width" y="3" width="object_width" height="object_height"/>
-    </draw_ops>
-  </piece>
-</frame_style>
-
-<!-- Inactive border style -->
-<frame_style name="border_unfocused" geometry="border" parent="normal">
-  <piece position="title"><draw_ops/></piece>
-  <piece position="titlebar">
-    <draw_ops>
-      <image filename="inactive-top-left-corner.png" 
-             x="0" y="0" width="object_width" height="object_height"/>
-      <image filename="inactive-border-top-left-border.png" x="5" y="0" 
-             width="((title_width + height / 2 - 4) `min` (width - object_width - 26))"
-             height="object_height"/>
-      <image filename="inactive-top-mid-border.png" 
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="0" width="object_width" height="object_height"/>
-      <image filename="inactive-border-top-right-border.png"
-             x="((title_width + height / 2 + 32)) + 1" 
-             y="0" 
-             width="(width - title_width - height / 2 - 32 - 7) `max` 0"
-             height="object_height"/>
-      <image filename="inactive-top-right-corner.png" 
-             x="width - object_width" y="0" width="object_height" height="object_height"/>
-    </draw_ops>
-  </piece>
-</frame_style>
-
-<!-- Active (focused) border style -->
-<frame_style name="border_focused" geometry="border" parent="focused">
-  <piece position="title"><draw_ops/></piece>
-  <piece position="titlebar">
-    <draw_ops>
-      <image filename="active-top-left-corner.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="0" y="0" width="object_width" height="object_height"/>
-      <image filename="active-border-top-left-border.png" 
-             colorize="gtk:bg[SELECTED]" x="5" y="0"
-             width="((title_width + height / 2 - 4) `min` (width - object_width - 26))"
-             height="object_height"/>
-      <image filename="active-top-mid-left-border.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="0" width="object_width" height="object_height"/>
-      <image filename="active-top-mid-right-border.png" 
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="0" width="object_width" height="object_height"/>
-      <image filename="active-border-top-right-border.png"
-             x="((title_width + height / 2 + 32)) + 1" y="0" 
-             width="(width - title_width - height / 2 - 32 - 7) `max` 0"
-             height="object_height"/>
-      <image filename="active-top-right-corner.png" 
-             x="width - object_width" y="0" width="object_height" height="object_height"/>
-    </draw_ops>
-  </piece>
-</frame_style>
-
-<frame_style_set name="normal">
-<frame focus="yes" state="shaded" style="focused_shaded"/>
-<frame focus="yes" state="normal" resize="both" style="focused"/>
-<frame focus="yes" state="maximized" style="focused_maximized"/>
-<frame focus="yes" state="maximized_and_shaded" style="focused_maximized"/>
-<frame focus="no" state="normal" resize="both" style="normal"/>
-<frame focus="no" state="shaded" style="normal_shaded"/>
-<frame focus="no" state="maximized" style="normal_maximized"/>
-<frame focus="no" state="maximized_and_shaded" style="normal_maximized"/>
-</frame_style_set>
-
-<frame_style_set name="border">
-<frame focus="yes" state="normal" resize="both" style="border_focused"/>
-<frame focus="yes" state="maximized" style="border_focused"/>
-<frame focus="yes" state="shaded" style="border_focused"/>
-<frame focus="yes" state="maximized_and_shaded" style="border_focused"/>
-<frame focus="no" state="normal" resize="both" style="border_unfocused"/>
-<frame focus="no" state="maximized" style="border_unfocused"/>
-<frame focus="no" state="shaded" style="border_unfocused"/>
-<frame focus="no" state="maximized_and_shaded" style="border_unfocused"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="normal"/>
-<window type="modal_dialog" style_set="normal"/>
-<window type="menu" style_set="normal"/>
-<window type="utility" style_set="normal"/>
-<window type="border" style_set="border"/>
-
-<menu_icon function="close" state="normal">
-  <draw_ops> 
-    <image filename="active-close-button.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-<menu_icon function="maximize" state="normal">
-  <draw_ops>
-    <image filename="active-maximize-button.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-
-<menu_icon function="minimize" state="normal">
-  <draw_ops>
-    <image filename="active-minimize-button.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-<menu_icon function="unmaximize" state="normal">
-  <draw_ops>
-  </draw_ops>
-</menu_icon>
-
-</metacity_theme>
diff --git a/src/themes/Crux/metacity-theme-2.xml b/src/themes/Crux/metacity-theme-2.xml
deleted file mode 100644
index 11820d3..0000000
--- a/src/themes/Crux/metacity-theme-2.xml
+++ /dev/null
@@ -1,832 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-<info>
-  <name>Crux</name>
-  <author>Anders Carlsson &lt;andersca@gnu.org&gt;</author>
-  <copyright>&#194; Eazel Inc, 2000</copyright>
-  <date>February 6, 2002</date>
-  <description>A port of the Crux theme by Arlo Rose and John Harper</description>
-</info>
-
-<!-- define constants -->
-<constant name="IconTitleSpacing" value="2"/> <!-- Space between menu button and title -->
-<constant name="CenterTitlePieceWidth" value="48"/> <!-- Width of center title piece -->
-<constant name="ButtonWidth" value="16"/> <!-- Button width -->
-
-<frame_geometry name="normal">
-  <distance name="left_width" value="5"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="6"/>
-  <distance name="left_titlebar_edge" value="5"/>
-  <distance name="right_titlebar_edge" value="6"/>
-  <aspect_ratio name="button" value="1.0"/>
-  <distance name="title_vertical_pad" value="0"/>
-  <border name="title_border" left="0" right="0" top="3" bottom="3"/>
-  <border name="button_border" left="0" right="0" top="3" bottom="3"/>
-</frame_geometry>
-
-<frame_geometry name="border" has_title="false">
-  <distance name="left_width" value="5"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="6"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-  <distance name="button_width" value="0"/>
-  <distance name="button_height" value="0"/>
-  <distance name="title_vertical_pad" value="5"/>
-  <border name="title_border" left="0" right="0" top="0" bottom="0"/>
-  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- Buttons -->
-
-<draw_ops name="active_button">
-  <image filename="active-button.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="active_button_pressed">
-  <image filename="active-button-pressed.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="active_button_prelight">
-  <image filename="active-button-prelight.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="inactive_button">
-  <image filename="inactive-button.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="inactive_button_pressed">
-  <image filename="inactive-button-pressed.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<draw_ops name="inactive_button_prelight">
-  <image filename="inactive-button-prelight.png" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<!-- Inactive style -->
-<frame_style name="normal" geometry="normal">
-  <piece position="left_edge">
-    <draw_ops>
-      <image filename="inactive-left-border.png" x="0" y="0" width="object_width" height="height"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="right_edge">
-    <draw_ops>
-      <image filename="inactive-right-border.png" x="0" y="0" width="object_width" height="height"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="title">
-    <draw_ops>
-      <title color="gtk:fg[SELECTED]" x="IconTitleSpacing" y="0"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="titlebar">
-    <draw_ops>
-
-      <image filename="inactive-left-top-border.png" 
-             x="0" y="0" width="object_width" height="height"/>
-      <image filename="inactive-right-top-border.png" 
-             x="width - object_width" y="0" width="object_width" height="height"/>
-
-      <image filename="inactive-top-center-left.png" 
-             x="4" y="0" 
-             width="(left_width + ButtonWidth + IconTitleSpacing + title_width) `min`
-                    (width - right_width - 3 * ButtonWidth - CenterTitlePieceWidth * height / 22 - 3)" 
-             height="height"/>
-
-      <image filename="inactive-top-center-mid.png" 
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width) `min` (width - object_width * height / 22 - right_width - 3 * ButtonWidth)) + 1"
-             y="0" width="object_width * height / 22" height="height"/>
-
-      <image filename="inactive-top-center-right.png"
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width + CenterTitlePieceWidth * height / 22) `min` (width - 3 * ButtonWidth - right_width)) + 1"
-             y="0"
-             width="(width - title_width - left_width - ButtonWidth - IconTitleSpacing - CenterTitlePieceWidth * height / 22 - right_width) `max` (3 * ButtonWidth)"
-             height="height"/>
-
-    </draw_ops>
-  </piece>
-
-  <!-- We have to draw the bottom edge in the background piece 
-       because that's the only way we can get the correct window height -->
-  <piece position="overlay">
-    <draw_ops>
-      <image filename="inactive-bottom-left-corner.png" 
-             x="0" y="height - object_height" width="object_width" height="object_height"/>
-      <image filename="inactive-bottom-left-border.png" x="5" y="height - object_height" 
-             width="((title_width + height / 2 - 4) `min` (width - object_width - 26))"
-             height="object_height"/>
-      <image filename="inactive-bottom-mid-border.png" 
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="height - object_height" width="object_width" height="object_height"/>
-
-      <image filename="inactive-bottom-right-border.png"
-             x="((title_width + height / 2 + 32)) + 1" 
-             y="height - object_height" 
-             width="(width - title_width - height / 2 - 32 - 7) `max` 0"
-             height="object_height"/>
-
-      <image filename="inactive-bottom-right-corner.png" 
-             x="width - object_width" y="height - object_height" width="object_height" height="object_height"/>
-
-    </draw_ops>
-  </piece>
-
-  <button function="close" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-maximize-button.png" x="2" y="2" width="width - 4" height="height - 4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unshade" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-unshade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unshade" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-unshade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unshade" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-unshade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="shade" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-shade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="shade" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-shade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="shade" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-shade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unabove" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-unabove-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unabove" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-unabove-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unabove" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-unabove-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="above" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-above-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="above" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-above-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="above" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-above-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="stick" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-stick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="stick" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-stick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="stick" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-stick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unstick" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-unstick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unstick" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-unstick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unstick" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-unstick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="normal">
-    <draw_ops>
-      <image filename="inactive-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="pressed">
-    <draw_ops>
-      <image filename="inactive-menu-button-pressed.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="prelight">
-    <draw_ops>
-      <image filename="inactive-menu-button-prelight.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-</frame_style>
-
-<frame_style name="normal_maximized" parent="normal">
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <include name="inactive_button"/>
-      <image filename="inactive-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <include name="inactive_button_pressed"/>
-      <image filename="inactive-restore-button.png" x="2" y="2" width="width - 4" height="height - 4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="prelight">
-    <draw_ops>
-      <include name="inactive_button_prelight"/>
-      <image filename="inactive-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-</frame_style>
-
-<!-- Active (focused) shaded style -->
-	<frame_style name="normal_shaded" geometry="normal" parent="normal">
-	  <piece position="left_titlebar_edge">
-	    <draw_ops>
-	      <image filename="inactive-left-top-border-shaded.png" x="0" y="3" width="object_width" height="object_height"/>
-	    </draw_ops>
-	  </piece>
-	  <piece position="right_titlebar_edge">
-	    <draw_ops>
-	      <image filename="inactive-right-top-border-shaded.png" x="width - object_width" y="3" width="object_width" height="object_height"/>
-	    </draw_ops>
-	  </piece>
-	</frame_style>
-
-
-<!-- Active (focused) style -->
-<frame_style name="focused" geometry="normal">
-  <piece position="left_edge">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-left-border.png" x="0" y="0" width="object_width" height="height"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="right_edge">
-    <draw_ops>
-      <image filename="active-right-border.png" x="0" y="0" width="object_width" height="height"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="title">
-    <draw_ops>
-      <title color="gtk:fg[SELECTED]" x="IconTitleSpacing" y="((height - title_height) / 2) `max` 0"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="titlebar">
-    <draw_ops>
-
-      <image filename="active-left-top-border.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="0" y="0" width="object_width" height="height"/>
-
-      <image filename="active-right-top-border.png" 
-             x="width - object_width" y="0" width="object_width" height="height"/>
-
-      <image filename="active-top-center-left.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="4" y="0" 
-             width="(left_width + ButtonWidth + IconTitleSpacing + title_width) `min`
-                    (width - right_width - 3 * ButtonWidth - CenterTitlePieceWidth * height / 22 - 3)" 
-             height="height"/>
-
-      <image filename="active-top-center-mid-left.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width) `min` (width - object_width * height / 22 - right_width - 3 * ButtonWidth)) + 1"
-             y="0" width="object_width * height / 22" height="height"/>
-
-      <image filename="active-top-center-mid-right.png" 
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width) `min` (width - object_width * height / 22 - right_width - 3 * ButtonWidth)) + 1"
-             y="0" width="object_width * height / 22" height="height"/>
-
-      <image filename="active-top-center-right.png"
-             x="((left_width + ButtonWidth + IconTitleSpacing + title_width + CenterTitlePieceWidth * height / 22) `min` (width - 3 * ButtonWidth - right_width)) + 1"
-             y="0"
-             width="(width - title_width - left_width - ButtonWidth - IconTitleSpacing - CenterTitlePieceWidth * height / 22 - right_width) `max` (3 * ButtonWidth)"
-             height="height"/>
-
-    </draw_ops>
-  </piece>
-
-  <!-- We have to draw the bottom edge in the background piece 
-       because that's the only way we can get the correct window height -->
-  <piece position="overlay">
-    <draw_ops>
-      <image filename="active-bottom-left-corner.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="0" y="height - object_height" width="object_width" height="object_height"/>
-      <image filename="active-bottom-left-border.png" x="5" y="height - object_height" 
-             colorize="gtk:bg[SELECTED]"
-             width="((title_width + height / 2 - 4) `min` (width - object_width - 26))"
-             height="object_height"/>
-      <image filename="active-bottom-mid-left-border.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="height - object_height" width="object_width" height="object_height"/>
-      <image filename="active-bottom-mid-right-border.png" 
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="height - object_height" width="object_width" height="object_height"/>
-
-      <image filename="active-bottom-right-border.png"
-             x="((title_width + height / 2 + 32)) + 1" 
-             y="height - object_height" 
-             width="(width - title_width - height / 2 - 32 - 7) `max` 0"
-             height="object_height"/>
-
-      <image filename="active-bottom-right-corner.png" 
-             x="width - object_width" y="height - object_height" width="object_height" height="object_height"/>
-
-    </draw_ops>
-  </piece>
-
-  <button function="close" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-close-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-minimize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-maximize-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="shade" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-shade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="shade" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-shade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="shade" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-shade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unshade" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-unshade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unshade" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-unshade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unshade" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-unshade-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="above" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-above-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="above" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-above-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="above" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-above-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unabove" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-unabove-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unabove" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-unabove-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unabove" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-unabove-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
- <button function="stick" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-stick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="stick" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-stick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="stick" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-stick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
- <button function="unstick" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-unstick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unstick" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-unstick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="unstick" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-unstick-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="normal">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="pressed">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-menu-button-pressed.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-  <button function="menu" state="prelight">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-menu-button-prelight.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-</frame_style>
-
-<frame_style name="focused_maximized" geometry="normal" parent="focused">
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <include name="active_button"/>
-      <image filename="active-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-  
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <include name="active_button_pressed"/>
-      <image filename="active-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="prelight">
-    <draw_ops>
-      <include name="active_button_prelight"/>
-      <image filename="active-restore-button.png" x="2" y="2" width="width-4" height="height-4"/>
-    </draw_ops>
-  </button>
-
-</frame_style>
-
-<!-- Active (focused) shaded style -->
-<frame_style name="focused_shaded" geometry="normal" parent="focused">
-  <piece position="left_titlebar_edge">
-    <draw_ops>
-      <image colorize="gtk:bg[SELECTED]" filename="active-left-top-border-shaded.png" x="0" y="3" width="object_width" height="object_height"/>
-    </draw_ops>
-  </piece>
-  <piece position="right_titlebar_edge">
-    <draw_ops>
-      <image filename="active-right-top-border-shaded.png" x="width - object_width" y="3" width="object_width" height="object_height"/>
-    </draw_ops>
-  </piece>
-</frame_style>
-
-<!-- Inactive border style -->
-<frame_style name="border_unfocused" geometry="border" parent="normal">
-  <piece position="title"><draw_ops/></piece>
-  <piece position="titlebar">
-    <draw_ops>
-      <image filename="inactive-top-left-corner.png" 
-             x="0" y="0" width="object_width" height="object_height"/>
-      <image filename="inactive-border-top-left-border.png" x="5" y="0" 
-             width="((title_width + height / 2 - 4) `min` (width - object_width - 26))"
-             height="object_height"/>
-      <image filename="inactive-top-mid-border.png" 
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="0" width="object_width" height="object_height"/>
-      <image filename="inactive-border-top-right-border.png"
-             x="((title_width + height / 2 + 32)) + 1" 
-             y="0" 
-             width="(width - title_width - height / 2 - 32 - 7) `max` 0"
-             height="object_height"/>
-      <image filename="inactive-top-right-corner.png" 
-             x="width - object_width" y="0" width="object_height" height="object_height"/>
-    </draw_ops>
-  </piece>
-</frame_style>
-
-<!-- Active (focused) border style -->
-<frame_style name="border_focused" geometry="border" parent="focused">
-  <piece position="title"><draw_ops/></piece>
-  <piece position="titlebar">
-    <draw_ops>
-      <image filename="active-top-left-corner.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="0" y="0" width="object_width" height="object_height"/>
-      <image filename="active-border-top-left-border.png" 
-             colorize="gtk:bg[SELECTED]" x="5" y="0"
-             width="((title_width + height / 2 - 4) `min` (width - object_width - 26))"
-             height="object_height"/>
-      <image filename="active-top-mid-left-border.png" 
-             colorize="gtk:bg[SELECTED]"
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="0" width="object_width" height="object_height"/>
-      <image filename="active-top-mid-right-border.png" 
-             x="((title_width + height / 2) `min` (width - object_width - 6)) + 1" 
-             y="0" width="object_width" height="object_height"/>
-      <image filename="active-border-top-right-border.png"
-             x="((title_width + height / 2 + 32)) + 1" y="0" 
-             width="(width - title_width - height / 2 - 32 - 7) `max` 0"
-             height="object_height"/>
-      <image filename="active-top-right-corner.png" 
-             x="width - object_width" y="0" width="object_height" height="object_height"/>
-    </draw_ops>
-  </piece>
-</frame_style>
-
-<frame_style_set name="normal">
-<frame focus="yes" state="shaded" resize="both" style="focused_shaded"/>
-<frame focus="yes" state="normal" resize="both" style="focused"/>
-<frame focus="yes" state="maximized" style="focused_maximized"/>
-<frame focus="yes" state="maximized_and_shaded" style="focused_maximized"/>
-<frame focus="no" state="normal" resize="both" style="normal"/>
-<frame focus="no" state="shaded" resize="both" style="normal_shaded"/>
-<frame focus="no" state="maximized" style="normal_maximized"/>
-<frame focus="no" state="maximized_and_shaded" style="normal_maximized"/>
-</frame_style_set>
-
-<frame_style_set name="border">
-<frame focus="yes" state="normal" resize="both" style="border_focused"/>
-<frame focus="yes" state="maximized" style="border_focused"/>
-<frame focus="yes" state="shaded" resize="both" style="border_focused"/>
-<frame focus="yes" state="maximized_and_shaded" style="border_focused"/>
-<frame focus="no" state="normal" resize="both" style="border_unfocused"/>
-<frame focus="no" state="maximized" style="border_unfocused"/>
-<frame focus="no" state="shaded" resize="both" style="border_unfocused"/>
-<frame focus="no" state="maximized_and_shaded" style="border_unfocused"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="normal"/>
-<window type="modal_dialog" style_set="normal"/>
-<window type="menu" style_set="normal"/>
-<window type="utility" style_set="normal"/>
-<window type="border" style_set="border"/>
-
-<menu_icon function="close" state="normal">
-  <draw_ops> 
-    <image filename="active-close-button.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-<menu_icon function="maximize" state="normal">
-  <draw_ops>
-    <image filename="active-maximize-button.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-
-<menu_icon function="minimize" state="normal">
-  <draw_ops>
-    <image filename="active-minimize-button.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-<menu_icon function="unmaximize" state="normal">
-  <draw_ops>
-  </draw_ops>
-</menu_icon>
-
-</metacity_theme>
diff --git a/src/themes/Esco/metacity-theme-1.xml b/src/themes/Esco/metacity-theme-1.xml
deleted file mode 100644
index 9a9061b..0000000
--- a/src/themes/Esco/metacity-theme-1.xml
+++ /dev/null
@@ -1,990 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-
-<info>
-	<name>Esco</name>
-	<author>James M. Cape &lt;jcape@ignore-your.tv&gt;</author>
-	<copyright>&#194; Havoc Pennington, 2002 for Atlanta. &#194; Gaute Lindkvist, 2002 for Bright. &#194; James M. Cape 2002 for modifications</copyright>
-	<date>February 3, 2002</date>
-	<description>Simple theme designed to look really good &amp; match GTK+ well.</description>
-</info>
-
-<frame_geometry name="normal">
- 	<distance name="left_width" value="5"/>
- 	<distance name="right_width" value="5"/>
- 	<distance name="bottom_height" value="5"/>
-	<distance name="left_titlebar_edge" value="5"/>
-	<distance name="right_titlebar_edge" value="5"/>
-	<aspect_ratio name="button" value="1.0"/> 
-	<distance name="title_vertical_pad" value="1"/>
-	<border name="title_border" left="5" right="5" top="3" bottom="2"/>
-	<border name="button_border" left="0" right="0" top="3" bottom="2"/>
-</frame_geometry>
-
-<!-- strip borders off the normal geometry -->
-<frame_geometry name="normal_small_borders" parent="normal">
-	<distance name="left_width" value="0"/>
-	<distance name="right_width" value="0"/>
-	<distance name="bottom_height" value="0"/>
-	<distance name="left_titlebar_edge" value="0"/>
-	<distance name="right_titlebar_edge" value="0"/>
-	<distance name="title_vertical_pad" value="2"/>
-	<border name="title_border" left="5" right="5" top="0" bottom="0"/>
-	<border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<frame_geometry name="utility" title_scale="small">
-	<distance name="left_width" value="1"/>
-	<distance name="right_width" value="1"/>
-	<distance name="bottom_height" value="5"/>
-	<distance name="left_titlebar_edge" value="2"/>
-	<distance name="right_titlebar_edge" value="2"/>
-	<aspect_ratio name="button" value="1.0"/>      
-	<distance name="title_vertical_pad" value="3"/>
-	<border name="title_border" left="2" right="2" top="0" bottom="0"/>
-	<border name="button_border" left="0" right="0" top="2" bottom="0"/>
-</frame_geometry>
-
-<frame_geometry name="border" has_title="false">
-	<distance name="left_width" value="5"/>
-	<distance name="right_width" value="5"/>
-	<distance name="bottom_height" value="5"/>
-	<distance name="left_titlebar_edge" value="0"/>
-	<distance name="right_titlebar_edge" value="0"/>
-	<distance name="button_width" value="0"/>
-	<distance name="button_height" value="0"/>
-	<distance name="title_vertical_pad" value="5"/>
-	<border name="title_border" left="0" right="0" top="0" bottom="0"/>
-	<border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- define constants -->
-<constant name="ButtonIPad" value="3"/>
-<constant name="IconTitleSpacing" value="8"/>
-
-<!-- Button Outlines -->
-<draw_ops name="button_prelight_bg">
-	<gtk_box state="prelight" shadow="out" x="0" y="0" width="width"
-		height="height"/>
-</draw_ops>
-
-<draw_ops name="button_pressed_bg">
-	<gtk_box state="active" shadow="in" x="0" y="0" width="width"
-		height="height"/>
-</draw_ops>
-
-<draw_ops name="right_button_normal_bg">
-	<rectangle color="#ffffff" filled="true" x="0" y="0" width="width" height="height"/>
-</draw_ops>
-
-<!-- Button Icons -->
-
-<!-- Minimize Button -->
-<draw_ops name="minimize_button">
-	<rectangle color="gtk:dark[NORMAL]" filled="true"
-		x="ButtonIPad"
-		y="height - ButtonIPad - ((height - (ButtonIPad + 1) * 2) * 0.4) - 1"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4"/>
-</draw_ops>
-<draw_ops name="minimize_button_focused">
-	<rectangle color="gtk:fg[SELECTED]" filled="true"
-		x="ButtonIPad"
-		y="height - ButtonIPad - ((height - (ButtonIPad + 1) * 2) * 0.4) - 1"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4"/>
-</draw_ops>
-<draw_ops name="minimize_button_prelight">
-	<include name="button_prelight_bg"/>
-	<rectangle color="gtk:dark[PRELIGHT]" filled="true"
-		x="ButtonIPad + 1"
-		y="height - ButtonIPad - ((height - (ButtonIPad + 1) * 2) * 0.4)"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4 + 1"/>
-	<rectangle color="gtk:fg[PRELIGHT]" filled="false"
-		x="ButtonIPad"
-		y="height - ButtonIPad - ((height - (ButtonIPad + 1) * 2) * 0.4) - 1"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4"/>
-</draw_ops>
-<draw_ops name="minimize_button_pressed">
-	<include name="button_pressed_bg"/>
-	<rectangle color="gtk:dark[ACTIVE]" filled="true"
-		x="ButtonIPad + 1"
-		y="height - ButtonIPad - ((height - (ButtonIPad + 1) * 2) * 0.4)"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4 + 1"/>
-	<rectangle color="gtk:fg[ACTIVE]" filled="false"
-		x="ButtonIPad"
-		y="height - ButtonIPad - ((height - (ButtonIPad + 1) * 2) * 0.4) - 1"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4"/>
-</draw_ops>
-
-<!-- Maximize Button -->
-<draw_ops name="maximize_button">
-	<rectangle color="gtk:dark[NORMAL]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="width - (ButtonIPad + 1) * 2"
-		height="height - (ButtonIPad + 1) * 2"/>
-	<rectangle color="gtk:dark[NORMAL]" filled="true"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4"/>
-</draw_ops>
-<draw_ops name="maximize_button_focused">
-	<rectangle color="gtk:fg[SELECTED]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="width - (ButtonIPad + 1) * 2"
-		height="height - (ButtonIPad + 1) * 2"/>
-	<rectangle color="gtk:fg[SELECTED]" filled="true"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4"/>
-</draw_ops>
-<draw_ops name="maximize_button_prelight">
-	<include name="button_prelight_bg"/>
-	<rectangle color="gtk:dark[PRELIGHT]" filled="false"
-		x="ButtonIPad + 1"
-		y="ButtonIPad + 1"
-		width="width - (ButtonIPad + 1) * 2"
-		height="height - (ButtonIPad + 1) * 2"/>
-	<rectangle color="gtk:dark[PRELIGHT]" filled="true"
-		x="ButtonIPad + 1"
-		y="ButtonIPad + 1"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4 + 1"/>
-	<rectangle color="gtk:fg[PRELIGHT]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="width - (ButtonIPad + 1) * 2"
-		height="height - (ButtonIPad + 1) * 2"/>
-	<rectangle color="gtk:fg[PRELIGHT]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4"/>
-</draw_ops>
-<draw_ops name="maximize_button_pressed">
-	<include name="button_pressed_bg"/>
-	<rectangle color="gtk:dark[ACTIVE]" filled="false"
-		x="ButtonIPad + 1"
-		y="ButtonIPad + 1"
-		width="width - (ButtonIPad + 1) * 2"
-		height="height - (ButtonIPad + 1) * 2"/>
-	<rectangle color="gtk:dark[ACTIVE]" filled="true"
-		x="ButtonIPad + 1"
-		y="ButtonIPad + 1"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4 + 1"/>
-	<rectangle color="gtk:fg[ACTIVE]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="width - (ButtonIPad + 1) * 2"
-		height="height - (ButtonIPad + 1) * 2"/>
-	<rectangle color="gtk:fg[ACTIVE]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="width - (ButtonIPad + 1) * 2"
-		height="(height - (ButtonIPad + 1) * 2) * 0.4"/>
-</draw_ops>
-
-<!-- UnMaximize Button -->
-<draw_ops name="restore_button">
-	<rectangle color="gtk:dark[NORMAL]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:dark[NORMAL]" filled="true"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-	<rectangle color="gtk:dark[NORMAL]" filled="false"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:dark[NORMAL]" filled="true"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-</draw_ops>
-<draw_ops name="restore_button_focused">
-	<rectangle color="gtk:fg[SELECTED]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:fg[SELECTED]" filled="true"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-	<rectangle color="gtk:fg[SELECTED]" filled="false"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:fg[SELECTED]" filled="true"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-</draw_ops>
-<draw_ops name="restore_button_prelight">
-	<include name="button_prelight_bg"/>
-	<rectangle color="gtk:dark[PRELIGHT]" filled="false"
-		x="ButtonIPad + 1"
-		y="ButtonIPad + 1"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:dark[PRELIGHT]" filled="true"
-		x="ButtonIPad + 1"
-		y="ButtonIPad + 1"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-	<rectangle color="gtk:dark[PRELIGHT]" filled="false"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33 + 1"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33 + 1"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:dark[PRELIGHT]" filled="true"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33 + 1"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33 + 1"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-	<rectangle color="gtk:fg[PRELIGHT]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:fg[PRELIGHT]" filled="true"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-	<rectangle color="gtk:fg[PRELIGHT]" filled="false"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:fg[PRELIGHT]" filled="true"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-</draw_ops>
-<draw_ops name="restore_button_pressed">
-	<include name="button_pressed_bg"/>
-	<rectangle color="gtk:dark[ACTIVE]" filled="false"
-		x="ButtonIPad + 1"
-		y="ButtonIPad + 1"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:dark[ACTIVE]" filled="true"
-		x="ButtonIPad + 1"
-		y="ButtonIPad + 1"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-	<rectangle color="gtk:dark[ACTIVE]" filled="false"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33 + 1"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33 + 1"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:dark[ACTIVE]" filled="true"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33 + 1"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33 + 1"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-	<rectangle color="gtk:fg[ACTIVE]" filled="false"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:fg[ACTIVE]" filled="true"
-		x="ButtonIPad"
-		y="ButtonIPad"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-	<rectangle color="gtk:fg[ACTIVE]" filled="false"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="(height - (ButtonIPad + 1) * 2) * 0.67"/>
-	<rectangle color="gtk:fg[ACTIVE]" filled="true"
-		x="ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33"
-		y="ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33"
-		width="(width - (ButtonIPad + 1) * 2) * 0.67"
-		height="((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67"/>
-</draw_ops>
-
-<!-- Menu Button -->
-<draw_ops name="menu_button">
-	<line color="gtk:dark[NORMAL]" width="3"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad"
-		x2="ButtonIPad + 1"
-		y2="height - ButtonIPad - 3"/>
-	<line color="gtk:dark[NORMAL]" width="3"
-		x1="ButtonIPad"
-		y1="height - ButtonIPad - 5"
-		x2="width - ButtonIPad - 2"
-		y2="height - ButtonIPad - 5"/>
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="ButtonIPad"
-		y1="height - ButtonIPad - 5"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 5"/>
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="width - ButtonIPad - 4"
-		y1="height - ButtonIPad - 3 - 4"
-		x2="width - ButtonIPad - 4"
-		y2="height - ButtonIPad - 2"/>
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="width - ButtonIPad - 5"
-		y1="height - ButtonIPad - 3 - 5"
-		x2="width - ButtonIPad - 5"
-		y2="height - ButtonIPad - 1"/>
-</draw_ops>
-<draw_ops name="menu_button_focused">
-	<line color="gtk:fg[SELECTED]" width="3"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad"
-		x2="ButtonIPad + 1"
-		y2="height - ButtonIPad - 3"/>
-	<line color="gtk:fg[SELECTED]" width="3"
-		x1="ButtonIPad"
-		y1="height - ButtonIPad - 5"
-		x2="width - ButtonIPad - 2"
-		y2="height - ButtonIPad - 5"/>
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="ButtonIPad"
-		y1="height - ButtonIPad - 5"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 5"/>
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="width - ButtonIPad - 4"
-		y1="height - ButtonIPad - 3 - 4"
-		x2="width - ButtonIPad - 4"
-		y2="height - ButtonIPad - 2"/>
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="width - ButtonIPad - 5"
-		y1="height - ButtonIPad - 3 - 5"
-		x2="width - ButtonIPad - 5"
-		y2="height - ButtonIPad - 1"/>
-</draw_ops>
-<draw_ops name="menu_button_prelight">
-	<include name="button_prelight_bg"/>
-	<line color="gtk:dark[PRELIGHT]" width="3"
-		x1="ButtonIPad + 1 + 1"
-		y1="ButtonIPad + 1"
-		x2="ButtonIPad + 1 + 1"
-		y2="height - ButtonIPad - 3 + 1"/>
-	<line color="gtk:dark[PRELIGHT]" width="3"
-		x1="ButtonIPad + 1"
-		y1="height - ButtonIPad - 5 + 1"
-		x2="width - ButtonIPad - 2 + 1"
-		y2="height - ButtonIPad - 5 + 1"/>
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - ButtonIPad - 5 + 1"
-		x2="width - ButtonIPad - 1 + 1"
-		y2="height - ButtonIPad - 5 + 1"/>
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="width - ButtonIPad - 4 + 1"
-		y1="height - ButtonIPad - 3 - 4 + 1"
-		x2="width - ButtonIPad - 4 + 1"
-		y2="height - ButtonIPad - 2 + 1"/>
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="width - ButtonIPad - 5 + 1"
-		y1="height - ButtonIPad - 3 - 5 + 1"
-		x2="width - ButtonIPad - 5 + 1"
-		y2="height - ButtonIPad - 1 + 1"/>
-	<line color="gtk:fg[PRELIGHT]" width="3"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad"
-		x2="ButtonIPad + 1"
-		y2="height - ButtonIPad - 3"/>
-	<line color="gtk:fg[PRELIGHT]" width="3"
-		x1="ButtonIPad"
-		y1="height - ButtonIPad - 5"
-		x2="width - ButtonIPad - 2"
-		y2="height - ButtonIPad - 5"/>
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="ButtonIPad"
-		y1="height - ButtonIPad - 5"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 5"/>
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="width - ButtonIPad - 4"
-		y1="height - ButtonIPad - 3 - 4"
-		x2="width - ButtonIPad - 4"
-		y2="height - ButtonIPad - 2"/>
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="width - ButtonIPad - 5"
-		y1="height - ButtonIPad - 3 - 5"
-		x2="width - ButtonIPad - 5"
-		y2="height - ButtonIPad - 1"/>
-</draw_ops>
-<draw_ops name="menu_button_pressed">
-	<include name="button_pressed_bg"/>
-	<line color="gtk:dark[ACTIVE]" width="3"
-		x1="ButtonIPad + 1 + 1"
-		y1="ButtonIPad + 1"
-		x2="ButtonIPad + 1 + 1"
-		y2="height - ButtonIPad - 3 + 1"/>
-	<line color="gtk:dark[ACTIVE]" width="3"
-		x1="ButtonIPad + 1"
-		y1="height - ButtonIPad - 5 + 1"
-		x2="width - ButtonIPad - 2 + 1"
-		y2="height - ButtonIPad - 5 + 1"/>
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - ButtonIPad - 5 + 1"
-		x2="width - ButtonIPad - 1 + 1"
-		y2="height - ButtonIPad - 5 + 1"/>
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="width - ButtonIPad - 4 + 1"
-		y1="height - ButtonIPad - 3 - 4 + 1"
-		x2="width - ButtonIPad - 4 + 1"
-		y2="height - ButtonIPad - 2 + 1"/>
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="width - ButtonIPad - 5 + 1"
-		y1="height - ButtonIPad - 3 - 5 + 1"
-		x2="width - ButtonIPad - 5 + 1"
-		y2="height - ButtonIPad - 1 + 1"/>
-	<line color="gtk:fg[ACTIVE]" width="3"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad"
-		x2="ButtonIPad + 1"
-		y2="height - ButtonIPad - 3"/>
-	<line color="gtk:fg[ACTIVE]" width="3"
-		x1="ButtonIPad"
-		y1="height - ButtonIPad - 5"
-		x2="width - ButtonIPad - 2"
-		y2="height - ButtonIPad - 5"/>
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="ButtonIPad"
-		y1="height - ButtonIPad - 5"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 5"/>
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="width - ButtonIPad - 4"
-		y1="height - ButtonIPad - 3 - 4"
-		x2="width - ButtonIPad - 4"
-		y2="height - ButtonIPad - 2"/>
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="width - ButtonIPad - 5"
-		y1="height - ButtonIPad - 3 - 5"
-		x2="width - ButtonIPad - 5"
-		y2="height - ButtonIPad - 1"/>
-</draw_ops>
-
-<!-- Close Button -->
-<draw_ops name="close_button">
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="ButtonIPad"
-		y1="ButtonIPad"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 1"/>
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 1 - 1"/>
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="ButtonIPad"
-		y1="ButtonIPad + 1"
-		x2="width - ButtonIPad - 1 - 1"
-		y2="height - ButtonIPad - 1"/>
-
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="ButtonIPad"
-		y1="height - 1 - ButtonIPad - 1"
-		x2="width - 1 - ButtonIPad"
-		y2="ButtonIPad - 1"/>
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - 1 - ButtonIPad - 1"
-		x2="width - 1 - ButtonIPad"
-		y2="ButtonIPad"/>
-	<line color="gtk:dark[NORMAL]" width="1"
-		x1="ButtonIPad"
-		y1="height - 1 - ButtonIPad - 1 - 1"
-		x2="width - 1 - ButtonIPad - 1"
-		y2="ButtonIPad - 1"/>
-</draw_ops>
-<draw_ops name="close_button_focused">
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="ButtonIPad"
-		y1="ButtonIPad"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 1"/>
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 1 - 1"/>
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="ButtonIPad"
-		y1="ButtonIPad + 1"
-		x2="width - ButtonIPad - 1 - 1"
-		y2="height - ButtonIPad - 1"/>
-
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="ButtonIPad"
-		y1="height - 1 - ButtonIPad - 1"
-		x2="width - 1 - ButtonIPad"
-		y2="ButtonIPad - 1"/>
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - 1 - ButtonIPad - 1"
-		x2="width - 1 - ButtonIPad"
-		y2="ButtonIPad"/>
-	<line color="gtk:fg[SELECTED]" width="1"
-		x1="ButtonIPad"
-		y1="height - 1 - ButtonIPad - 1 - 1"
-		x2="width - 1 - ButtonIPad - 1"
-		y2="ButtonIPad - 1"/>
-</draw_ops>
-<draw_ops name="close_button_prelight">
-	<include name="button_prelight_bg"/>
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad + 1"
-		x2="width - ButtonIPad - 1 + 1"
-		y2="height - ButtonIPad - 1 + 1"/>
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1 + 1"
-		y1="ButtonIPad + 1"
-		x2="width - ButtonIPad - 1 + 1"
-		y2="height - ButtonIPad - 1 - 1 + 1"/>
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad + 1 + 1"
-		x2="width - ButtonIPad - 1 - 1 + 1"
-		y2="height - ButtonIPad - 1 + 1"/>
-
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - 1 - ButtonIPad - 1 + 1"
-		x2="width - 1 - ButtonIPad + 1"
-		y2="ButtonIPad - 1 + 1"/>
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1 + 1"
-		y1="height - 1 - ButtonIPad - 1 + 1"
-		x2="width - 1 - ButtonIPad + 1"
-		y2="ButtonIPad + 1"/>
-	<line color="gtk:dark[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - 1 - ButtonIPad - 1 - 1 + 1"
-		x2="width - 1 - ButtonIPad - 1 + 1"
-		y2="ButtonIPad - 1 + 1"/>
-
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="ButtonIPad"
-		y1="ButtonIPad"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 1"/>
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 1 - 1"/>
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="ButtonIPad"
-		y1="ButtonIPad + 1"
-		x2="width - ButtonIPad - 1 - 1"
-		y2="height - ButtonIPad - 1"/>
-
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="ButtonIPad"
-		y1="height - 1 - ButtonIPad - 1"
-		x2="width - 1 - ButtonIPad"
-		y2="ButtonIPad - 1"/>
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - 1 - ButtonIPad - 1"
-		x2="width - 1 - ButtonIPad"
-		y2="ButtonIPad"/>
-	<line color="gtk:fg[PRELIGHT]" width="1"
-		x1="ButtonIPad"
-		y1="height - 1 - ButtonIPad - 1 - 1"
-		x2="width - 1 - ButtonIPad - 1"
-		y2="ButtonIPad - 1"/>
-</draw_ops>
-<draw_ops name="close_button_pressed">
-	<include name="button_pressed_bg"/>
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad + 1"
-		x2="width - ButtonIPad - 1 + 1"
-		y2="height - ButtonIPad - 1 + 1"/>
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="ButtonIPad + 1 + 1"
-		y1="ButtonIPad + 1"
-		x2="width - ButtonIPad - 1 + 1"
-		y2="height - ButtonIPad - 1 - 1 + 1"/>
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad + 1 + 1"
-		x2="width - ButtonIPad - 1 - 1 + 1"
-		y2="height - ButtonIPad - 1 + 1"/>
-
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - 1 - ButtonIPad - 1 + 1"
-		x2="width - 1 - ButtonIPad + 1"
-		y2="ButtonIPad - 1 + 1"/>
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="ButtonIPad + 1 + 1"
-		y1="height - 1 - ButtonIPad - 1 + 1"
-		x2="width - 1 - ButtonIPad + 1"
-		y2="ButtonIPad + 1"/>
-	<line color="gtk:dark[ACTIVE]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - 1 - ButtonIPad - 1 - 1 + 1"
-		x2="width - 1 - ButtonIPad - 1 + 1"
-		y2="ButtonIPad - 1 + 1"/>
-
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="ButtonIPad"
-		y1="ButtonIPad"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 1"/>
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="ButtonIPad + 1"
-		y1="ButtonIPad"
-		x2="width - ButtonIPad - 1"
-		y2="height - ButtonIPad - 1 - 1"/>
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="ButtonIPad"
-		y1="ButtonIPad + 1"
-		x2="width - ButtonIPad - 1 - 1"
-		y2="height - ButtonIPad - 1"/>
-
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="ButtonIPad"
-		y1="height - 1 - ButtonIPad - 1"
-		x2="width - 1 - ButtonIPad"
-		y2="ButtonIPad - 1"/>
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="ButtonIPad + 1"
-		y1="height - 1 - ButtonIPad - 1"
-		x2="width - 1 - ButtonIPad"
-		y2="ButtonIPad"/>
-	<line color="gtk:fg[ACTIVE]" width="1"
-		x1="ButtonIPad"
-		y1="height - 1 - ButtonIPad - 1 - 1"
-		x2="width - 1 - ButtonIPad - 1"
-		y2="ButtonIPad - 1"/>
-</draw_ops>
-<!-- End Buttons Icons -->
-
-<!-- Outer Bevel -->
-<draw_ops name="outer_bevel">
-	<rectangle color="gtk:dark[NORMAL]"
-		x="0" y="0" width="width - 1" height="height - 1"/>
-	<rectangle color="gtk:bg[NORMAL]" filled="true"
-		x="1" y="1" width="width - 2" height="height - 2"/>
-</draw_ops>
-
-<draw_ops name="gradient_background">
-	<gradient type="vertical" x="0" y="0" width="width" height="top_height">
-		<color value="gtk:light[SELECTED]"/>
-		<color value="gtk:dark[SELECTED]"/>
-	</gradient>
-</draw_ops>
-
-<draw_ops name="outer_bevel_focused">
-	<gtk_box state="selected" shadow="out" x="2" y="2" width="width - 2"
-		height="height - 2"/>
-	<rectangle color="gtk:bg[NORMAL]" filled="true"
-		x="left_width" y="top_height"
-		width="width - left_width - right_width - 1"
-		height="height - top_height - bottom_height - 1"/>
-	<rectangle color="gtk:fg[NORMAL]"
-		x="0" y="0" width="width - 1" height="height - 1"/>
-	<include name="gradient_background"
-		x="3" y="3" width="width - 7" height="height - 7"/>
-</draw_ops>
-
-<draw_ops name="blank">
-<!-- nothing -->
-</draw_ops>
-
-<draw_ops name="outline_focused">
-	<rectangle color="gtk:fg[NORMAL]"
-		x="left_width - 1" y="top_height - 1"
-		width="width - left_width - right_width + 1"
-		height="height - top_height - bottom_height + 1"/>
-</draw_ops>
-
-<draw_ops name="background">
-	<include name="outer_bevel"/>
-</draw_ops>
-
-<draw_ops name="background_focused">
-	<include name="outer_bevel_focused"/>
-	<include name="outline_focused"/>
-</draw_ops>
-
-<draw_ops name="title_background">
-	<line color="#000000" width="50"
-		x1="width - title_width - IconTitleSpacing + 25 - 1 + 3"
-		y1="0 - 25"
-		x2="width - title_width - IconTitleSpacing - height - 25 - 1 + 3"
-		y2="height + 25"/>
-	<line color="#ffffff" width="50"
-		x1="width - title_width - IconTitleSpacing + 25 + 3"
-		y1="0 - 25"
-		x2="width - title_width - IconTitleSpacing - height - 25 + 3"
-		y2="height + 25"/>
-	<line color="#000000" width="1" 
-		x1="width - 1"
-		y1="0"
-		x2="width - 1"
-		y2="height"/>
-	<rectangle color="#ffffff" filled="true" 
-		x="width - title_width - mini_icon_width - IconTitleSpacing * 3"
-		y="0"
-		width="title_width + mini_icon_width + IconTitleSpacing * 3 - 1"
-		height="height"/>
-</draw_ops>
-
-<draw_ops name="title_text_focused_with_icon">
-	<title color="#000000"
-		x="width - title_width - IconTitleSpacing"
-		y="(height / 2) - (title_height / 2) - 1"/>
-	<icon
-		x="width - title_width - mini_icon_width - (IconTitleSpacing * 2)"
-		y="(height / 2) - (mini_icon_height / 2)"
-		width="mini_icon_width"
-		height="mini_icon_height"/>
-</draw_ops>
-
-<draw_ops name="title_text_focused_no_icon">
-	<title color="gtk:fg[INSENSITIVE]"
-		x="width - title_width - IconTitleSpacing"
-		y="(height / 2) - (title_height / 2)"/>
-	<icon
-		x="width - title_width - height - (IconTitleSpacing * 2)"
-		y="1"
-		width="height - 2"
-		height="height - 2"/>
-</draw_ops>
-
-<draw_ops name="title_text_with_icon">
-	<title color="gtk:dark[NORMAL]"
-		x="width - title_width - IconTitleSpacing"
-		y="(height / 2) - (title_height / 2) - 2"/>
-	<icon alpha="0.33"
-		x="width - title_width - mini_icon_width - (IconTitleSpacing * 2)"
-		y="(height / 2) - (mini_icon_height / 2) - 2"
-		width="mini_icon_width"
-		height="mini_icon_height"/>
-</draw_ops>
-
-<draw_ops name="title_text_no_icon">
-	<title color="gtk:dark[NORMAL]"
-		x="width - title_width - IconTitleSpacing"
-		y="(height / 2) - (title_height / 2)"/>
-	<icon alpha="0.33"
-		x="width - title_width - height - (IconTitleSpacing * 2)"
-		y="1"
-		width="height - 2"
-		height="height - 2"/>
-</draw_ops>
-
-<draw_ops name="title_normal">
-	<include name="title_text_with_icon" x="0" y="3" width="width" height="height - 3"/>
-</draw_ops>
-
-<draw_ops name="title_focused">
-	<include name="title_background"/>
-	<line color="#000000" width="1" 
-		x1="width - title_width - mini_icon_width - IconTitleSpacing * 3"
-		y1="0"
-		x2="width"
-		y2="0"/>
-	<line color="#000000" width="1"
-		x1="width - title_width - mini_icon_width - IconTitleSpacing * 3 - 18"
-		y1="height - 1"
-		x2="width"
-		y2="height - 1"/>
-	<include name="title_text_focused_with_icon" x="0" y="2" width="width" height="height - 3"/>
-</draw_ops>
-
-<draw_ops name="title_maximized">
-	<include name="title_text_with_icon"/>
-</draw_ops>
-
-<draw_ops name="title_maximized_focused">
-	<include name="title_background"/>
-	<include name="title_text_focused_with_icon"/>
-</draw_ops>
-
-<draw_ops name="title_utility">
-	<include name="title_text_no_icon"/>
-</draw_ops>
-
-<draw_ops name="title_utility_focused">
-	<include name="title_background"
-		x="mini_icon_width + IconTitleSpacing"
-		y="0"
-		width="width - mini_icon_width - IconTitleSpacing"
-		height="height"/>
-	<line color="#000000" width="1" 
-		x1="width - title_width - mini_icon_width - IconTitleSpacing * 3"
-		y1="0"
-		x2="width"
-		y2="0"/>
-	<include name="title_text_focused_no_icon"/>
-</draw_ops>
-
-<frame_style name="normal_unfocused" geometry="normal">
-	<piece position="entire_background" draw_ops="background"/>
-
-	<piece position="title" draw_ops="title_normal"/>
-
-	<button function="menu" state="normal"
-		draw_ops="menu_button"/>
-	<button function="menu" state="pressed"
-		draw_ops="menu_button_pressed"/>
-
-	<button function="minimize" state="normal"
-		draw_ops="minimize_button"/>
-	<button function="minimize" state="pressed"
-		draw_ops="minimize_button_pressed"/>
-
-	<button function="maximize" state="normal"
-		draw_ops="maximize_button"/>
-	<button function="maximize" state="pressed"
-		draw_ops="maximize_button_pressed"/>
-
-	<button function="close" state="normal" draw_ops="close_button"/>
-	<button function="close" state="pressed" draw_ops="close_button_pressed"/>
-</frame_style>
-
-<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
-	<piece position="entire_background" draw_ops="background_focused"/>
-	<piece position="title" draw_ops="title_focused"/>
-
-	<button function="close" state="normal"
-		draw_ops="close_button_focused"/>
-	<button function="close" state="prelight"
-		draw_ops="close_button_prelight"/>
-
-	<button function="menu" state="normal"
-		draw_ops="menu_button_focused"/>
-	<button function="menu" state="prelight"
-		draw_ops="menu_button_prelight"/>
-
-	<button function="maximize" state="normal"
-		draw_ops="maximize_button_focused"/>
-	<button function="maximize" state="prelight"
-		draw_ops="maximize_button_prelight"/>
-
-	<button function="minimize" state="normal"
-		draw_ops="minimize_button_focused"/>
-	<button function="minimize" state="prelight"
-		draw_ops="minimize_button_prelight"/>
-</frame_style>
-
-<frame_style name="maximized_unfocused" geometry="normal_small_borders"
-	parent="normal_unfocused">
-	<piece position="entire_background" draw_ops="blank"/>
-
-	<piece position="title" draw_ops="title_maximized"/>
-
-	<button function="maximize" state="normal"
-		draw_ops="restore_button"/>
-	<button function="maximize" state="pressed"
-		draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="maximized_focused" geometry="normal_small_borders"
-	parent="normal_focused">
-	<piece position="entire_background" draw_ops="gradient_background"/>
-	<piece position="title" draw_ops="title_maximized_focused"/>
-
-	<button function="maximize" state="normal"
-		draw_ops="restore_button_focused"/>
-	<button function="maximize" state="pressed"
-		draw_ops="restore_button_pressed"/>
-	<button function="maximize" state="prelight"
-		draw_ops="restore_button_prelight"/>
-</frame_style>
-
-<frame_style name="utility_unfocused" geometry="utility"
-	parent="normal_unfocused">
-	<piece position="title" draw_ops="title_utility"/>
-</frame_style>
-
-<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
-	<piece position="title" draw_ops="title_utility_focused"/>
-</frame_style>
-
-<frame_style name="border" geometry="border" parent="normal_unfocused">
-	<piece position="entire_background" draw_ops="outer_bevel"/>
-	<piece position="title" draw_ops="blank"/>
-</frame_style>
-
-<frame_style_set name="normal">
-	<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
-	<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
-	<frame focus="yes" state="maximized" style="maximized_focused"/>
-	<frame focus="no" state="maximized" style="maximized_unfocused"/>
-	<frame focus="yes" state="shaded" style="normal_focused"/>
-	<frame focus="no" state="shaded" style="normal_unfocused"/>
-	<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
-	<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="utility" parent="normal">
-	<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
-	<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
-<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
-	<frame focus="yes" state="maximized" style="utility_focused"/>
-	<frame focus="no" state="maximized" style="utility_unfocused"/>
-	<frame focus="yes" state="shaded" style="utility_focused"/>
-	<frame focus="no" state="shaded" style="utility_unfocused"/>
-	<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
-	<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="border">
-	<frame focus="yes" state="normal" resize="both" style="border"/>
-	<frame focus="no" state="normal" resize="both" style="border"/>
-	<frame focus="yes" state="maximized" style="border"/>
-	<frame focus="no" state="maximized" style="border"/>
-	<frame focus="yes" state="shaded" style="border"/>
-	<frame focus="no" state="shaded" style="border"/>
-	<frame focus="yes" state="maximized_and_shaded" style="border"/>
-	<frame focus="no" state="maximized_and_shaded" style="border"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="utility"/>
-<window type="modal_dialog" style_set="utility"/>
-<window type="menu" style_set="utility"/>
-<window type="utility" style_set="utility"/>
-<window type="border" style_set="border"/>
-
-<menu_icon function="close" state="normal"
-	draw_ops="close_button_focused"/>
-<menu_icon function="maximize" state="normal"
-	draw_ops="maximize_button_focused"/>
-<menu_icon function="unmaximize" state="normal"
-	draw_ops="restore_button_focused"/>
-<menu_icon function="minimize" state="normal"
-	draw_ops="minimize_button_focused"/>
-
-</metacity_theme>
diff --git a/src/themes/Gorilla/README b/src/themes/Gorilla/README
deleted file mode 100644
index c275e5e..0000000
--- a/src/themes/Gorilla/README
+++ /dev/null
@@ -1,7 +0,0 @@
-* Gorilla *
-
-A metacity theme to accompany Scalable and Unscalable Gorilla nautilus
-themes.
-
-(c) 2001 Jakub 'jimmac' Steiner
-Ported by Kenneth Christiansen
diff --git a/src/themes/Gorilla/active-button.png b/src/themes/Gorilla/active-button.png
deleted file mode 100644
index 64455b3..0000000
Binary files a/src/themes/Gorilla/active-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/active-close-button.png b/src/themes/Gorilla/active-close-button.png
deleted file mode 100644
index 1d29216..0000000
Binary files a/src/themes/Gorilla/active-close-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/active-close-menu-icon.png b/src/themes/Gorilla/active-close-menu-icon.png
deleted file mode 100644
index b77f77a..0000000
Binary files a/src/themes/Gorilla/active-close-menu-icon.png and /dev/null differ
diff --git a/src/themes/Gorilla/active-maximize-button.png b/src/themes/Gorilla/active-maximize-button.png
deleted file mode 100644
index a982e5c..0000000
Binary files a/src/themes/Gorilla/active-maximize-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/active-maximize-menu-icon.png b/src/themes/Gorilla/active-maximize-menu-icon.png
deleted file mode 100644
index 02ccc37..0000000
Binary files a/src/themes/Gorilla/active-maximize-menu-icon.png and /dev/null differ
diff --git a/src/themes/Gorilla/active-menu-button.png b/src/themes/Gorilla/active-menu-button.png
deleted file mode 100644
index b55d707..0000000
Binary files a/src/themes/Gorilla/active-menu-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/active-minimize-button.png b/src/themes/Gorilla/active-minimize-button.png
deleted file mode 100644
index 4205f4e..0000000
Binary files a/src/themes/Gorilla/active-minimize-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/active-minimize-menu-icon.png b/src/themes/Gorilla/active-minimize-menu-icon.png
deleted file mode 100644
index 2927692..0000000
Binary files a/src/themes/Gorilla/active-minimize-menu-icon.png and /dev/null differ
diff --git a/src/themes/Gorilla/gorilla.xcf.bz2 b/src/themes/Gorilla/gorilla.xcf.bz2
deleted file mode 100644
index 89b8565..0000000
Binary files a/src/themes/Gorilla/gorilla.xcf.bz2 and /dev/null differ
diff --git a/src/themes/Gorilla/inactive-close-button.png b/src/themes/Gorilla/inactive-close-button.png
deleted file mode 100644
index c566b12..0000000
Binary files a/src/themes/Gorilla/inactive-close-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/inactive-maximize-button.png b/src/themes/Gorilla/inactive-maximize-button.png
deleted file mode 100644
index 9c83882..0000000
Binary files a/src/themes/Gorilla/inactive-maximize-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/inactive-menu-button.png b/src/themes/Gorilla/inactive-menu-button.png
deleted file mode 100644
index b000a37..0000000
Binary files a/src/themes/Gorilla/inactive-menu-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/inactive-minimize-button.png b/src/themes/Gorilla/inactive-minimize-button.png
deleted file mode 100644
index 4459af4..0000000
Binary files a/src/themes/Gorilla/inactive-minimize-button.png and /dev/null differ
diff --git a/src/themes/Gorilla/metacity-theme-1.xml b/src/themes/Gorilla/metacity-theme-1.xml
deleted file mode 100644
index 7dde366..0000000
--- a/src/themes/Gorilla/metacity-theme-1.xml
+++ /dev/null
@@ -1,260 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-<info>
-  <name>Gorilla</name>
-  <author>Kenneth Christiansen &lt;kenneth@gnu.org&gt; Anders Carlsson &lt;andersca@gnu.org&gt;</author>
-  <copyright>&#194; Ximian, Inc, 2001</copyright>
-  <date>February 8, 2002</date>
-  <description>A port of the Gorilla theme by Jacub Steiner</description>
-</info>
-
-<!-- define constants -->
-<constant name="IconTitleSpacing" value="2"/> <!-- Space between menu button and title -->
-<constant name="ButtonWidth" value="18"/> <!-- Button width -->
-
-<frame_geometry name="normal">
-  <distance name="left_width" value="6"/>
-  <distance name="right_width" value="6"/>
-  <distance name="bottom_height" value="6"/>
-  <distance name="left_titlebar_edge" value="8"/>
-  <distance name="right_titlebar_edge" value="8"/>
-  <aspect_ratio name="button" value="1.0"/>
-  <distance name="title_vertical_pad" value="0"/>
-  <border name="title_border" left="0" right="0" top="7" bottom="4"/>
-  <border name="button_border" left="0" right="0" top="9" bottom="0"/>
-</frame_geometry>
-
-
-<!-- Buttons -->
-
-<draw_ops name="title_tile">
-  <line color="#494d59" x1="0" y1="0" x2="width" y2="0"/>
-  <line color="#515961" x1="0" y1="1" x2="width" y2="1"/>
-</draw_ops>
-
-<!-- Inactive style -->
-<frame_style name="normal" geometry="normal">
-  <piece position="entire_background">
-    <draw_ops>
-      <rectangle color="black" x="1" y="1" width="width - 2" height="height - 2" filled="true"/>
-      <rectangle color="dark gray" x="3" y="3" width="width - 8" height="height - 7" filled="false"/>
-      <rectangle color="light gray" x="4" y="4" width="width - 9" height="height - 8" filled="false"/>
-      <rectangle color="light gray" x="5" y="5" width="width - 11" height="height - 10" filled="false"/>
-      <rectangle color="white" x="6" y="6" width="width - 13" height="height - 12" filled="false"/>
-      <rectangle color="gtk:bg[INSENSITIVE]" x="6" y="6" width="width - 12" height="height - 12" filled="true"/>
-
-      <line color="gtk:bg[INSENSITIVE]" x1="1" y1="1" x2="2" y2="2"/>
-      <line color="gtk:bg[INSENSITIVE]" x1="1" y1="height - 2" x2="1" y2="height"/>
-      <line color="gtk:bg[INSENSITIVE]" x1="width - 2" y1="1" x2="width - 1" y2="2"/>
-      <line color="gtk:bg[INSENSITIVE]" x1="width - 1" y1="height - 1" x2="width - 2" y2="height - 2"/>
-   </draw_ops>
-  </piece>
-
-  <piece position="title">
-    <draw_ops>
-      <title color="gray" x="IconTitleSpacing" y="0"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="titlebar">
-    <draw_ops>
-      <rectangle color="black" x="6" y="6" width="width - 12" height="height - 10" filled="true"/>
-      <tile name="title_tile" tile_width="width" tile_height="2" x="8" y="8" width="width - 16" height="height - 14"/>
-    </draw_ops>
-  </piece>
-
-  <button function="close" state="normal">
-    <draw_ops>
-      <image filename="inactive-close-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="pressed">
-    <draw_ops>
-      <image filename="inactive-close-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="normal">
-    <draw_ops>
-      <image filename="inactive-minimize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="pressed">
-    <draw_ops>
-      <image filename="inactive-minimize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <image filename="inactive-maximize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <image filename="inactive-maximize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="normal">
-    <draw_ops>
-      <image filename="inactive-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="pressed">
-    <draw_ops>
-      <image filename="inactive-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-
-</frame_style>
-
-
-<!-- Active (focused) shaded style -->
-<frame_style name="normal_shaded" geometry="normal" parent="normal">
-
-</frame_style>
-
-<!-- Active (focused) style -->
-<frame_style name="focused" geometry="normal">
-  <piece position="entire_background">
-    <draw_ops>
-      <rectangle color="black" x="0" y="0" width="width" height="height" filled="true"/>
-      <rectangle color="dark gray" x="3" y="3" width="width - 8" height="height - 7" filled="false"/>
-      <rectangle color="light gray" x="4" y="4" width="width - 9" height="height - 8" filled="false"/>
-      <rectangle color="light gray" x="5" y="5" width="width - 11" height="height - 10" filled="false"/>
-      <rectangle color="white" x="6" y="6" width="width - 13" height="height - 12" filled="false"/>
-      <rectangle color="gtk:bg[NORMAL]" x="6" y="6" width="width - 12" height="height - 12" filled="true"/>
-
-      <line color="gtk:bg[NORMAL]" x1="0" y1="0" x2="1" y2="1"/>
-      <line color="gtk:bg[NORMAL]" x1="0" y1="height - 1" x2="1" y2="height"/>
-      <line color="gtk:bg[NORMAL]" x1="width - 1" y1="0" x2="width" y2="1"/>
-      <line color="gtk:bg[NORMAL]" x1="width" y1="height" x2="width - 1" y2="height - 1"/>
-   </draw_ops>
-  </piece>
-
-  <piece position="title">
-    <draw_ops>
-      <title color="white" x="IconTitleSpacing" y="0"/>
-    </draw_ops>
-  </piece>
-
-  <piece position="titlebar">
-    <draw_ops>
-      <rectangle color="black" x="6" y="6" width="width - 12" height="height - 10" filled="true"/>
-      <tile name="title_tile" tile_width="width" tile_height="2" x="8" y="8" width="width - 16" height="height - 14"/>
-    </draw_ops>
-  </piece>
-
-  <button function="close" state="normal">
-    <draw_ops>
-      <image filename="active-close-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="close" state="pressed">
-    <draw_ops>
-      <image filename="active-close-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="normal">
-    <draw_ops>
-      <image filename="active-minimize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="minimize" state="pressed">
-    <draw_ops>
-      <image filename="active-minimize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="normal">
-    <draw_ops>
-      <image filename="active-maximize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="maximize" state="pressed">
-    <draw_ops>
-      <image filename="active-maximize-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="normal">
-    <draw_ops>
-      <image filename="active-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-  <button function="menu" state="pressed">
-    <draw_ops>
-      <image filename="active-menu-button.png" x="0" y="0" width="width" height="height"/>
-    </draw_ops>
-  </button>
-
-</frame_style>
-
-<!-- Active (focused) shaded style -->
-<frame_style name="focused_shaded" geometry="normal" parent="focused">
-
-</frame_style>
-
-<frame_style_set name="normal">
-<frame focus="yes" state="shaded" style="focused_shaded"/>
-<frame focus="yes" state="normal" resize="both" style="focused"/>
-<frame focus="yes" state="maximized" style="focused"/>
-<frame focus="yes" state="maximized_and_shaded" style="focused_shaded"/>
-<frame focus="no" state="normal" resize="both" style="normal"/>
-<frame focus="no" state="shaded" style="normal_shaded"/>
-<frame focus="no" state="maximized" style="normal"/>
-<frame focus="no" state="maximized_and_shaded" style="normal_shaded"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="normal"/>
-<window type="modal_dialog" style_set="normal"/>
-<window type="menu" style_set="normal"/>
-<window type="utility" style_set="normal"/>
-<window type="border" style_set="normal"/>
-
-<menu_icon function="maximize" state="normal">
-  <draw_ops>
-    <image filename="active-maximize-menu-icon.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-
-<menu_icon function="close" state="normal">
-  <draw_ops>
-    <image filename="active-close-menu-icon.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-<menu_icon function="minimize" state="normal">
-  <draw_ops>
-    <image filename="active-minimize-menu-icon.png" 
-           x="(width - object_width) / 2"
-           y="(height - object_height) / 2"
-           width="object_width" height="object_height"/>
-  </draw_ops>
-</menu_icon>
-
-<menu_icon function="unmaximize" state="normal">
-  <draw_ops>
-  </draw_ops>
-</menu_icon>
-
-</metacity_theme>
diff --git a/src/themes/Makefile.am b/src/themes/Makefile.am
deleted file mode 100644
index 82c504e..0000000
--- a/src/themes/Makefile.am
+++ /dev/null
@@ -1,50 +0,0 @@
-THEMES=			\
-	Atlanta		\
-	Bright		\
-	Crux		\
-	Esco		\
-	AgingGorilla	\
-	Metabox		\
-	Simple
-
-THEME_DIR=$(datadir)/themes
-THEME_SUBDIR=metacity-1
-
-install-data-local:
-	$(mkinstalldirs) $(DESTDIR)$(THEME_DIR);					     \
-	for THEME in $(THEMES); do							     \
-		echo '-- Installing theme '$$THEME;					     \
-		$(mkinstalldirs) $(DESTDIR)$(THEME_DIR)/$$THEME;			     \
-		$(mkinstalldirs) $(DESTDIR)$(THEME_DIR)/$$THEME/$(THEME_SUBDIR);	     \
-		(installfiles=`find $(srcdir)/$$THEME -name "*.png" -o -name "*.xml"`;	     \
-		 for i in $$installfiles; do						     \
-			echo '-- Installing '$$i ;					     \
-		    	$(INSTALL_DATA) $$i $(DESTDIR)$(THEME_DIR)/$$THEME/$(THEME_SUBDIR) ; \
-	  	 done)									     \
-	done
-
-uninstall-local:
-	for THEME in $(THEMES); do							     \
-		echo '-- Uninstalling theme '$$THEME;					     \
-		(uninstallfiles=`find $(srcdir)/$$THEME -name "*.png" -o -name "*.xml"`;     \
-		 for i in $$uninstallfiles; do						     \
-	                i=`basename $$i`;                                                    \
-			echo '-- Removing '$$i ;					     \
-		    	rm -f $(DESTDIR)$(THEME_DIR)/$$THEME/$(THEME_SUBDIR)/$$i ;           \
-	  	 done);									     \
-		rmdir $(DESTDIR)$(THEME_DIR)/$$THEME/$(THEME_SUBDIR) || :;	             \
-		rmdir $(DESTDIR)$(THEME_DIR)/$$THEME || :;			             \
-	done
-	-rmdir $(DESTDIR)$(THEME_DIR)
-
-dist-hook:
-	mkdir $(distdir)/themes;							\
-	for THEME in $(THEMES); do							\
-		echo '-- Disting theme '$$THEME;					\
-		mkdir $(distdir)/$$THEME;						\
-		(installfiles=`find $(srcdir)/$$THEME -name "*.png" -o -name "*.xml"`;	\
-		 for i in $$installfiles; do						\
-			echo '-- Disting '$$i ;						\
-		    	cp $$i $(distdir)/$$THEME;					\
-	  	 done)									\
-	done
diff --git a/src/themes/Metabox/metacity-theme-1.xml b/src/themes/Metabox/metacity-theme-1.xml
deleted file mode 100644
index ac90a3f..0000000
--- a/src/themes/Metabox/metacity-theme-1.xml
+++ /dev/null
@@ -1,479 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-	<info>
-		<name>Metabox</name>
-		<author>Garrett LeSage &lt;garrett@redhat.com&gt; based on Havoc Pennington &lt;hp@redhat.com&gt;'s Atlanta theme</author>
-		<copyright>&#194; Garrett LeSage, Havoc Pennington, 2002</copyright>
-		<date>Jun 12, 2002</date>
-		<description>Looks a little like BlackBox.</description>
-	</info>
-
-	<frame_geometry name="normal">
-		<distance name="left_width" value="1"/>
-		<distance name="right_width" value="1"/>
-		<distance name="bottom_height" value="6"/>
-		<distance name="left_titlebar_edge" value="1"/>
-		<distance name="right_titlebar_edge" value="1"/>
-		<distance name="title_vertical_pad" value="3"/>
-		<border name="title_border" left="0" right="0" top="1" bottom="1"/>
-		<border name="button_border" left="0" right="0" top="1" bottom="1"/>
-		<aspect_ratio name="button" value="1.0"/>
-	</frame_geometry>
-
-	<!-- strip borders off the normal geometry -->
-	<frame_geometry name="normal_small_borders" parent="normal">
-		<distance name="left_width" value="0"/>
-		<distance name="right_width" value="0"/>
-		<distance name="bottom_height" value="0"/>
-		<distance name="left_titlebar_edge" value="0"/>
-		<distance name="right_titlebar_edge" value="0"/>
-	</frame_geometry>
-
-	<frame_geometry name="utility" title_scale="small">
-		<distance name="left_width" value="1"/>
-		<distance name="right_width" value="1"/>
-		<distance name="bottom_height" value="4"/>
-		<distance name="left_titlebar_edge" value="1"/>
-		<distance name="right_titlebar_edge" value="1"/>
-		<distance name="title_vertical_pad" value="1"/>
-		<border name="title_border" left="0" right="0" top="1" bottom="1"/>
-		<border name="button_border" left="0" right="0" top="1" bottom="1"/>
-		<aspect_ratio name="button" value="1.0"/>
-	</frame_geometry>
-
-	<frame_geometry name="border" has_title="false">
-		<distance name="left_width" value="4"/>
-		<distance name="right_width" value="4"/>
-		<distance name="bottom_height" value="4"/>
-		<distance name="left_titlebar_edge" value="0"/>
-		<distance name="right_titlebar_edge" value="0"/>
-		<distance name="button_width" value="0"/>
-		<distance name="button_height" value="0"/>
-		<distance name="title_vertical_pad" value="4"/>
-		<border name="title_border" left="0" right="0" top="0" bottom="0"/>
-		<border name="button_border" left="0" right="0" top="0" bottom="0"/>
-	</frame_geometry>
-
-	<!-- define constants -->
-	<constant name="ArrowWidth" value="7"/>
-	<constant name="ArrowHeight" value="5"/>
-	<constant name="ButtonIPad" value="4"/>
-	<constant name="ThickLineWidth" value="3"/>
-	<constant name="IconTitleSpacing" value="2"/>
-	<constant name="SpacerWidth" value="8"/>
-	<constant name="SpacerHeight" value="11"/>
-
-	<!-- Backgrounds -->
-
-	<draw_ops name="bg_active">
-		<gradient type="vertical" x="0" y="0" width="width" height="height">
-			<color value="shade/gtk:bg[SELECTED]/1.25"/>
-			<color value="shade/gtk:bg[SELECTED]/0.85"/>
-		</gradient>
-	</draw_ops>
-
-	<draw_ops name="bg_inactive">
-		<gradient type="vertical" x="0" y="0" width="width" height="height">
-			<color value="shade/gtk:bg[INSENSITIVE]/1.1"/>
-			<color value="shade/gtk:bg[INSENSITIVE]/0.9"/>
-		</gradient>
-	</draw_ops>
-
-	<draw_ops name="bg_button_active">
-		<include name="bg_active"/>
-	</draw_ops>
-
-	<draw_ops name="bg_button_inactive">
-		<include name="bg_inactive"/>
-	</draw_ops>
-
-	<draw_ops name="bg_title_active">
-		<include name="bg_active"/>
-	</draw_ops>
-
-	<draw_ops name="bg_title_inactive">
-		<include name="bg_inactive"/>
-	</draw_ops>
-
-	<!-- Buttons -->
-
-	<draw_ops name="button_pressed_bg">
-		<gradient type="vertical" x="0" y="0" width="width" height="height" alpha="0.25">
-			<color value="shade/gtk:bg[SELECTED]/0.75"/>
-			<color value="shade/gtk:bg[SELECTED]/0.5"/>
-		</gradient>
-	</draw_ops>
-
-	<draw_ops name="button_prelight_bg">
-		<gradient type="vertical" x="0" y="0" width="width" height="height" alpha="0.25">
-			<color value="shade/gtk:bg[SELECTED]/2.0"/>
-			<color value="shade/gtk:bg[SELECTED]/1.5"/>
-		</gradient>
-	</draw_ops>
-
-	<draw_ops name="menu_button">
-		<include name="bg_button_active"/>
-		<line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" x1="ButtonIPad+1" y1="width/2+2" x2="(width-ButtonIPad)/2+1" y2="width/2+2"/>
-		<line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" x1="ButtonIPad+1" y1="width/2-2" x2="(width-ButtonIPad)/2+1" y2="width/2-2"/>
-		<line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" x1="width-ButtonIPad-1" y1="width/2+2" x2="width-(width-ButtonIPad)/2-1" y2="width/2+2"/>
-		<line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" x1="width-ButtonIPad-1" y1="width/2-2" x2="width-(width-ButtonIPad)/2-1" y2="width/2-2"/>
-	</draw_ops>
-
-	<draw_ops name="menu_button_pressed">
-		<include name="menu_button"/>
-		<include name="button_pressed_bg"/>
-	</draw_ops>
-
-	<draw_ops name="menu_button_prelight">
-		<include name="menu_button"/>
-		<include name="button_prelight_bg"/>
-	</draw_ops>
-
-	<draw_ops name="menu_button_unfocused">
-		<include name="bg_button_inactive"/>
-		<line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" x1="ButtonIPad+1" y1="width/2+2" x2="(width-ButtonIPad)/2+1" y2="width/2+2"/>
-		<line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" x1="ButtonIPad+1" y1="width/2-2" x2="(width-ButtonIPad)/2+1" y2="width/2-2"/>
-		<line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" x1="width-ButtonIPad-1" y1="width/2+2" x2="width-(width-ButtonIPad)/2-1" y2="width/2+2"/>
-		<line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" x1="width-ButtonIPad-1" y1="width/2-2" x2="width-(width-ButtonIPad)/2-1" y2="width/2-2"/>
-	</draw_ops>
-
-	<draw_ops name="minimize_button">
-		<include name="bg_button_active"/>
-		<line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75"
-			x1="ButtonIPad"
-			y1="height - ButtonIPad - ThickLineWidth + 1"
-			x2="width - ButtonIPad"
-			y2="height - ButtonIPad - ThickLineWidth + 1"
-			width="3"/> <!-- FIXME allow a constant here -->
-	</draw_ops>
-
-	<draw_ops name="minimize_button_pressed">
-		<include name="minimize_button"/>
-		<include name="button_pressed_bg"/>
-	</draw_ops>
-
-	<draw_ops name="minimize_button_prelight">
-		<include name="minimize_button"/>
-		<include name="button_prelight_bg"/>
-	</draw_ops>
-
-	<draw_ops name="minimize_button_unfocused">
-		<include name="bg_button_inactive"/>
-		<line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35"
-			x1="ButtonIPad"
-			y1="height - ButtonIPad - ThickLineWidth + 1"
-			x2="width - ButtonIPad"
-			y2="height - ButtonIPad - ThickLineWidth + 1"
-			width="3"/> <!-- FIXME allow a constant here -->
-	</draw_ops>
-
-	<draw_ops name="maximize_button">
-		<include name="bg_button_active"/>
-		<rectangle color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" filled="false"
-			x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-1" height="height-ButtonIPad*2-1"/>
-		<line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="3"
-			x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad" y2="ButtonIPad+1"/>
-	</draw_ops>
-
-	<draw_ops name="maximize_button_pressed">
-		<include name="maximize_button"/>
-		<include name="button_pressed_bg"/>
-	</draw_ops>
-
-	<draw_ops name="maximize_button_prelight">
-		<include name="maximize_button"/>
-		<include name="button_prelight_bg"/>
-	</draw_ops>
-
-	<draw_ops name="maximize_button_unfocused">
-		<include name="bg_button_inactive"/>
-		<rectangle color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" filled="false"
-			x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-1" height="height-ButtonIPad*2-1"/>
-		<line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="3"
-			x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad" y2="ButtonIPad+1"/>
-	</draw_ops>
-
-	<draw_ops name="mini_window_icon">
-		<rectangle color="gtk:bg[SELECTED]" filled="true"
-			x="0" y="0" width="width-1" height="height-1"/>
-		<rectangle color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" filled="false"
-			x="0" y="0" width="width-1" height="height-1"/>
-		<line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2"
-			x1="0" y1="1" x2="width" y2="1"/>
-	</draw_ops>
-
-	<draw_ops name="mini_window_icon_unfocused">
-		<rectangle color="gtk:bg[NORMAL]" filled="true"
-			x="0" y="0" width="width-1" height="height-1"/>
-		<rectangle color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" filled="false"
-			x="0" y="0" width="width-1" height="height-1"/>
-		<line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2"
-			x1="0" y1="1" x2="width" y2="1"/>
-	</draw_ops>
-
-	<draw_ops name="restore_button">
-		<include name="bg_button_active"/>
-		<include name="mini_window_icon" 
-			x="3 + ButtonIPad" y="ButtonIPad" 
-			width="width - 7 - ButtonIPad"
-			height="height - 7 - ButtonIPad"/>
-		<include name="mini_window_icon" 
-			x="ButtonIPad" y="3 + ButtonIPad"
-			width="width - 7 - ButtonIPad"
-			height="height - 7 - ButtonIPad"/>
-	</draw_ops>
-
-	<draw_ops name="restore_button_pressed">
-		<include name="restore_button"/>
-		<include name="button_pressed_bg"/>
-	</draw_ops>
-
-	<draw_ops name="restore_button_prelight">
-		<include name="restore_button"/>
-		<include name="button_prelight_bg"/>
-	</draw_ops>
-
-	<draw_ops name="restore_button_unfocused">
-		<include name="bg_button_inactive"/>
-		<include name="mini_window_icon_unfocused" 
-			x="3 + ButtonIPad" y="ButtonIPad" 
-			width="width - 7 - ButtonIPad"
-			height="height - 7 - ButtonIPad"/>
-		<include name="mini_window_icon_unfocused" 
-			x="ButtonIPad" y="3 + ButtonIPad"
-			width="width - 7 - ButtonIPad"
-			height="height - 7 - ButtonIPad"/>
-	</draw_ops>
-
-	<draw_ops name="close_button">
-                <include name="bg_button_active"/>
-                <!-- draw longer lines and clip for 'x' with symmetrical endpoints &lt;joefefifo@yahoo.com&gt;  -->
-                <clip x="ButtonIPad" y="ButtonIPad" 
-                        width="width - ButtonIPad - 4" 
-                        height="height - ButtonIPad - 4"/>
-                <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75"
-			width="2" 
-			x1="ButtonIPad" y1="ButtonIPad"
-			x2="width - ButtonIPad" y2="height - ButtonIPad"/>
-		
-                <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75"
-			width="2"
-    	                x1="ButtonIPad" y1="height - ButtonIPad - 1"
-			x2="width - ButtonIPad" y2="ButtonIPad - 1"/>
-	</draw_ops>
-
-	<draw_ops name="close_button_pressed">
-		<include name="close_button"/>
-		<include name="button_pressed_bg"/>
-	</draw_ops>
-
-	<draw_ops name="close_button_prelight">
-		<include name="close_button"/>
-		<include name="button_prelight_bg"/>
-	</draw_ops>
-
-	<draw_ops name="close_button_unfocused">
-                <include name="bg_button_inactive"/>
-                <!-- draw longer lines and clip for 'x' with symmetrical endpoints &lt;joefefifo@yahoo.com&gt; -->
-                <clip x="ButtonIPad" y="ButtonIPad" 
-                        width="width - ButtonIPad - 4" 
-                        height="height - ButtonIPad - 4"/>
-                <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35"
-			width="2"
-			x1="ButtonIPad" y1="ButtonIPad"
-			x2="width - ButtonIPad" y2="height - ButtonIPad"/>
-                <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35"
-			width="2"
-			x1="ButtonIPad" y1="height - ButtonIPad - 1"
-			x2="width - ButtonIPad" y2="ButtonIPad - 1"/>
-	</draw_ops>
-
-	<draw_ops name="outer_bevel">
-		<rectangle color="#000000"
-			x="0" y="0" width="width-1" height="height-1"/>
-		<line color="gtk:light[NORMAL]"
-			x1="1" y1="1" x2="1" y2="height-2"/>
-		<line color="gtk:light[NORMAL]"
-			x1="1" y1="1" x2="width-2" y2="1"/>
-		<line color="gtk:dark[NORMAL]"
-			x1="width-2" y1="1" x2="width-2" y2="height-2"/>
-		<line color="gtk:dark[NORMAL]"
-			x1="1" y1="height-2" x2="width-2" y2="height-2"/>        
-	</draw_ops>
-
-	<draw_ops name="blank">
-		<!-- nothing -->
-	</draw_ops>
-
-	<draw_ops name="focus_outline">
-		<rectangle color="#000000"
-			x="left_width-1" y="top_height-1"
-			width="width-left_width-right_width+1"
-			height="height-top_height-bottom_height+1"/>
-	</draw_ops>
-
-	<draw_ops name="focus_background">
-		<include name="outer_bevel"/>
-		<include name="focus_outline"/>
-	</draw_ops>
-
-	<draw_ops name="title_text_focused_with_icon">
-		<clip x="0" y="0" width="width" height="height"/>
-		<title color="gtk:fg[SELECTED]"
-			x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
-			y="((height - title_height) / 2) `max` 0"/>
-		<icon  x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
-			y="(height-mini_icon_height) / 2"
-			width="mini_icon_width" height="mini_icon_height"/>
-	</draw_ops>
-
-	<draw_ops name="title_text_focused_no_icon">
-		<clip x="0" y="0" width="width" height="height"/>
-		<title color="gtk:fg[SELECTED]"
-			x="(0 `max` (width-title_width)) / 2"
-			y="((height - title_height) / 2) `max` 0"/>
-	</draw_ops>
-
-	<draw_ops name="title_text_with_icon">
-		<clip x="0" y="0" width="width" height="height"/>
-		<title color="gtk:fg[INSENSITIVE]"
-			x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
-			y="((height - title_height) / 2) `max` 0"/>
-		<icon  x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
-			y="(height-mini_icon_height) / 2"
-			width="mini_icon_width" height="mini_icon_height"/>
-	</draw_ops>
-
-	<draw_ops name="title_text_no_icon">
-		<clip x="0" y="0" width="width" height="height"/>
-		<title color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35"
-			x="(0 `max` (width-title_width)) / 2"
-			y="((height - title_height) / 2) `max` 0"/>
-	</draw_ops>
-
-	<draw_ops name="title_normal">
-		<include name="bg_title_inactive"/>
-		<include name="title_text_no_icon"/>
-	</draw_ops>
-
-	<draw_ops name="title_focused">
-		<include name="bg_title_active"/>
-		<include name="title_text_focused_no_icon"/>
-	</draw_ops>
-
-	<draw_ops name="title_utility">
-		<include name="title_text_no_icon"/>
-	</draw_ops>
-
-	<draw_ops name="title_utility_focused">
-		<include name="bg_title_active"/>
-		<include name="title_text_focused_no_icon"/>
-	</draw_ops>
-
-	<frame_style name="normal_unfocused" geometry="normal">
-		<piece position="entire_background" draw_ops="focus_background"/>
-		<piece position="title" draw_ops="title_normal"/>
-
-		<!-- we don't specify for prelight, so normal is used -->
-		<button function="close" state="normal" draw_ops="close_button_unfocused"/>
-		<button function="close" state="pressed" draw_ops="close_button_pressed"/>
-		<button function="minimize" state="normal" draw_ops="minimize_button_unfocused"/>
-		<button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
-		<button function="maximize" state="normal" draw_ops="maximize_button_unfocused"/>
-		<button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
-		<button function="menu" state="normal" draw_ops="menu_button_unfocused"/>
-		<button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
-	</frame_style>
-
-	<frame_style name="normal_focused" geometry="normal">
-		<piece position="entire_background" draw_ops="focus_background"/>
-		<piece position="title" draw_ops="title_focused"/>
-
-		<!-- we don't specify for prelight, so normal is used -->
-		<button function="close" state="normal" draw_ops="close_button"/>
-		<button function="close" state="pressed" draw_ops="close_button_pressed"/>
-		<button function="close" state="prelight" draw_ops="close_button_prelight"/>
-		<button function="minimize" state="normal" draw_ops="minimize_button"/>
-		<button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
-		<button function="minimize" state="prelight" draw_ops="minimize_button_prelight"/>
-		<button function="maximize" state="normal" draw_ops="maximize_button"/>
-		<button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
-		<button function="maximize" state="prelight" draw_ops="maximize_button_prelight"/>
-		<button function="menu" state="normal" draw_ops="menu_button"/>
-		<button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
-		<button function="menu" state="prelight" draw_ops="menu_button_prelight"/>
-	</frame_style>
-
-	<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
-		<piece position="entire_background" draw_ops="blank"/>
-		<button function="maximize" state="normal" draw_ops="restore_button_unfocused"/>
-		<button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-	</frame_style>
-
-	<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
-		<piece position="entire_background" draw_ops="focus_outline"/>
-		<button function="maximize" state="normal" draw_ops="restore_button"/>
-		<button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-		<button function="maximize" state="prelight" draw_ops="restore_button_prelight"/>
-	</frame_style>
-
-	<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
-		<piece position="title" draw_ops="title_utility"/>
-	</frame_style>
-
-	<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
-		<piece position="title" draw_ops="title_utility_focused"/>
-	</frame_style>
-
-	<frame_style name="border" geometry="border" parent="normal_unfocused">
-		<piece position="entire_background" draw_ops="outer_bevel"/>
-		<piece position="title" draw_ops="blank"/>
-	</frame_style>
-
-	<frame_style_set name="normal">
-		<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
-		<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
-		<frame focus="yes" state="maximized" style="maximized_focused"/>
-		<frame focus="no" state="maximized" style="maximized_unfocused"/>
-		<frame focus="yes" state="shaded" style="normal_focused"/>
-		<frame focus="no" state="shaded" style="normal_unfocused"/>
-		<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
-		<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
-	</frame_style_set>
-
-	<frame_style_set name="utility" parent="normal">
-		<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
-		<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
-		<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
-		<frame focus="yes" state="maximized" style="utility_focused"/>
-		<frame focus="no" state="maximized" style="utility_unfocused"/>
-		<frame focus="yes" state="shaded" style="utility_focused"/>
-		<frame focus="no" state="shaded" style="utility_unfocused"/>
-		<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
-		<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
-	</frame_style_set>
-
-	<frame_style_set name="border">
-		<frame focus="yes" state="normal" resize="both" style="border"/>
-		<frame focus="no" state="normal" resize="both" style="border"/>
-		<frame focus="yes" state="maximized" style="border"/>
-		<frame focus="no" state="maximized" style="border"/>
-		<frame focus="yes" state="shaded" style="border"/>
-		<frame focus="no" state="shaded" style="border"/>
-		<frame focus="yes" state="maximized_and_shaded" style="border"/>
-		<frame focus="no" state="maximized_and_shaded" style="border"/>
-	</frame_style_set>
-
-	<window type="normal" style_set="normal"/>
-	<window type="dialog" style_set="normal"/>
-	<window type="modal_dialog" style_set="normal"/>
-	<window type="menu" style_set="normal"/>
-	<window type="utility" style_set="utility"/>
-	<window type="border" style_set="border"/>
-
-	<menu_icon function="close" state="normal" draw_ops="close_button"/>
-	<menu_icon function="maximize" state="normal" draw_ops="maximize_button"/>
-	<menu_icon function="unmaximize" state="normal" draw_ops="restore_button"/>
-	<menu_icon function="minimize" state="normal" draw_ops="minimize_button"/>
-
-</metacity_theme>
diff --git a/src/themes/Simple/close.png b/src/themes/Simple/close.png
deleted file mode 100644
index 3c29292..0000000
Binary files a/src/themes/Simple/close.png and /dev/null differ
diff --git a/src/themes/Simple/maximize.png b/src/themes/Simple/maximize.png
deleted file mode 100644
index e487352..0000000
Binary files a/src/themes/Simple/maximize.png and /dev/null differ
diff --git a/src/themes/Simple/maximized.png b/src/themes/Simple/maximized.png
deleted file mode 100644
index 5e3ad4c..0000000
Binary files a/src/themes/Simple/maximized.png and /dev/null differ
diff --git a/src/themes/Simple/metacity-theme-1.xml b/src/themes/Simple/metacity-theme-1.xml
deleted file mode 100644
index ec97ce8..0000000
--- a/src/themes/Simple/metacity-theme-1.xml
+++ /dev/null
@@ -1,346 +0,0 @@
-<?xml version="1.0"?>
-<metacity_theme>
-<info>
-  <name>Simple</name>
-  <author>Tuomas Kuosmanen &lt;tigert@ximian.com&gt;</author>
-  <copyright>&#194; Tuomas Kuosmanen, 2002, based on Atlanta theme by Havoc.</copyright>
-  <date>April, 2002</date>
-  <description>Default GNOME window theme</description>
-</info>
-
-<frame_geometry name="normal">
-  <distance name="left_width" value="4"/>
-  <distance name="right_width" value="4"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="2"/>
-  <distance name="right_titlebar_edge" value="2"/>
-  <distance name="button_width" value="16"/>
-  <distance name="button_height" value="16"/>
-  <distance name="title_vertical_pad" value="0"/>
-  <border name="title_border" left="1" right="1" top="2" bottom="2"/>
-  <border name="button_border" left="1" right="1" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- strip borders off the normal geometry -->
-<frame_geometry name="normal_small_borders" parent="normal">
-  <distance name="left_width" value="0"/>
-  <distance name="right_width" value="0"/>
-  <distance name="bottom_height" value="0"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-</frame_geometry>
-
-<frame_geometry name="utility" title_scale="xx-small">
-  <distance name="left_width" value="3"/>
-  <distance name="right_width" value="3"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="3"/>
-  <distance name="right_titlebar_edge" value="3"/>
-  <distance name="button_width" value="16"/>
-  <distance name="button_height" value="16"/>
-  <distance name="title_vertical_pad" value="1"/>
-  <border name="title_border" left="3" right="4" top="3" bottom="3"/>
-  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<frame_geometry name="border" has_title="false">
-  <distance name="left_width" value="4"/>
-  <distance name="right_width" value="4"/>
-  <distance name="bottom_height" value="4"/>
-  <distance name="left_titlebar_edge" value="0"/>
-  <distance name="right_titlebar_edge" value="0"/>
-  <distance name="button_width" value="0"/>
-  <distance name="button_height" value="0"/>
-  <distance name="title_vertical_pad" value="4"/>
-  <border name="title_border" left="0" right="0" top="0" bottom="0"/>
-  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
-</frame_geometry>
-
-<!-- define constants -->
-<constant name="ArrowWidth" value="8"/>
-<constant name="ArrowHeight" value="4"/>
-<constant name="ButtonIPad" value="4"/>
-<constant name="ThickLineWidth" value="3"/>
-<constant name="IconTitleSpacing" value="6"/>
-<constant name="SpacerWidth" value="2"/>
-<constant name="SpacerHeight" value="10"/>
-
-<!-- Buttons -->
-
-<draw_ops name="button_pressed_bg">
-  <rectangle color="gtk:light[NORMAL]" filled="true"
-             x="1" y="1" width="width" height="height"/>
-  <rectangle color="gtk:dark[NORMAL]" filled="true"
-             x="0" y="0" width="width - 1" height="height - 1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.9" filled="true"
-             x="1" y="1" width="width - 2" height="height - 2"/>
-  <!-- gtk_box state="active" shadow="out" x="0" y="0" width="width" height="height"/ -->
-</draw_ops>
-
-<draw_ops name="menu_button">
-  <icon  x="1"
-         y="1"
-         width="width-2" height="height-2"/>
-</draw_ops>
-
-<draw_ops name="menu_button_pressed">
-  <include name="menu_button"/>
-</draw_ops>
-
-<draw_ops name="minimize_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad"
-        y1="height - ButtonIPad - ThickLineWidth + 3"
-        x2="width"
-        y2="height - ButtonIPad - ThickLineWidth + 3"
-        width="2"/>
-</draw_ops>
-
-<draw_ops name="minimize_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="minimize_button"/>
-</draw_ops>
-
-<draw_ops name="maximize_button">
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2 + 2" 
-             height="height-ButtonIPad*2 + 1"/>
-  <line color="gtk:fg[NORMAL]" width="2"
-        x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad + 2" 
-        y2="ButtonIPad+2"/>
-</draw_ops>
-
-<draw_ops name="maximize_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="maximize_button"/>
-</draw_ops>
-
-<draw_ops name="mini_window_icon">
-  <rectangle color="gtk:bg[NORMAL]" filled="true"
-             x="0" y="0" width="width-1" height="height-1"/>
-  <rectangle color="gtk:fg[NORMAL]" filled="false"
-             x="0" y="0" width="width-1" height="height-1"/>
-  <line color="gtk:fg[NORMAL]" width="2" x1="0" y1="1" x2="width" y2="1"/>
-</draw_ops>
-
-<draw_ops name="restore_button">
-  <include name="mini_window_icon"
-           x="3 + ButtonIPad" y="3 + ButtonIPad"
-           width="width - 5 - ButtonIPad"
-           height="height - 5 - ButtonIPad"/>
-  <include name="mini_window_icon"
-           x="ButtonIPad" y="ButtonIPad"
-           width="width - 5 - ButtonIPad"
-           height="height - 5 - ButtonIPad"/>
-</draw_ops>
-
-<draw_ops name="restore_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="restore_button"/>
-</draw_ops>
-
-<draw_ops name="close_button">
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad" y1="ButtonIPad"
-        x2="width - ButtonIPad + 1" y2="height - ButtonIPad + 1" width="3"/>
-  <line color="gtk:fg[NORMAL]"
-        x1="ButtonIPad - 1" y1="height - ButtonIPad"
-        x2="width - ButtonIPad + 1" y2="ButtonIPad" width="3"/>
-</draw_ops>
-
-<draw_ops name="close_button_pressed">
-  <include name="button_pressed_bg"/>
-  <include name="close_button"/>
-</draw_ops>
-
-<draw_ops name="outer_bevel">
-  <rectangle color="gtk:fg[NORMAL]"
-             x="0" y="0" width="width" height="height" filled="true"/>
-  <rectangle color="gtk:bg[NORMAL]"
-             x="1" y="1" width="width-2" height="height-2" filled="true"/>
-  <line color="gtk:light[NORMAL]"
-        x1="1" y1="1" x2="1" y2="height-3"/>
-  <line color="gtk:light[NORMAL]"
-        x1="1" y1="1" x2="width-3" y2="1"/>
-  <line color="gtk:dark[NORMAL]"
-        x1="width-2" y1="2" x2="width-2" y2="height-2"/>
-  <line color="gtk:dark[NORMAL]"
-        x1="2" y1="height-2" x2="width-3" y2="height-2"/>        
-</draw_ops>
-
-<draw_ops name="blank">
-<!-- nothing -->
-</draw_ops>
-
-<draw_ops name="focus_outline">
-  <rectangle color="gtk:dark[NORMAL]"
-             x="left_width-1" y="top_height-1"
-             width="width-left_width-right_width+1"
-             height="height-top_height-bottom_height+1"/>
-</draw_ops>
-
-<draw_ops name="focus_background">
-  <include name="outer_bevel"/>
-</draw_ops>
-
-<draw_ops name="title_tile">
-  <line color="gtk:bg[SELECTED]" x1="0" y1="0" x2="width" y2="0"/>
-  <line color="blend/gtk:bg[SELECTED]/#000000/0.1" x1="0" y1="1" x2="width" y2="1"/>
-</draw_ops>
-
-<draw_ops name="title_tile_unfocused">
-  <line color="blend/gtk:bg[NORMAL]/#000000/0.1" x1="0" y1="0" x2="width" y2="0"/>
-  <line color="blend/gtk:bg[NORMAL]/#ffffff/0.2" x1="0" y1="1" x2="width" y2="1"/>
-</draw_ops>
-
-<draw_ops name="title_bg">
-  <tile name="title_tile" tile_width="width" tile_height="2" x="0" y="0" width="width" height="height"/>
-  <rectangle color="blend/gtk:bg[SELECTED]/#000000/0.6" filled="false" x="0" y="0" width="width-1" height="height-1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.5" filled="true" x="0" y="0" width="1" height="1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.5" filled="true" x="width-1" y="0" width="1" height="1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.5" filled="true" x="0" y="height-1" width="1" height="1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.5" filled="true" x="width-1" y="height-1" width="1" height="1"/>
-</draw_ops>
-
-<draw_ops name="title_bg_unfocused">
-  <tile name="title_tile_unfocused" tile_width="width" tile_height="2" x="0" y="0" width="width-1" height="height-1"/>
-  <rectangle color="blend/#000000/gtk:fg[NORMAL]/0.7" filled="false" x="0" y="0" width="width-1" height="height-1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.8" filled="true" x="0" y="0" width="1" height="1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.8" filled="true" x="width-1" y="0" width="1" height="1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.8" filled="true" x="0" y="height-1" width="1" height="1"/>
-  <rectangle color="blend/#000000/gtk:bg[NORMAL]/0.8" filled="true" x="width-1" y="height-1" width="1" height="1"/>
-</draw_ops>
-
-<draw_ops name="title_text_focused">
-  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
-  <title color="blend/gtk:fg[SELECTED]/#000000/0.7"
-         x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing + 1"
-         y="((height - title_height) / 2) `max` 0 + 1"/>
-  <title color="gtk:fg[SELECTED]"
-         x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
-         y="((height - title_height) / 2) `max` 0"/>
-</draw_ops>
-
-<draw_ops name="title_text">
-  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
-  <title color="gtk:fg[NORMAL]"
-         x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
-         y="((height - title_height) / 2) `max` 0"/>
-</draw_ops>
-
-<draw_ops name="title_normal">
-  <include name="title_bg_unfocused"/>
-  <include name="title_text"/>
-</draw_ops>
-
-<draw_ops name="title_focused">
-  <include name="title_bg"/>
-  <include name="title_text_focused"/>
-</draw_ops>
-
-<draw_ops name="title_utility">
-  <include name="title_text"/>
-</draw_ops>
-
-<draw_ops name="title_utility_focused">
-  <include name="title_bg"/>
-  <include name="title_text_focused"/>
-</draw_ops>
-
-<frame_style name="normal_unfocused" geometry="normal">
-  <piece position="entire_background" draw_ops="outer_bevel"/>
-  <piece position="title" draw_ops="title_normal"/>
-
-  <!-- we don't specify for prelight, so normal is used -->
-  <button function="close" state="normal" draw_ops="close_button"/>
-  <button function="close" state="pressed" draw_ops="close_button_pressed"/>
-  <button function="minimize" state="normal" draw_ops="minimize_button"/>
-  <button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
-  <button function="maximize" state="normal" draw_ops="maximize_button"/>
-  <button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
-  <button function="menu" state="normal" draw_ops="menu_button"/>
-  <button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
-</frame_style>
-
-<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="focus_background"/>
-  <piece position="title" draw_ops="title_focused"/>
-</frame_style>
-
-<frame_style name="shaded_focused" geometry="normal" parent="normal_unfocused">
-  <piece position="title" draw_ops="title_focused"/>
-</frame_style>
-
-<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="blank"/>
-  <button function="maximize" state="normal" draw_ops="restore_button"/>
-  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
-  <piece position="entire_background" draw_ops="focus_outline"/>
-  <button function="maximize" state="normal" draw_ops="restore_button"/>
-  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
-</frame_style>
-
-<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
-  <piece position="title" draw_ops="title_utility"/>
-</frame_style>
-
-<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
-  <piece position="title" draw_ops="title_utility_focused"/>
-</frame_style>
-
-<frame_style name="border" geometry="border" parent="normal_unfocused">
-  <piece position="entire_background" draw_ops="outer_bevel"/>
-  <piece position="title" draw_ops="blank"/>
-</frame_style>
-
-<frame_style_set name="normal">
-<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
-<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
-<frame focus="yes" state="maximized" style="maximized_focused"/>
-<frame focus="no" state="maximized" style="maximized_unfocused"/>
-<frame focus="yes" state="shaded" style="shaded_focused"/>
-<frame focus="no" state="shaded" style="normal_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="utility" parent="normal">
-<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
-<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
-<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
-<frame focus="yes" state="maximized" style="utility_focused"/>
-<frame focus="no" state="maximized" style="utility_unfocused"/>
-<frame focus="yes" state="shaded" style="utility_focused"/>
-<frame focus="no" state="shaded" style="utility_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
-</frame_style_set>
-
-<frame_style_set name="border" parent="normal">
-<frame focus="yes" state="normal" resize="both" style="border"/>
-<frame focus="no" state="normal" resize="both" style="border"/>
-<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
-<frame focus="yes" state="maximized" style="utility_focused"/>
-<frame focus="no" state="maximized" style="utility_unfocused"/>
-<frame focus="yes" state="shaded" style="utility_focused"/>
-<frame focus="no" state="shaded" style="utility_unfocused"/>
-<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
-<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
-</frame_style_set>
-
-<window type="normal" style_set="normal"/>
-<window type="dialog" style_set="normal"/>
-<window type="modal_dialog" style_set="normal"/>
-<window type="menu" style_set="normal"/>
-<window type="utility" style_set="utility"/>
-<window type="border" style_set="border"/>
-
-<menu_icon function="close" state="normal" draw_ops="close_button"/>
-<menu_icon function="maximize" state="normal" draw_ops="maximize_button"/>
-<menu_icon function="unmaximize" state="normal" draw_ops="restore_button"/>
-<menu_icon function="minimize" state="normal" draw_ops="minimize_button"/>
-
-</metacity_theme>
diff --git a/src/themes/Simple/minimize.png b/src/themes/Simple/minimize.png
deleted file mode 100644
index 608a633..0000000
Binary files a/src/themes/Simple/minimize.png and /dev/null differ
diff --git a/src/tools/Makefile.am b/src/tools/Makefile.am
index fe02c2c..e9c93ab 100644
--- a/src/tools/Makefile.am
+++ b/src/tools/Makefile.am
@@ -1,33 +1,33 @@
 @INTLTOOL_DESKTOP_RULE@
 
 icondir=$(pkgdatadir)/icons
-icon_DATA=metacity-window-demo.png
+icon_DATA=mutter-window-demo.png
 
-INCLUDES=@METACITY_WINDOW_DEMO_CFLAGS@ @METACITY_MESSAGE_CFLAGS@ \
-	-DMETACITY_ICON_DIR=\"$(pkgdatadir)/icons\" \
-	-DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\"
+INCLUDES=@MUTTER_WINDOW_DEMO_CFLAGS@ @MUTTER_MESSAGE_CFLAGS@ \
+	-DMUTTER_ICON_DIR=\"$(pkgdatadir)/icons\" \
+	-DMUTTER_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\"
 
-metacity_message_SOURCES= 				\
-	metacity-message.c
+mutter_message_SOURCES= 				\
+	mutter-message.c
 
-metacity_window_demo_SOURCES=				\
-	metacity-window-demo.c
+mutter_window_demo_SOURCES=				\
+	mutter-window-demo.c
 
-metacity_mag_SOURCES=					\
-	metacity-mag.c
+mutter_mag_SOURCES=					\
+	mutter-mag.c
 
-metacity_grayscale_SOURCES=				\
-	metacity-grayscale.c
+mutter_grayscale_SOURCES=				\
+	mutter-grayscale.c
 
-bin_PROGRAMS=metacity-message metacity-window-demo
+bin_PROGRAMS=mutter-message mutter-window-demo
 
 ## cheesy hacks I use, don't really have any business existing. ;-)
-noinst_PROGRAMS=metacity-mag metacity-grayscale
+noinst_PROGRAMS=mutter-mag mutter-grayscale
 
-metacity_message_LDADD= @METACITY_MESSAGE_LIBS@
-metacity_window_demo_LDADD= @METACITY_WINDOW_DEMO_LIBS@
-metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@
-metacity_grayscale_LDADD = @METACITY_WINDOW_DEMO_LIBS@
+mutter_message_LDADD= @MUTTER_MESSAGE_LIBS@
+mutter_window_demo_LDADD= @MUTTER_WINDOW_DEMO_LIBS@
+mutter_mag_LDADD= @MUTTER_WINDOW_DEMO_LIBS@
+mutter_grayscale_LDADD = @MUTTER_WINDOW_DEMO_LIBS@
 
 EXTRA_DIST=$(icon_DATA)
 
diff --git a/src/tools/metacity-grayscale.c b/src/tools/metacity-grayscale.c
deleted file mode 100644
index 8d0cd68..0000000
--- a/src/tools/metacity-grayscale.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Hack for grayscaling an image */
-
-/* 
- * Copyright (C) 2002 Red Hat Inc.
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <math.h>
-
-#define INTENSITY(r, g, b) ((r) * 0.30 + (g) * 0.59 + (b) * 0.11)
-
-static GdkPixbuf*
-grayscale_pixbuf (GdkPixbuf *pixbuf)
-{
-  GdkPixbuf *gray;
-  guchar *pixels;
-  int rowstride;
-  int pixstride;
-  int row;
-  int n_rows;
-  int width;
-  
-  gray = gdk_pixbuf_copy (pixbuf);
-  rowstride = gdk_pixbuf_get_rowstride (gray);
-  pixstride = gdk_pixbuf_get_has_alpha (gray) ? 4 : 3;
-  
-  pixels = gdk_pixbuf_get_pixels (gray);
-  n_rows = gdk_pixbuf_get_height (gray);
-  width = gdk_pixbuf_get_width (gray);
-  
-  row = 0;
-  while (row < n_rows)
-    {
-      guchar *p = pixels + row * rowstride;
-      guchar *end = p + (pixstride * width);
-
-      while (p != end)
-        {
-          double v = INTENSITY (p[0], p[1], p[2]);
-
-          p[0] = (guchar) v;
-          p[1] = (guchar) v;
-          p[2] = (guchar) v;
-          
-          p += pixstride;
-        }
-      
-      ++row;
-    }
-  
-  return gray;
-}
-
-int
-main (int argc, char **argv)
-{
-  GdkPixbuf *pixbuf;
-  GdkPixbuf *gray;
-  GError *err;
-  
-  if (argc != 2)
-    {
-      g_printerr ("specify a single image on the command line\n");
-      return 1;
-    }
-
-  g_type_init ();
-  
-  err = NULL;
-  pixbuf = gdk_pixbuf_new_from_file (argv[1], &err);
-  if (err != NULL)
-    {
-      g_printerr ("failed to load image: %s\n", err->message);
-      g_error_free (err);
-      return 1;
-    }
-
-  gray = grayscale_pixbuf (pixbuf);
-  
-  err = NULL;
-  gdk_pixbuf_save (gray, "grayscale.png", "png", &err, NULL);
-  if (err != NULL)
-    {
-      g_printerr ("failed to save image: %s\n", err->message);
-      g_error_free (err);
-      return 1;
-    }
-
-  g_print ("wrote grayscale.png\n");
-  
-  return 0;
-}
diff --git a/src/tools/metacity-mag.c b/src/tools/metacity-mag.c
deleted file mode 100644
index a5f1b1b..0000000
--- a/src/tools/metacity-mag.c
+++ /dev/null
@@ -1,285 +0,0 @@
-/* Hack for use instead of xmag */
-
-/* 
- * Copyright (C) 2002 Red Hat Inc.
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#define _GNU_SOURCE
-#define _XOPEN_SOURCE 600 /* C99 -- for rint() */
-
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include <gdk/gdkkeysyms.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <math.h>
-
-static GtkWidget *grab_widget = NULL;
-static GtkWidget *display_window = NULL;
-static int last_grab_x = 0;
-static int last_grab_y = 0;
-static int last_grab_width = 150;
-static int last_grab_height = 150;
-static GtkAllocation last_grab_allocation;
-static double width_factor = 4.0;
-static double height_factor = 4.0;
-static GdkInterpType interp_mode = GDK_INTERP_NEAREST;
-static guint regrab_idle_id = 0;
-
-static GdkPixbuf*
-get_pixbuf (void)
-{
-  GdkPixbuf *screenshot;
-  GdkPixbuf *magnified;
-
-#if 0
-  g_print ("Size %d x %d\n",
-           last_grab_width, last_grab_height);
-#endif
-  
-  screenshot = gdk_pixbuf_get_from_drawable (NULL, gdk_get_default_root_window (),
-                                             NULL,
-                                             last_grab_x, last_grab_y, 0, 0,
-                                             last_grab_width, last_grab_height);
-
-  if (screenshot == NULL)
-    {
-      g_printerr ("Screenshot failed\n");
-      exit (1);
-    }
-
-  magnified = gdk_pixbuf_scale_simple (screenshot, last_grab_width * width_factor,
-                                       last_grab_height * height_factor,
-                                       interp_mode);
-
-
-  g_object_unref (G_OBJECT (screenshot));
-
-  return magnified;
-}
-
-static gboolean
-regrab_idle (GtkWidget *image)
-{
-  GdkPixbuf *magnified;
-  
-  if (image->allocation.width != last_grab_allocation.width ||
-      image->allocation.height != last_grab_allocation.height)
-    {
-      last_grab_width = rint (image->allocation.width / width_factor);
-      last_grab_height = rint (image->allocation.height / height_factor);
-      last_grab_allocation = image->allocation;
-      
-      magnified = get_pixbuf ();
-
-      gtk_image_set_from_pixbuf (GTK_IMAGE (image), magnified);
-
-      g_object_unref (G_OBJECT (magnified));
-    }
-
-  regrab_idle_id = 0;
-  
-  return FALSE;
-}
-
-static void
-image_resized (GtkWidget *image)
-{
-  if (regrab_idle_id == 0)
-    regrab_idle_id = g_idle_add_full (G_PRIORITY_LOW + 100, (GSourceFunc) regrab_idle,
-                                      image, NULL);
-}
-
-static void
-grab_area_at_mouse (GtkWidget *invisible,
-                    int        x_root,
-                    int        y_root)
-{
-  GdkPixbuf *magnified;
-  int width, height;
-  GtkWidget *widget;
-  
-  width = last_grab_width;
-  height = last_grab_height;
-
-  last_grab_x = x_root;
-  last_grab_y = y_root;
-  last_grab_width = width;
-  last_grab_height = height;
-  
-  magnified = get_pixbuf ();
-  
-  display_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_window_set_default_size (GTK_WINDOW (display_window),
-                               last_grab_width, last_grab_height);
-  widget = gtk_image_new_from_pixbuf (magnified);
-  gtk_widget_set_size_request (widget, 40, 40);
-  gtk_container_add (GTK_CONTAINER (display_window), widget);
-  g_object_unref (G_OBJECT (magnified));
-
-  g_object_add_weak_pointer (G_OBJECT (display_window),
-                             (gpointer) &display_window);
-
-  g_signal_connect (G_OBJECT (display_window), "destroy",
-                    G_CALLBACK (gtk_main_quit), NULL);
-
-  g_signal_connect_after (G_OBJECT (widget), "size_allocate", G_CALLBACK (image_resized), NULL);
-  
-  gtk_widget_show_all (display_window);
-}
-
-static void
-shutdown_grab (void)
-{
-  gdk_keyboard_ungrab (gtk_get_current_event_time ());
-  gdk_pointer_ungrab (gtk_get_current_event_time ());
-  gtk_grab_remove (grab_widget);
-}
-
-static void
-mouse_motion (GtkWidget      *invisible,
-	      GdkEventMotion *event,
-	      gpointer        data)
-{
-  
-}
-
-static gboolean
-mouse_release (GtkWidget      *invisible,
-	       GdkEventButton *event,
-	       gpointer        data)
-{
-  if (event->button != 1)
-    return FALSE;
-
-  grab_area_at_mouse (invisible, event->x_root, event->y_root);
-
-  shutdown_grab ();
-  
-  gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
-                                 GTK_SIGNAL_FUNC (mouse_motion), NULL);
-  gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
-                                 GTK_SIGNAL_FUNC (mouse_release), NULL);
-
-  return TRUE;
-}
-
-/* Helper Functions */
-
-static gboolean mouse_press (GtkWidget      *invisible,
-                             GdkEventButton *event,
-                             gpointer        data);
-
-static gboolean
-key_press (GtkWidget   *invisible,
-           GdkEventKey *event,
-           gpointer     data)
-{  
-  if (event->keyval == GDK_Escape)
-    {
-      shutdown_grab ();
-
-      gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
-                                     GTK_SIGNAL_FUNC (mouse_press),
-                                     NULL);
-      gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
-                                     GTK_SIGNAL_FUNC (key_press),
-                                     NULL);
-      
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-static gboolean
-mouse_press (GtkWidget      *invisible,
-	     GdkEventButton *event,
-	     gpointer        data)
-{  
-  if (event->type == GDK_BUTTON_PRESS &&
-      event->button == 1)
-    {
-      g_signal_connect (invisible, "motion_notify_event",
-                        G_CALLBACK (mouse_motion), NULL);
-      g_signal_connect (invisible, "button_release_event",
-                        G_CALLBACK (mouse_release), NULL);
-      gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
-                                     GTK_SIGNAL_FUNC (mouse_press),
-                                     NULL);
-      gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
-                                     GTK_SIGNAL_FUNC (key_press),
-                                     NULL);
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-static void
-begin_area_grab (void)
-{
-  if (grab_widget == NULL)
-    {
-      grab_widget = gtk_invisible_new ();
-
-      gtk_widget_add_events (grab_widget,
-                             GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK);
-      
-      gtk_widget_show (grab_widget);
-    }
-
-  if (gdk_keyboard_grab (grab_widget->window,
-                         FALSE,
-                         gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS)
-    {
-      g_warning ("Failed to grab keyboard to do eyedropper");
-      return;
-    }
-  
-  if (gdk_pointer_grab (grab_widget->window,
-                        FALSE,
-                        GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK,
-                        NULL,
-                        NULL,
-                        gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS)
-    {
-      gdk_keyboard_ungrab (GDK_CURRENT_TIME);
-      g_warning ("Failed to grab pointer to do eyedropper");
-      return;
-    }
-
-  gtk_grab_add (grab_widget);
-  
-  g_signal_connect (grab_widget, "button_press_event",
-                    G_CALLBACK (mouse_press), NULL);
-  g_signal_connect (grab_widget, "key_press_event",
-                    G_CALLBACK (key_press), NULL);
-}
-
-int
-main (int argc, char **argv)
-{
-  gtk_init (&argc, &argv);
-
-  begin_area_grab ();
-  
-  gtk_main ();
-  
-  return 0;
-}
diff --git a/src/tools/metacity-message.c b/src/tools/metacity-message.c
deleted file mode 100644
index 0df8991..0000000
--- a/src/tools/metacity-message.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* Metacity send-magic-messages app */
-
-/*
- * Copyright (C) 2002 Havoc Pennington
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <config.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <libintl.h>
-#define _(x) dgettext (GETTEXT_PACKAGE, x)
-#define N_(x) x
-
-
-static void
-send_restart (void)
-{
-  XEvent xev;
-
-  xev.xclient.type = ClientMessage;
-  xev.xclient.serial = 0;
-  xev.xclient.send_event = True;
-  xev.xclient.display = gdk_display;
-  xev.xclient.window = gdk_x11_get_default_root_xwindow ();
-  xev.xclient.message_type = XInternAtom (gdk_display,
-                                          "_METACITY_RESTART_MESSAGE",
-                                          False);
-  xev.xclient.format = 32;
-  xev.xclient.data.l[0] = 0;
-  xev.xclient.data.l[1] = 0;
-  xev.xclient.data.l[2] = 0;
-
-  XSendEvent (gdk_display,
-              gdk_x11_get_default_root_xwindow (),
-              False,
-	      SubstructureRedirectMask | SubstructureNotifyMask,
-	      &xev);
-
-  XFlush (gdk_display);
-  XSync (gdk_display, False);
-}
-
-static void
-send_reload_theme (void)
-{
-  XEvent xev;
-
-  xev.xclient.type = ClientMessage;
-  xev.xclient.serial = 0;
-  xev.xclient.send_event = True;
-  xev.xclient.display = gdk_display;
-  xev.xclient.window = gdk_x11_get_default_root_xwindow ();
-  xev.xclient.message_type = XInternAtom (gdk_display,
-                                          "_METACITY_RELOAD_THEME_MESSAGE",
-                                          False);
-  xev.xclient.format = 32;
-  xev.xclient.data.l[0] = 0;
-  xev.xclient.data.l[1] = 0;
-  xev.xclient.data.l[2] = 0;
-
-  XSendEvent (gdk_display,
-              gdk_x11_get_default_root_xwindow (),
-              False,
-	      SubstructureRedirectMask | SubstructureNotifyMask,
-	      &xev);
-
-  XFlush (gdk_display);
-  XSync (gdk_display, False);
-}
-
-static void
-send_set_keybindings (gboolean enabled)
-{
-  XEvent xev;
-
-  xev.xclient.type = ClientMessage;
-  xev.xclient.serial = 0;
-  xev.xclient.send_event = True;
-  xev.xclient.display = gdk_display;
-  xev.xclient.window = gdk_x11_get_default_root_xwindow ();
-  xev.xclient.message_type = XInternAtom (gdk_display,
-                                          "_METACITY_SET_KEYBINDINGS_MESSAGE",
-                                          False);
-  xev.xclient.format = 32;
-  xev.xclient.data.l[0] = enabled;
-  xev.xclient.data.l[1] = 0;
-  xev.xclient.data.l[2] = 0;
-
-  XSendEvent (gdk_display,
-              gdk_x11_get_default_root_xwindow (),
-              False,
-	      SubstructureRedirectMask | SubstructureNotifyMask,
-	      &xev);
-
-  XFlush (gdk_display);
-  XSync (gdk_display, False);
-}
-
-#ifdef WITH_VERBOSE_MODE
-static void
-send_toggle_verbose (void)
-{
-  XEvent xev;
-
-  xev.xclient.type = ClientMessage;
-  xev.xclient.serial = 0;
-  xev.xclient.send_event = True;
-  xev.xclient.display = gdk_display;
-  xev.xclient.window = gdk_x11_get_default_root_xwindow ();
-  xev.xclient.message_type = XInternAtom (gdk_display,
-                                          "_METACITY_TOGGLE_VERBOSE",
-                                          False);
-  xev.xclient.format = 32;
-  xev.xclient.data.l[0] = 0;
-  xev.xclient.data.l[1] = 0;
-  xev.xclient.data.l[2] = 0;
-
-  XSendEvent (gdk_display,
-              gdk_x11_get_default_root_xwindow (),
-              False,
-	      SubstructureRedirectMask | SubstructureNotifyMask,
-	      &xev);
-
-  XFlush (gdk_display);
-  XSync (gdk_display, False);
-}
-#endif
-
-static void
-usage (void)
-{
-  g_printerr (_("Usage: %s\n"),
-              "metacity-message (restart|reload-theme|enable-keybindings|disable-keybindings|toggle-verbose)");
-  exit (1);
-}
-
-int
-main (int argc, char **argv)
-{
-  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-  
-  gtk_init (&argc, &argv);
-
-  if (argc < 2)
-    usage ();
-
-  if (strcmp (argv[1], "restart") == 0)
-    send_restart ();
-  else if (strcmp (argv[1], "reload-theme") == 0)
-    send_reload_theme ();
-  else if (strcmp (argv[1], "enable-keybindings") == 0)
-    send_set_keybindings (TRUE);
-  else if (strcmp (argv[1], "disable-keybindings") == 0)
-    send_set_keybindings (FALSE);
-  else if (strcmp (argv[1], "toggle-verbose") == 0)
-    {
-#ifndef WITH_VERBOSE_MODE
-      g_printerr (_("Metacity was compiled without support for verbose mode\n"));
-      return 1;
-#else      
-      send_toggle_verbose ();
-#endif
-    }
-  else
-    usage ();
-  
-  return 0;
-}
-
diff --git a/src/tools/metacity-window-demo.c b/src/tools/metacity-window-demo.c
deleted file mode 100644
index 0685b1f..0000000
--- a/src/tools/metacity-window-demo.c
+++ /dev/null
@@ -1,997 +0,0 @@
-/* Metacity window types/properties demo app */
-
-/* 
- * Copyright (C) 2002 Havoc Pennington
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include <X11/Xatom.h>
-#include <unistd.h>
-
-static GtkWidget* do_appwindow (void);
-
-static gboolean aspect_on;
-
-static void
-set_gdk_window_struts (GdkWindow *window,
-                       int        left,
-                       int        right,
-                       int        top,
-                       int        bottom)
-{
-  long vals[12];
-  
-  vals[0] = left;
-  vals[1] = right;
-  vals[2] = top;
-  vals[3] = bottom;
-  vals[4] = 000;
-  vals[5] = 400;
-  vals[6] = 200;
-  vals[7] = 600;
-  vals[8] = 76;
-  vals[9] = 676;
-  vals[10] = 200;
-  vals[11] = 800;
-
-  XChangeProperty (GDK_WINDOW_XDISPLAY (window),
-                   GDK_WINDOW_XWINDOW (window),
-                   XInternAtom (GDK_WINDOW_XDISPLAY (window),
-                                "_NET_WM_STRUT_PARTIAL", False),
-                   XA_CARDINAL, 32, PropModeReplace,
-                   (guchar *)vals, 12);
-}
-
-static void
-on_realize_set_struts (GtkWindow *window,
-                       gpointer   data)
-{
-  int left;
-  int right;
-  int top;
-  int bottom;
-
-  g_return_if_fail (GTK_WIDGET_REALIZED (window));
-
-  left = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-left"));
-  right = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-right"));
-  top = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-top"));
-  bottom = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-bottom"));
-  
-  set_gdk_window_struts (GTK_WIDGET (window)->window,
-                         left, right, top, bottom);
-}
-
-static void
-set_gtk_window_struts (GtkWidget  *window,
-                       int         left,
-                       int         right,
-                       int         top,
-                       int         bottom)
-{
-  g_object_set_data (G_OBJECT (window), "meta-strut-left",
-                     GINT_TO_POINTER (left));
-  g_object_set_data (G_OBJECT (window), "meta-strut-right",
-                     GINT_TO_POINTER (right));
-  g_object_set_data (G_OBJECT (window), "meta-strut-top",
-                     GINT_TO_POINTER (top));
-  g_object_set_data (G_OBJECT (window), "meta-strut-bottom",
-                     GINT_TO_POINTER (bottom));
-  
-  g_signal_handlers_disconnect_by_func (G_OBJECT (window),
-                                        on_realize_set_struts,
-                                        NULL);
-                                
-  g_signal_connect_after (G_OBJECT (window),
-                          "realize",
-                          G_CALLBACK (on_realize_set_struts),
-                          NULL);
-
-  if (GTK_WIDGET_REALIZED (window))
-    set_gdk_window_struts (GTK_WIDGET (window)->window,
-                           left, right, top, bottom);
-}
-
-static void
-set_gdk_window_type (GdkWindow  *window,
-                     const char *type)
-{
-  Atom atoms[2] = { None, None };
-  
-  atoms[0] = XInternAtom (GDK_WINDOW_XDISPLAY (window),
-                          type, False);
-  
-  XChangeProperty (GDK_WINDOW_XDISPLAY (window),
-                   GDK_WINDOW_XWINDOW (window),
-                   XInternAtom (GDK_WINDOW_XDISPLAY (window), "_NET_WM_WINDOW_TYPE", False),
-                   XA_ATOM, 32, PropModeReplace,
-                   (guchar *)atoms, 
-                   1);
-}
-
-static void
-on_realize_set_type (GtkWindow *window,
-                     gpointer   data)
-{
-  const char *type;
-
-  g_return_if_fail (GTK_WIDGET_REALIZED (window));
-
-  type = g_object_get_data (G_OBJECT (window), "meta-window-type");
-
-  g_return_if_fail (type != NULL);
-  
-  set_gdk_window_type (GTK_WIDGET (window)->window,
-                       type);
-}
-
-static void
-set_gtk_window_type (GtkWindow  *window,
-                     const char *type)
-{
-  g_object_set_data (G_OBJECT (window), "meta-window-type", (char*) type);
-
-  g_signal_handlers_disconnect_by_func (G_OBJECT (window),
-                                        on_realize_set_type,
-                                        NULL);
-                                
-  g_signal_connect_after (G_OBJECT (window),
-                          "realize",
-                          G_CALLBACK (on_realize_set_type),
-                          NULL);
-
-  if (GTK_WIDGET_REALIZED (window))
-    set_gdk_window_type (GTK_WIDGET (window)->window,
-                         type);
-}
-
-static void
-set_gdk_window_border_only (GdkWindow *window)
-{
-  gdk_window_set_decorations (window, GDK_DECOR_BORDER);
-}
-
-static void
-on_realize_set_border_only (GtkWindow *window,
-                            gpointer   data)
-{
-  g_return_if_fail (GTK_WIDGET_REALIZED (window));
-  
-  set_gdk_window_border_only (GTK_WIDGET (window)->window);
-}
-
-static void
-set_gtk_window_border_only (GtkWindow  *window)
-{
-  g_signal_handlers_disconnect_by_func (G_OBJECT (window),
-                                        on_realize_set_border_only,
-                                        NULL);
-                                
-  g_signal_connect_after (G_OBJECT (window),
-                          "realize",
-                          G_CALLBACK (on_realize_set_border_only),
-                          NULL);
-
-  if (GTK_WIDGET_REALIZED (window))
-    set_gdk_window_border_only (GTK_WIDGET (window)->window);
-}
-
-int
-main (int argc, char **argv)
-{
-  GList *list;
-  GdkPixbuf *pixbuf;
-  GError *err;
-  
-  gtk_init (&argc, &argv);
-
-  err = NULL;
-  pixbuf = gdk_pixbuf_new_from_file (METACITY_ICON_DIR"/metacity-window-demo.png",
-                                     &err);
-  if (pixbuf)
-    {
-      list = g_list_prepend (NULL, pixbuf);
-      
-      gtk_window_set_default_icon_list (list);
-      g_list_free (list);
-      g_object_unref (G_OBJECT (pixbuf));
-    }
-  else
-    {
-      g_printerr ("Could not load icon: %s\n", err->message);
-      g_error_free (err);
-    }
-  
-  do_appwindow ();
-
-  gtk_main ();
-  
-  return 0;
-}
-
-static void
-response_cb (GtkDialog *dialog,
-             int        response_id,
-             void      *data);
-
-static void
-make_dialog (GtkWidget *parent,
-             int        depth)
-{
-  GtkWidget *dialog;
-  char *str;
-  
-  dialog = gtk_message_dialog_new (parent ? GTK_WINDOW (parent) : NULL,
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_INFO,
-                                   GTK_BUTTONS_CLOSE,
-                                   parent ? "Here is a dialog %d" :
-                                   "Here is a dialog %d with no transient parent",
-                                   depth);
-
-  str = g_strdup_printf ("%d dialog", depth);
-  gtk_window_set_title (GTK_WINDOW (dialog), str);
-  g_free (str);
-  
-  gtk_dialog_add_button (GTK_DIALOG (dialog),
-                         "Open child dialog",
-                         GTK_RESPONSE_ACCEPT);
-  
-  /* Close dialog on user response */
-  g_signal_connect (G_OBJECT (dialog),
-                    "response",
-                    G_CALLBACK (response_cb),
-                    NULL);
-
-  g_object_set_data (G_OBJECT (dialog), "depth",
-                     GINT_TO_POINTER (depth));
-  
-  gtk_widget_show (dialog);
-}
-
-static void
-response_cb (GtkDialog *dialog,
-             int        response_id,
-             void      *data)
-{
-  switch (response_id)
-    {
-    case GTK_RESPONSE_ACCEPT:
-      make_dialog (GTK_WIDGET (dialog),
-                   GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dialog),
-                                                       "depth")) + 1);
-      break;
-
-    default:
-      gtk_widget_destroy (GTK_WIDGET (dialog));
-      break;
-    }
-}
-
-static void
-dialog_cb (gpointer             callback_data,
-           guint                callback_action,
-           GtkWidget           *widget)
-{
-  make_dialog (GTK_WIDGET (callback_data), 1);
-}
-
-static void
-modal_dialog_cb (gpointer             callback_data,
-                 guint                callback_action,
-                 GtkWidget           *widget)
-{
-  GtkWidget *dialog;
-  
-  dialog = gtk_message_dialog_new (GTK_WINDOW (callback_data),
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_INFO,
-                                   GTK_BUTTONS_CLOSE,
-                                   "Here is a MODAL dialog");
-
-  set_gtk_window_type (GTK_WINDOW (dialog), "_NET_WM_WINDOW_TYPE_MODAL_DIALOG");
-  
-  gtk_dialog_run (GTK_DIALOG (dialog));
-
-  gtk_widget_destroy (dialog);
-}
-
-static void
-no_parent_dialog_cb (gpointer             callback_data,
-                     guint                callback_action,
-                     GtkWidget           *widget)
-{
-  make_dialog (NULL, 1);
-}
-
-static void
-utility_cb (gpointer             callback_data,
-            guint                callback_action,
-            GtkWidget           *widget)
-{
-  GtkWidget *window;
-  GtkWidget *vbox;
-  GtkWidget *button;
-  
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_UTILITY");
-  gtk_window_set_title (GTK_WINDOW (window), "Utility");
-  
-  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data));
-  
-  vbox = gtk_vbox_new (FALSE, 0);
-
-  gtk_container_add (GTK_CONTAINER (window), vbox);
-
-  button = gtk_button_new_with_mnemonic ("_A button");
-  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
-
-  button = gtk_button_new_with_mnemonic ("_B button");
-  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
-
-  button = gtk_button_new_with_mnemonic ("_C button");
-  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
-
-  button = gtk_button_new_with_mnemonic ("_D button");
-  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
-  
-  gtk_widget_show_all (window);
-}
-
-static void
-toolbar_cb (gpointer             callback_data,
-            guint                callback_action,
-            GtkWidget           *widget)
-{
-  GtkWidget *window;
-  GtkWidget *vbox;
-  GtkWidget *label;
-  
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_TOOLBAR");
-  gtk_window_set_title (GTK_WINDOW (window), "Toolbar");
-  
-  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data));
-  
-  vbox = gtk_vbox_new (FALSE, 0);
-
-  gtk_container_add (GTK_CONTAINER (window), vbox);
-
-  label = gtk_label_new ("FIXME this needs a resize grip, etc.");
-  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
-  
-  gtk_widget_show_all (window);
-}
-
-static void
-menu_cb (gpointer             callback_data,
-         guint                callback_action,
-         GtkWidget           *widget)
-{
-  GtkWidget *window;
-  GtkWidget *vbox;
-  GtkWidget *label;
-  
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_MENU");
-  gtk_window_set_title (GTK_WINDOW (window), "Menu");
-  
-  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data));
-  
-  vbox = gtk_vbox_new (FALSE, 0);
-
-  gtk_container_add (GTK_CONTAINER (window), vbox);
-
-  label = gtk_label_new ("FIXME this isn't a menu.");
-  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
-  
-  gtk_widget_show_all (window);
-}
-
-static void
-override_redirect_cb (gpointer             callback_data,
-                      guint                callback_action,
-                      GtkWidget           *widget)
-{
-  GtkWidget *window;
-  GtkWidget *vbox;
-  GtkWidget *label;
-  
-  window = gtk_window_new (GTK_WINDOW_POPUP);
-  gtk_window_set_title (GTK_WINDOW (window), "Override Redirect");
-  
-  vbox = gtk_vbox_new (FALSE, 0);
-
-  gtk_container_add (GTK_CONTAINER (window), vbox);
-
-  label = gtk_label_new ("This is an override\nredirect window\nand should not be managed");
-  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
-  
-  gtk_widget_show_all (window);
-}
-
-static void
-border_only_cb (gpointer             callback_data,
-                guint                callback_action,
-                GtkWidget           *widget)
-{
-  GtkWidget *window;
-  GtkWidget *vbox;
-  GtkWidget *label;
-  
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  set_gtk_window_border_only (GTK_WINDOW (window));
-  gtk_window_set_title (GTK_WINDOW (window), "Border only");
-  
-  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data));
-  
-  vbox = gtk_vbox_new (FALSE, 0);
-
-  gtk_container_add (GTK_CONTAINER (window), vbox);
-
-  label = gtk_label_new ("This window is supposed to have a border but no titlebar.");
-  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
-  
-  gtk_widget_show_all (window);
-}
-
-#if 0
-static void
-changing_icon_cb (gpointer             callback_data,
-                  guint                callback_action,
-                  GtkWidget           *widget)
-{
-  GtkWidget *window;
-  GtkWidget *vbox;
-  GtkWidget *label;
-  
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_window_set_title (GTK_WINDOW (window), "Changing Icon");
-  
-  vbox = gtk_vbox_new (FALSE, 0);
-
-  gtk_container_add (GTK_CONTAINER (window), vbox);
-
-  label = gtk_label_new ("This window has an icon that changes over time");
-  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
-  
-  gtk_widget_show_all (window);
-}
-#endif
-
-static gboolean
-focus_in_event_cb (GtkWidget *window,
-                   GdkEvent  *event,
-                   gpointer   data)
-{
-  GtkWidget *widget;
-
-  widget = GTK_WIDGET (data);
-
-  gtk_label_set_text (GTK_LABEL (widget), "Has focus");
-
-  return TRUE;
-}
-
-
-static gboolean
-focus_out_event_cb (GtkWidget *window,
-                    GdkEvent  *event,
-                    gpointer   data)
-{
-  GtkWidget *widget;
-
-  widget = GTK_WIDGET (data);
-
-  gtk_label_set_text (GTK_LABEL (widget), "Not focused");
-  
-  return TRUE;
-}
-
-static GtkWidget*
-focus_label (GtkWidget *window)
-{
-  GtkWidget *label;
-  
-  label = gtk_label_new ("Not focused");
-
-  g_signal_connect (G_OBJECT (window), "focus_in_event",
-                    G_CALLBACK (focus_in_event_cb), label);
-
-  g_signal_connect (G_OBJECT (window), "focus_out_event",
-                    G_CALLBACK (focus_out_event_cb), label);
-  
-  return label;
-}
-
-static void
-splashscreen_cb (gpointer             callback_data,
-                 guint                callback_action,
-                 GtkWidget           *widget)
-{
-  GtkWidget *window;
-  GtkWidget *image;
-  GtkWidget *vbox;
-  
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_SPLASHSCREEN");
-  gtk_window_set_title (GTK_WINDOW (window), "Splashscreen");
-  
-  vbox = gtk_vbox_new (FALSE, 0);
-  
-  image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
-  gtk_box_pack_start (GTK_BOX (vbox), image, FALSE, FALSE, 0);
-
-  gtk_box_pack_start (GTK_BOX (vbox), focus_label (window), FALSE, FALSE, 0);  
-  
-  gtk_container_add (GTK_CONTAINER (window), vbox);
-  
-  gtk_widget_show_all (window);
-}
-
-enum
-{
-  DOCK_TOP = 1,
-  DOCK_BOTTOM = 2,
-  DOCK_LEFT = 3,
-  DOCK_RIGHT = 4,
-  DOCK_ALL = 5
-};
-
-static void
-make_dock (int type)
-{
-  GtkWidget *window;
-  GtkWidget *image;
-  GtkWidget *box;
-  GtkWidget *button;
-
-  g_return_if_fail (type != DOCK_ALL);
-
-  box = NULL;
-  switch (type)
-    {
-    case DOCK_LEFT:
-    case DOCK_RIGHT:      
-      box = gtk_vbox_new (FALSE, 0);
-      break;
-    case DOCK_TOP:
-    case DOCK_BOTTOM:
-      box = gtk_hbox_new (FALSE, 0);
-      break;
-    case DOCK_ALL:
-      break;
-    }
-
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_DOCK");
-  
-  image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
-  gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);  
-  
-  gtk_box_pack_start (GTK_BOX (box), focus_label (window), FALSE, FALSE, 0);  
-
-  button = gtk_button_new_with_label ("Close");
-  gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
-
-  g_signal_connect_swapped (G_OBJECT (button), "clicked",
-                            G_CALLBACK (gtk_widget_destroy), window);
-  
-  gtk_container_add (GTK_CONTAINER (window), box);
-
-#define DOCK_SIZE 48
-  switch (type)
-    {
-    case DOCK_LEFT:
-      gtk_widget_set_size_request (window, DOCK_SIZE, 400);
-      gtk_window_move (GTK_WINDOW (window), 0, 000);
-      set_gtk_window_struts (window, DOCK_SIZE, 0, 0, 0);
-      gtk_window_set_title (GTK_WINDOW (window), "LeftDock");
-      break;
-    case DOCK_RIGHT:      
-      gtk_widget_set_size_request (window, DOCK_SIZE, 400);
-      gtk_window_move (GTK_WINDOW (window), gdk_screen_width () - DOCK_SIZE, 200);
-      set_gtk_window_struts (window, 0, DOCK_SIZE, 0, 0);
-      gtk_window_set_title (GTK_WINDOW (window), "RightDock");
-      break;
-    case DOCK_TOP:
-      gtk_widget_set_size_request (window, 600, DOCK_SIZE);
-      gtk_window_move (GTK_WINDOW (window), 76, 0);
-      set_gtk_window_struts (window, 0, 0, DOCK_SIZE, 0);
-      gtk_window_set_title (GTK_WINDOW (window), "TopDock");
-      break;
-    case DOCK_BOTTOM:
-      gtk_widget_set_size_request (window, 600, DOCK_SIZE);
-      gtk_window_move (GTK_WINDOW (window), 200, gdk_screen_height () - DOCK_SIZE);
-      set_gtk_window_struts (window, 0, 0, 0, DOCK_SIZE);
-      gtk_window_set_title (GTK_WINDOW (window), "BottomDock");
-      break;
-    case DOCK_ALL:
-      break;
-    }
-  
-  gtk_widget_show_all (window);
-}
-
-static void
-dock_cb (gpointer             callback_data,
-         guint                callback_action,
-         GtkWidget           *widget)
-{
-  if (callback_action == DOCK_ALL)
-    {
-      make_dock (DOCK_TOP);
-      make_dock (DOCK_BOTTOM);
-      make_dock (DOCK_LEFT);
-      make_dock (DOCK_RIGHT);
-    }
-  else
-    {
-      make_dock (callback_action);
-    }
-}
-
-static void
-desktop_cb (gpointer             callback_data,
-            guint                callback_action,
-            GtkWidget           *widget)
-{
-  GtkWidget *window;
-  GtkWidget *label;
-  GdkColor desktop_color;
-  
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_DESKTOP");
-  gtk_window_set_title (GTK_WINDOW (window), "Desktop");
-  gtk_widget_set_size_request (window,
-                               gdk_screen_width (), gdk_screen_height ());
-  gtk_window_move (GTK_WINDOW (window), 0, 0);
-  
-  desktop_color.red = 0x5144;
-  desktop_color.green = 0x75D6;
-  desktop_color.blue = 0xA699;
-
-  gtk_widget_modify_bg (window, GTK_STATE_NORMAL, &desktop_color);
-  
-  label = focus_label (window);
-  
-  gtk_container_add (GTK_CONTAINER (window), label);
-  
-  gtk_widget_show_all (window);
-}
-
-static GtkItemFactoryEntry menu_items[] =
-{
-  { "/_Windows",              NULL,         NULL,                     0, "<Branch>" },
-  { "/Windows/tearoff",       NULL,         NULL,                     0, "<Tearoff>" },
-  { "/Windows/_Dialog",       "<control>d",  dialog_cb,               0, NULL },
-  { "/Windows/_Modal dialog", NULL,          modal_dialog_cb,         0, NULL },
-  { "/Windows/_Parentless dialog", NULL,     no_parent_dialog_cb,     0, NULL },
-  { "/Windows/_Utility",      "<control>u",  utility_cb,              0, NULL },
-  { "/Windows/_Splashscreen", "<control>s",  splashscreen_cb,         0, NULL },
-  { "/Windows/_Top dock",     NULL,          dock_cb,                 DOCK_TOP, NULL },
-  { "/Windows/_Bottom dock",  NULL,          dock_cb,                 DOCK_BOTTOM, NULL },
-  { "/Windows/_Left dock",    NULL,          dock_cb,                 DOCK_LEFT, NULL },
-  { "/Windows/_Right dock",   NULL,          dock_cb,                 DOCK_RIGHT, NULL },
-  { "/Windows/_All docks",    NULL,          dock_cb,                 DOCK_ALL, NULL },
-  { "/Windows/Des_ktop",      NULL,          desktop_cb,              0, NULL },
-  { "/Windows/Me_nu",         NULL,          menu_cb,                 0, NULL },
-  { "/Windows/Tool_bar",      NULL,          toolbar_cb,              0, NULL },
-  { "/Windows/Override Redirect",      NULL,          override_redirect_cb,              0, NULL },
-  { "/Windows/Border Only",      NULL,          border_only_cb,              0, NULL }
-};
-
-static void
-sleep_cb (GtkWidget *button,
-          gpointer   data)
-{
-  sleep (1000);
-}
-
-static void
-toggle_aspect_ratio (GtkWidget *button,
-                     gpointer   data)
-{
-  GtkWidget *window;
-  GdkGeometry geom;
-
-  if (aspect_on)
-    {
-      geom.min_aspect = 0;
-      geom.max_aspect = 65535;
-    }
-  else
-    {
-      geom.min_aspect = 1.777778;
-      geom.max_aspect = 1.777778;
-    }
-
-  aspect_on = !aspect_on;
-
-  window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW);
-  if (window)
-    gtk_window_set_geometry_hints (GTK_WINDOW (window),
-				   GTK_WIDGET (data),
-				   &geom,
-				   GDK_HINT_ASPECT);
-				   
-}
-
-static void
-toggle_decorated_cb (GtkWidget *button,
-                     gpointer   data)
-{
-  GtkWidget *window;
-  window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW);
-  if (window)
-    gtk_window_set_decorated (GTK_WINDOW (window),
-                              !gtk_window_get_decorated (GTK_WINDOW (window)));
-}
-
-static void
-clicked_toolbar_cb (GtkWidget *button,
-                    gpointer   data)
-{
-  GtkWidget *dialog;
-  
-  dialog = gtk_message_dialog_new (GTK_WINDOW (data),
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_INFO,
-                                   GTK_BUTTONS_CLOSE,
-                                   "Clicking the toolbar buttons doesn't do anything");
-
-  /* Close dialog on user response */
-  g_signal_connect (G_OBJECT (dialog),
-                    "response",
-                    G_CALLBACK (gtk_widget_destroy),
-                    NULL);
-  
-  gtk_widget_show (dialog);
-}
-
-static void
-update_statusbar (GtkTextBuffer *buffer,
-                  GtkStatusbar  *statusbar)
-{
-  gchar *msg;
-  gint row, col;
-  gint count;
-  GtkTextIter iter;
-  
-  gtk_statusbar_pop (statusbar, 0); /* clear any previous message, underflow is allowed */
-
-  count = gtk_text_buffer_get_char_count (buffer);
-
-  gtk_text_buffer_get_iter_at_mark (buffer,
-                                    &iter,
-                                    gtk_text_buffer_get_insert (buffer));
-
-  row = gtk_text_iter_get_line (&iter);
-  col = gtk_text_iter_get_line_offset (&iter);
-
-  msg = g_strdup_printf ("Cursor at row %d column %d - %d chars in document",
-                         row, col, count);
-
-  gtk_statusbar_push (statusbar, 0, msg);
-
-  g_free (msg);
-}
-
-static void
-mark_set_callback (GtkTextBuffer     *buffer,
-                   const GtkTextIter *new_location,
-                   GtkTextMark       *mark,
-                   gpointer           data)
-{
-  update_statusbar (buffer, GTK_STATUSBAR (data));
-}
-
-static int window_count = 0;
-
-static void
-destroy_cb (GtkWidget *w, gpointer data)
-{
-  --window_count;
-  if (window_count == 0)
-    gtk_main_quit ();
-}
-
-static GtkWidget *
-do_appwindow (void)
-{
-  GtkWidget *window;
-  GtkWidget *table;
-  GtkWidget *toolbar;
-  GtkWidget *handlebox;
-  GtkWidget *statusbar;
-  GtkWidget *contents;
-  GtkWidget *sw;
-  GtkTextBuffer *buffer;
-  GtkAccelGroup *accel_group;      
-  GtkItemFactory *item_factory;
-      
-  /* Create the toplevel window
-   */
-
-  ++window_count;
-
-  aspect_on = FALSE;
-
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_window_set_title (GTK_WINDOW (window), "Application Window");
-  
-  g_signal_connect (G_OBJECT (window), "destroy",
-                    G_CALLBACK (destroy_cb), NULL);
-      
-  table = gtk_table_new (1, 4, FALSE);
-      
-  gtk_container_add (GTK_CONTAINER (window), table);
-      
-  /* Create the menubar
-   */
-      
-  accel_group = gtk_accel_group_new ();
-  gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
-  g_object_unref (accel_group);
-      
-  item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);
-
-  /* Set up item factory to go away with the window */
-  g_object_ref (item_factory);
-  gtk_object_sink (GTK_OBJECT (item_factory));
-  g_object_set_data_full (G_OBJECT (window),
-                          "<main>",
-                          item_factory,
-                          (GDestroyNotify) g_object_unref);
-
-  /* create menu items */
-  gtk_item_factory_create_items (item_factory, G_N_ELEMENTS (menu_items),
-                                 menu_items, window);
-
-  gtk_table_attach (GTK_TABLE (table),
-                    gtk_item_factory_get_widget (item_factory, "<main>"),
-                    /* X direction */          /* Y direction */
-                    0, 1,                      0, 1,
-                    GTK_EXPAND | GTK_FILL,     0,
-                    0,                         0);
-
-  /* Create document
-   */
-
-  sw = gtk_scrolled_window_new (NULL, NULL);
-
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
-                                  GTK_POLICY_AUTOMATIC,
-                                  GTK_POLICY_AUTOMATIC);
-
-  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
-                                       GTK_SHADOW_IN);
-      
-  gtk_table_attach (GTK_TABLE (table),
-                    sw,
-                    /* X direction */       /* Y direction */
-                    0, 1,                   2, 3,
-                    GTK_EXPAND | GTK_FILL,  GTK_EXPAND | GTK_FILL,
-                    0,                      0);
-
-  gtk_window_set_default_size (GTK_WINDOW (window),
-                               200, 200);
-      
-  contents = gtk_text_view_new ();
-  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (contents),
-                               PANGO_WRAP_WORD);
-      
-  gtk_container_add (GTK_CONTAINER (sw),
-                     contents);
-
-  /* Create the toolbar
-   */
-  toolbar = gtk_toolbar_new ();
-
-  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_NEW,
-                            "Open another one of these windows",
-                            NULL,
-                            G_CALLBACK (do_appwindow),
-                            window, /* user data for callback */
-                            -1);  /* -1 means "append" */
-  
-  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_OPEN,
-                            "This is a demo button that locks up the demo",
-                            NULL,
-                            G_CALLBACK (sleep_cb),
-                            window, /* user data for callback */
-                            -1);  /* -1 means "append" */
-
-  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_OPEN,
-                            "This is a demo button that toggles window decorations",
-                            NULL,
-                            G_CALLBACK (toggle_decorated_cb),
-                            window, /* user data for callback */
-                            -1);  /* -1 means "append" */
-  
-  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_OPEN,
-                            "This is a demo button that locks the aspect ratio using a hint",
-                            NULL,
-                            G_CALLBACK (toggle_aspect_ratio),
-                            contents, /* user data for callback */
-                            -1);  /* -1 means "append" */
-  
-  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_QUIT,
-                            "This is a demo button with a 'quit' icon",
-                            NULL,
-                            G_CALLBACK (clicked_toolbar_cb),
-                            window, /* user data for callback */
-                            -1);  /* -1 means "append" */
-
-  handlebox = gtk_handle_box_new ();
-
-  gtk_container_add (GTK_CONTAINER (handlebox), toolbar);
-      
-  gtk_table_attach (GTK_TABLE (table),
-                    handlebox,
-                    /* X direction */       /* Y direction */
-                    0, 1,                   1, 2,
-                    GTK_EXPAND | GTK_FILL,  0,
-                    0,                      0);
-
-  /* Create statusbar */
-
-  statusbar = gtk_statusbar_new ();
-  gtk_table_attach (GTK_TABLE (table),
-                    statusbar,
-                    /* X direction */       /* Y direction */
-                    0, 1,                   3, 4,
-                    GTK_EXPAND | GTK_FILL,  0,
-                    0,                      0);
-
-  /* Show text widget info in the statusbar */
-  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (contents));
-
-  gtk_text_buffer_set_text (buffer,
-                            "This demo demonstrates various kinds of windows that "
-                            "window managers and window manager themes should handle. "
-                            "Be sure to tear off the menu and toolbar, those are also "
-                            "a special kind of window.",
-                            -1);
-      
-  g_signal_connect_object (buffer,
-                           "changed",
-                           G_CALLBACK (update_statusbar),
-                           statusbar,
-                           0);
-
-  g_signal_connect_object (buffer,
-                           "mark_set", /* cursor moved */
-                           G_CALLBACK (mark_set_callback),
-                           statusbar,
-                           0);
-      
-  update_statusbar (buffer, GTK_STATUSBAR (statusbar));
-
-  gtk_widget_show_all (window);
-
-  return window;
-}
-
-
diff --git a/src/tools/metacity-window-demo.png b/src/tools/metacity-window-demo.png
deleted file mode 100644
index d87f829..0000000
Binary files a/src/tools/metacity-window-demo.png and /dev/null differ
diff --git a/src/tools/mutter-grayscale.c b/src/tools/mutter-grayscale.c
new file mode 100644
index 0000000..8d0cd68
--- /dev/null
+++ b/src/tools/mutter-grayscale.c
@@ -0,0 +1,109 @@
+/* Hack for grayscaling an image */
+
+/* 
+ * Copyright (C) 2002 Red Hat Inc.
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <math.h>
+
+#define INTENSITY(r, g, b) ((r) * 0.30 + (g) * 0.59 + (b) * 0.11)
+
+static GdkPixbuf*
+grayscale_pixbuf (GdkPixbuf *pixbuf)
+{
+  GdkPixbuf *gray;
+  guchar *pixels;
+  int rowstride;
+  int pixstride;
+  int row;
+  int n_rows;
+  int width;
+  
+  gray = gdk_pixbuf_copy (pixbuf);
+  rowstride = gdk_pixbuf_get_rowstride (gray);
+  pixstride = gdk_pixbuf_get_has_alpha (gray) ? 4 : 3;
+  
+  pixels = gdk_pixbuf_get_pixels (gray);
+  n_rows = gdk_pixbuf_get_height (gray);
+  width = gdk_pixbuf_get_width (gray);
+  
+  row = 0;
+  while (row < n_rows)
+    {
+      guchar *p = pixels + row * rowstride;
+      guchar *end = p + (pixstride * width);
+
+      while (p != end)
+        {
+          double v = INTENSITY (p[0], p[1], p[2]);
+
+          p[0] = (guchar) v;
+          p[1] = (guchar) v;
+          p[2] = (guchar) v;
+          
+          p += pixstride;
+        }
+      
+      ++row;
+    }
+  
+  return gray;
+}
+
+int
+main (int argc, char **argv)
+{
+  GdkPixbuf *pixbuf;
+  GdkPixbuf *gray;
+  GError *err;
+  
+  if (argc != 2)
+    {
+      g_printerr ("specify a single image on the command line\n");
+      return 1;
+    }
+
+  g_type_init ();
+  
+  err = NULL;
+  pixbuf = gdk_pixbuf_new_from_file (argv[1], &err);
+  if (err != NULL)
+    {
+      g_printerr ("failed to load image: %s\n", err->message);
+      g_error_free (err);
+      return 1;
+    }
+
+  gray = grayscale_pixbuf (pixbuf);
+  
+  err = NULL;
+  gdk_pixbuf_save (gray, "grayscale.png", "png", &err, NULL);
+  if (err != NULL)
+    {
+      g_printerr ("failed to save image: %s\n", err->message);
+      g_error_free (err);
+      return 1;
+    }
+
+  g_print ("wrote grayscale.png\n");
+  
+  return 0;
+}
diff --git a/src/tools/mutter-mag.c b/src/tools/mutter-mag.c
new file mode 100644
index 0000000..a5f1b1b
--- /dev/null
+++ b/src/tools/mutter-mag.c
@@ -0,0 +1,285 @@
+/* Hack for use instead of xmag */
+
+/* 
+ * Copyright (C) 2002 Red Hat Inc.
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#define _GNU_SOURCE
+#define _XOPEN_SOURCE 600 /* C99 -- for rint() */
+
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+#include <gdk/gdkkeysyms.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <math.h>
+
+static GtkWidget *grab_widget = NULL;
+static GtkWidget *display_window = NULL;
+static int last_grab_x = 0;
+static int last_grab_y = 0;
+static int last_grab_width = 150;
+static int last_grab_height = 150;
+static GtkAllocation last_grab_allocation;
+static double width_factor = 4.0;
+static double height_factor = 4.0;
+static GdkInterpType interp_mode = GDK_INTERP_NEAREST;
+static guint regrab_idle_id = 0;
+
+static GdkPixbuf*
+get_pixbuf (void)
+{
+  GdkPixbuf *screenshot;
+  GdkPixbuf *magnified;
+
+#if 0
+  g_print ("Size %d x %d\n",
+           last_grab_width, last_grab_height);
+#endif
+  
+  screenshot = gdk_pixbuf_get_from_drawable (NULL, gdk_get_default_root_window (),
+                                             NULL,
+                                             last_grab_x, last_grab_y, 0, 0,
+                                             last_grab_width, last_grab_height);
+
+  if (screenshot == NULL)
+    {
+      g_printerr ("Screenshot failed\n");
+      exit (1);
+    }
+
+  magnified = gdk_pixbuf_scale_simple (screenshot, last_grab_width * width_factor,
+                                       last_grab_height * height_factor,
+                                       interp_mode);
+
+
+  g_object_unref (G_OBJECT (screenshot));
+
+  return magnified;
+}
+
+static gboolean
+regrab_idle (GtkWidget *image)
+{
+  GdkPixbuf *magnified;
+  
+  if (image->allocation.width != last_grab_allocation.width ||
+      image->allocation.height != last_grab_allocation.height)
+    {
+      last_grab_width = rint (image->allocation.width / width_factor);
+      last_grab_height = rint (image->allocation.height / height_factor);
+      last_grab_allocation = image->allocation;
+      
+      magnified = get_pixbuf ();
+
+      gtk_image_set_from_pixbuf (GTK_IMAGE (image), magnified);
+
+      g_object_unref (G_OBJECT (magnified));
+    }
+
+  regrab_idle_id = 0;
+  
+  return FALSE;
+}
+
+static void
+image_resized (GtkWidget *image)
+{
+  if (regrab_idle_id == 0)
+    regrab_idle_id = g_idle_add_full (G_PRIORITY_LOW + 100, (GSourceFunc) regrab_idle,
+                                      image, NULL);
+}
+
+static void
+grab_area_at_mouse (GtkWidget *invisible,
+                    int        x_root,
+                    int        y_root)
+{
+  GdkPixbuf *magnified;
+  int width, height;
+  GtkWidget *widget;
+  
+  width = last_grab_width;
+  height = last_grab_height;
+
+  last_grab_x = x_root;
+  last_grab_y = y_root;
+  last_grab_width = width;
+  last_grab_height = height;
+  
+  magnified = get_pixbuf ();
+  
+  display_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_default_size (GTK_WINDOW (display_window),
+                               last_grab_width, last_grab_height);
+  widget = gtk_image_new_from_pixbuf (magnified);
+  gtk_widget_set_size_request (widget, 40, 40);
+  gtk_container_add (GTK_CONTAINER (display_window), widget);
+  g_object_unref (G_OBJECT (magnified));
+
+  g_object_add_weak_pointer (G_OBJECT (display_window),
+                             (gpointer) &display_window);
+
+  g_signal_connect (G_OBJECT (display_window), "destroy",
+                    G_CALLBACK (gtk_main_quit), NULL);
+
+  g_signal_connect_after (G_OBJECT (widget), "size_allocate", G_CALLBACK (image_resized), NULL);
+  
+  gtk_widget_show_all (display_window);
+}
+
+static void
+shutdown_grab (void)
+{
+  gdk_keyboard_ungrab (gtk_get_current_event_time ());
+  gdk_pointer_ungrab (gtk_get_current_event_time ());
+  gtk_grab_remove (grab_widget);
+}
+
+static void
+mouse_motion (GtkWidget      *invisible,
+	      GdkEventMotion *event,
+	      gpointer        data)
+{
+  
+}
+
+static gboolean
+mouse_release (GtkWidget      *invisible,
+	       GdkEventButton *event,
+	       gpointer        data)
+{
+  if (event->button != 1)
+    return FALSE;
+
+  grab_area_at_mouse (invisible, event->x_root, event->y_root);
+
+  shutdown_grab ();
+  
+  gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
+                                 GTK_SIGNAL_FUNC (mouse_motion), NULL);
+  gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
+                                 GTK_SIGNAL_FUNC (mouse_release), NULL);
+
+  return TRUE;
+}
+
+/* Helper Functions */
+
+static gboolean mouse_press (GtkWidget      *invisible,
+                             GdkEventButton *event,
+                             gpointer        data);
+
+static gboolean
+key_press (GtkWidget   *invisible,
+           GdkEventKey *event,
+           gpointer     data)
+{  
+  if (event->keyval == GDK_Escape)
+    {
+      shutdown_grab ();
+
+      gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
+                                     GTK_SIGNAL_FUNC (mouse_press),
+                                     NULL);
+      gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
+                                     GTK_SIGNAL_FUNC (key_press),
+                                     NULL);
+      
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+static gboolean
+mouse_press (GtkWidget      *invisible,
+	     GdkEventButton *event,
+	     gpointer        data)
+{  
+  if (event->type == GDK_BUTTON_PRESS &&
+      event->button == 1)
+    {
+      g_signal_connect (invisible, "motion_notify_event",
+                        G_CALLBACK (mouse_motion), NULL);
+      g_signal_connect (invisible, "button_release_event",
+                        G_CALLBACK (mouse_release), NULL);
+      gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
+                                     GTK_SIGNAL_FUNC (mouse_press),
+                                     NULL);
+      gtk_signal_disconnect_by_func (GTK_OBJECT (invisible),
+                                     GTK_SIGNAL_FUNC (key_press),
+                                     NULL);
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+static void
+begin_area_grab (void)
+{
+  if (grab_widget == NULL)
+    {
+      grab_widget = gtk_invisible_new ();
+
+      gtk_widget_add_events (grab_widget,
+                             GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK);
+      
+      gtk_widget_show (grab_widget);
+    }
+
+  if (gdk_keyboard_grab (grab_widget->window,
+                         FALSE,
+                         gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS)
+    {
+      g_warning ("Failed to grab keyboard to do eyedropper");
+      return;
+    }
+  
+  if (gdk_pointer_grab (grab_widget->window,
+                        FALSE,
+                        GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK,
+                        NULL,
+                        NULL,
+                        gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS)
+    {
+      gdk_keyboard_ungrab (GDK_CURRENT_TIME);
+      g_warning ("Failed to grab pointer to do eyedropper");
+      return;
+    }
+
+  gtk_grab_add (grab_widget);
+  
+  g_signal_connect (grab_widget, "button_press_event",
+                    G_CALLBACK (mouse_press), NULL);
+  g_signal_connect (grab_widget, "key_press_event",
+                    G_CALLBACK (key_press), NULL);
+}
+
+int
+main (int argc, char **argv)
+{
+  gtk_init (&argc, &argv);
+
+  begin_area_grab ();
+  
+  gtk_main ();
+  
+  return 0;
+}
diff --git a/src/tools/mutter-message.c b/src/tools/mutter-message.c
new file mode 100644
index 0000000..22977e7
--- /dev/null
+++ b/src/tools/mutter-message.c
@@ -0,0 +1,187 @@
+/* Mutter send-magic-messages app */
+
+/*
+ * Copyright (C) 2002 Havoc Pennington
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <libintl.h>
+#define _(x) dgettext (GETTEXT_PACKAGE, x)
+#define N_(x) x
+
+
+static void
+send_restart (void)
+{
+  XEvent xev;
+
+  xev.xclient.type = ClientMessage;
+  xev.xclient.serial = 0;
+  xev.xclient.send_event = True;
+  xev.xclient.display = gdk_display;
+  xev.xclient.window = gdk_x11_get_default_root_xwindow ();
+  xev.xclient.message_type = XInternAtom (gdk_display,
+                                          "_MUTTER_RESTART_MESSAGE",
+                                          False);
+  xev.xclient.format = 32;
+  xev.xclient.data.l[0] = 0;
+  xev.xclient.data.l[1] = 0;
+  xev.xclient.data.l[2] = 0;
+
+  XSendEvent (gdk_display,
+              gdk_x11_get_default_root_xwindow (),
+              False,
+	      SubstructureRedirectMask | SubstructureNotifyMask,
+	      &xev);
+
+  XFlush (gdk_display);
+  XSync (gdk_display, False);
+}
+
+static void
+send_reload_theme (void)
+{
+  XEvent xev;
+
+  xev.xclient.type = ClientMessage;
+  xev.xclient.serial = 0;
+  xev.xclient.send_event = True;
+  xev.xclient.display = gdk_display;
+  xev.xclient.window = gdk_x11_get_default_root_xwindow ();
+  xev.xclient.message_type = XInternAtom (gdk_display,
+                                          "_MUTTER_RELOAD_THEME_MESSAGE",
+                                          False);
+  xev.xclient.format = 32;
+  xev.xclient.data.l[0] = 0;
+  xev.xclient.data.l[1] = 0;
+  xev.xclient.data.l[2] = 0;
+
+  XSendEvent (gdk_display,
+              gdk_x11_get_default_root_xwindow (),
+              False,
+	      SubstructureRedirectMask | SubstructureNotifyMask,
+	      &xev);
+
+  XFlush (gdk_display);
+  XSync (gdk_display, False);
+}
+
+static void
+send_set_keybindings (gboolean enabled)
+{
+  XEvent xev;
+
+  xev.xclient.type = ClientMessage;
+  xev.xclient.serial = 0;
+  xev.xclient.send_event = True;
+  xev.xclient.display = gdk_display;
+  xev.xclient.window = gdk_x11_get_default_root_xwindow ();
+  xev.xclient.message_type = XInternAtom (gdk_display,
+                                          "_MUTTER_SET_KEYBINDINGS_MESSAGE",
+                                          False);
+  xev.xclient.format = 32;
+  xev.xclient.data.l[0] = enabled;
+  xev.xclient.data.l[1] = 0;
+  xev.xclient.data.l[2] = 0;
+
+  XSendEvent (gdk_display,
+              gdk_x11_get_default_root_xwindow (),
+              False,
+	      SubstructureRedirectMask | SubstructureNotifyMask,
+	      &xev);
+
+  XFlush (gdk_display);
+  XSync (gdk_display, False);
+}
+
+#ifdef WITH_VERBOSE_MODE
+static void
+send_toggle_verbose (void)
+{
+  XEvent xev;
+
+  xev.xclient.type = ClientMessage;
+  xev.xclient.serial = 0;
+  xev.xclient.send_event = True;
+  xev.xclient.display = gdk_display;
+  xev.xclient.window = gdk_x11_get_default_root_xwindow ();
+  xev.xclient.message_type = XInternAtom (gdk_display,
+                                          "_MUTTER_TOGGLE_VERBOSE",
+                                          False);
+  xev.xclient.format = 32;
+  xev.xclient.data.l[0] = 0;
+  xev.xclient.data.l[1] = 0;
+  xev.xclient.data.l[2] = 0;
+
+  XSendEvent (gdk_display,
+              gdk_x11_get_default_root_xwindow (),
+              False,
+	      SubstructureRedirectMask | SubstructureNotifyMask,
+	      &xev);
+
+  XFlush (gdk_display);
+  XSync (gdk_display, False);
+}
+#endif
+
+static void
+usage (void)
+{
+  g_printerr (_("Usage: %s\n"),
+              "mutter-message (restart|reload-theme|enable-keybindings|disable-keybindings|toggle-verbose)");
+  exit (1);
+}
+
+int
+main (int argc, char **argv)
+{
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+  
+  gtk_init (&argc, &argv);
+
+  if (argc < 2)
+    usage ();
+
+  if (strcmp (argv[1], "restart") == 0)
+    send_restart ();
+  else if (strcmp (argv[1], "reload-theme") == 0)
+    send_reload_theme ();
+  else if (strcmp (argv[1], "enable-keybindings") == 0)
+    send_set_keybindings (TRUE);
+  else if (strcmp (argv[1], "disable-keybindings") == 0)
+    send_set_keybindings (FALSE);
+  else if (strcmp (argv[1], "toggle-verbose") == 0)
+    {
+#ifndef WITH_VERBOSE_MODE
+      g_printerr (_("Mutter was compiled without support for verbose mode\n"));
+      return 1;
+#else      
+      send_toggle_verbose ();
+#endif
+    }
+  else
+    usage ();
+  
+  return 0;
+}
+
diff --git a/src/tools/mutter-window-demo.c b/src/tools/mutter-window-demo.c
new file mode 100644
index 0000000..85f0a68
--- /dev/null
+++ b/src/tools/mutter-window-demo.c
@@ -0,0 +1,997 @@
+/* Mutter window types/properties demo app */
+
+/* 
+ * Copyright (C) 2002 Havoc Pennington
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+#include <X11/Xatom.h>
+#include <unistd.h>
+
+static GtkWidget* do_appwindow (void);
+
+static gboolean aspect_on;
+
+static void
+set_gdk_window_struts (GdkWindow *window,
+                       int        left,
+                       int        right,
+                       int        top,
+                       int        bottom)
+{
+  long vals[12];
+  
+  vals[0] = left;
+  vals[1] = right;
+  vals[2] = top;
+  vals[3] = bottom;
+  vals[4] = 000;
+  vals[5] = 400;
+  vals[6] = 200;
+  vals[7] = 600;
+  vals[8] = 76;
+  vals[9] = 676;
+  vals[10] = 200;
+  vals[11] = 800;
+
+  XChangeProperty (GDK_WINDOW_XDISPLAY (window),
+                   GDK_WINDOW_XWINDOW (window),
+                   XInternAtom (GDK_WINDOW_XDISPLAY (window),
+                                "_NET_WM_STRUT_PARTIAL", False),
+                   XA_CARDINAL, 32, PropModeReplace,
+                   (guchar *)vals, 12);
+}
+
+static void
+on_realize_set_struts (GtkWindow *window,
+                       gpointer   data)
+{
+  int left;
+  int right;
+  int top;
+  int bottom;
+
+  g_return_if_fail (GTK_WIDGET_REALIZED (window));
+
+  left = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-left"));
+  right = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-right"));
+  top = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-top"));
+  bottom = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-bottom"));
+  
+  set_gdk_window_struts (GTK_WIDGET (window)->window,
+                         left, right, top, bottom);
+}
+
+static void
+set_gtk_window_struts (GtkWidget  *window,
+                       int         left,
+                       int         right,
+                       int         top,
+                       int         bottom)
+{
+  g_object_set_data (G_OBJECT (window), "meta-strut-left",
+                     GINT_TO_POINTER (left));
+  g_object_set_data (G_OBJECT (window), "meta-strut-right",
+                     GINT_TO_POINTER (right));
+  g_object_set_data (G_OBJECT (window), "meta-strut-top",
+                     GINT_TO_POINTER (top));
+  g_object_set_data (G_OBJECT (window), "meta-strut-bottom",
+                     GINT_TO_POINTER (bottom));
+  
+  g_signal_handlers_disconnect_by_func (G_OBJECT (window),
+                                        on_realize_set_struts,
+                                        NULL);
+                                
+  g_signal_connect_after (G_OBJECT (window),
+                          "realize",
+                          G_CALLBACK (on_realize_set_struts),
+                          NULL);
+
+  if (GTK_WIDGET_REALIZED (window))
+    set_gdk_window_struts (GTK_WIDGET (window)->window,
+                           left, right, top, bottom);
+}
+
+static void
+set_gdk_window_type (GdkWindow  *window,
+                     const char *type)
+{
+  Atom atoms[2] = { None, None };
+  
+  atoms[0] = XInternAtom (GDK_WINDOW_XDISPLAY (window),
+                          type, False);
+  
+  XChangeProperty (GDK_WINDOW_XDISPLAY (window),
+                   GDK_WINDOW_XWINDOW (window),
+                   XInternAtom (GDK_WINDOW_XDISPLAY (window), "_NET_WM_WINDOW_TYPE", False),
+                   XA_ATOM, 32, PropModeReplace,
+                   (guchar *)atoms, 
+                   1);
+}
+
+static void
+on_realize_set_type (GtkWindow *window,
+                     gpointer   data)
+{
+  const char *type;
+
+  g_return_if_fail (GTK_WIDGET_REALIZED (window));
+
+  type = g_object_get_data (G_OBJECT (window), "meta-window-type");
+
+  g_return_if_fail (type != NULL);
+  
+  set_gdk_window_type (GTK_WIDGET (window)->window,
+                       type);
+}
+
+static void
+set_gtk_window_type (GtkWindow  *window,
+                     const char *type)
+{
+  g_object_set_data (G_OBJECT (window), "meta-window-type", (char*) type);
+
+  g_signal_handlers_disconnect_by_func (G_OBJECT (window),
+                                        on_realize_set_type,
+                                        NULL);
+                                
+  g_signal_connect_after (G_OBJECT (window),
+                          "realize",
+                          G_CALLBACK (on_realize_set_type),
+                          NULL);
+
+  if (GTK_WIDGET_REALIZED (window))
+    set_gdk_window_type (GTK_WIDGET (window)->window,
+                         type);
+}
+
+static void
+set_gdk_window_border_only (GdkWindow *window)
+{
+  gdk_window_set_decorations (window, GDK_DECOR_BORDER);
+}
+
+static void
+on_realize_set_border_only (GtkWindow *window,
+                            gpointer   data)
+{
+  g_return_if_fail (GTK_WIDGET_REALIZED (window));
+  
+  set_gdk_window_border_only (GTK_WIDGET (window)->window);
+}
+
+static void
+set_gtk_window_border_only (GtkWindow  *window)
+{
+  g_signal_handlers_disconnect_by_func (G_OBJECT (window),
+                                        on_realize_set_border_only,
+                                        NULL);
+                                
+  g_signal_connect_after (G_OBJECT (window),
+                          "realize",
+                          G_CALLBACK (on_realize_set_border_only),
+                          NULL);
+
+  if (GTK_WIDGET_REALIZED (window))
+    set_gdk_window_border_only (GTK_WIDGET (window)->window);
+}
+
+int
+main (int argc, char **argv)
+{
+  GList *list;
+  GdkPixbuf *pixbuf;
+  GError *err;
+  
+  gtk_init (&argc, &argv);
+
+  err = NULL;
+  pixbuf = gdk_pixbuf_new_from_file (MUTTER_ICON_DIR"/mutter-window-demo.png",
+                                     &err);
+  if (pixbuf)
+    {
+      list = g_list_prepend (NULL, pixbuf);
+      
+      gtk_window_set_default_icon_list (list);
+      g_list_free (list);
+      g_object_unref (G_OBJECT (pixbuf));
+    }
+  else
+    {
+      g_printerr ("Could not load icon: %s\n", err->message);
+      g_error_free (err);
+    }
+  
+  do_appwindow ();
+
+  gtk_main ();
+  
+  return 0;
+}
+
+static void
+response_cb (GtkDialog *dialog,
+             int        response_id,
+             void      *data);
+
+static void
+make_dialog (GtkWidget *parent,
+             int        depth)
+{
+  GtkWidget *dialog;
+  char *str;
+  
+  dialog = gtk_message_dialog_new (parent ? GTK_WINDOW (parent) : NULL,
+                                   GTK_DIALOG_DESTROY_WITH_PARENT,
+                                   GTK_MESSAGE_INFO,
+                                   GTK_BUTTONS_CLOSE,
+                                   parent ? "Here is a dialog %d" :
+                                   "Here is a dialog %d with no transient parent",
+                                   depth);
+
+  str = g_strdup_printf ("%d dialog", depth);
+  gtk_window_set_title (GTK_WINDOW (dialog), str);
+  g_free (str);
+  
+  gtk_dialog_add_button (GTK_DIALOG (dialog),
+                         "Open child dialog",
+                         GTK_RESPONSE_ACCEPT);
+  
+  /* Close dialog on user response */
+  g_signal_connect (G_OBJECT (dialog),
+                    "response",
+                    G_CALLBACK (response_cb),
+                    NULL);
+
+  g_object_set_data (G_OBJECT (dialog), "depth",
+                     GINT_TO_POINTER (depth));
+  
+  gtk_widget_show (dialog);
+}
+
+static void
+response_cb (GtkDialog *dialog,
+             int        response_id,
+             void      *data)
+{
+  switch (response_id)
+    {
+    case GTK_RESPONSE_ACCEPT:
+      make_dialog (GTK_WIDGET (dialog),
+                   GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dialog),
+                                                       "depth")) + 1);
+      break;
+
+    default:
+      gtk_widget_destroy (GTK_WIDGET (dialog));
+      break;
+    }
+}
+
+static void
+dialog_cb (gpointer             callback_data,
+           guint                callback_action,
+           GtkWidget           *widget)
+{
+  make_dialog (GTK_WIDGET (callback_data), 1);
+}
+
+static void
+modal_dialog_cb (gpointer             callback_data,
+                 guint                callback_action,
+                 GtkWidget           *widget)
+{
+  GtkWidget *dialog;
+  
+  dialog = gtk_message_dialog_new (GTK_WINDOW (callback_data),
+                                   GTK_DIALOG_DESTROY_WITH_PARENT,
+                                   GTK_MESSAGE_INFO,
+                                   GTK_BUTTONS_CLOSE,
+                                   "Here is a MODAL dialog");
+
+  set_gtk_window_type (GTK_WINDOW (dialog), "_NET_WM_WINDOW_TYPE_MODAL_DIALOG");
+  
+  gtk_dialog_run (GTK_DIALOG (dialog));
+
+  gtk_widget_destroy (dialog);
+}
+
+static void
+no_parent_dialog_cb (gpointer             callback_data,
+                     guint                callback_action,
+                     GtkWidget           *widget)
+{
+  make_dialog (NULL, 1);
+}
+
+static void
+utility_cb (gpointer             callback_data,
+            guint                callback_action,
+            GtkWidget           *widget)
+{
+  GtkWidget *window;
+  GtkWidget *vbox;
+  GtkWidget *button;
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_UTILITY");
+  gtk_window_set_title (GTK_WINDOW (window), "Utility");
+  
+  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data));
+  
+  vbox = gtk_vbox_new (FALSE, 0);
+
+  gtk_container_add (GTK_CONTAINER (window), vbox);
+
+  button = gtk_button_new_with_mnemonic ("_A button");
+  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
+
+  button = gtk_button_new_with_mnemonic ("_B button");
+  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
+
+  button = gtk_button_new_with_mnemonic ("_C button");
+  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
+
+  button = gtk_button_new_with_mnemonic ("_D button");
+  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
+  
+  gtk_widget_show_all (window);
+}
+
+static void
+toolbar_cb (gpointer             callback_data,
+            guint                callback_action,
+            GtkWidget           *widget)
+{
+  GtkWidget *window;
+  GtkWidget *vbox;
+  GtkWidget *label;
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_TOOLBAR");
+  gtk_window_set_title (GTK_WINDOW (window), "Toolbar");
+  
+  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data));
+  
+  vbox = gtk_vbox_new (FALSE, 0);
+
+  gtk_container_add (GTK_CONTAINER (window), vbox);
+
+  label = gtk_label_new ("FIXME this needs a resize grip, etc.");
+  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+  
+  gtk_widget_show_all (window);
+}
+
+static void
+menu_cb (gpointer             callback_data,
+         guint                callback_action,
+         GtkWidget           *widget)
+{
+  GtkWidget *window;
+  GtkWidget *vbox;
+  GtkWidget *label;
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_MENU");
+  gtk_window_set_title (GTK_WINDOW (window), "Menu");
+  
+  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data));
+  
+  vbox = gtk_vbox_new (FALSE, 0);
+
+  gtk_container_add (GTK_CONTAINER (window), vbox);
+
+  label = gtk_label_new ("FIXME this isn't a menu.");
+  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+  
+  gtk_widget_show_all (window);
+}
+
+static void
+override_redirect_cb (gpointer             callback_data,
+                      guint                callback_action,
+                      GtkWidget           *widget)
+{
+  GtkWidget *window;
+  GtkWidget *vbox;
+  GtkWidget *label;
+  
+  window = gtk_window_new (GTK_WINDOW_POPUP);
+  gtk_window_set_title (GTK_WINDOW (window), "Override Redirect");
+  
+  vbox = gtk_vbox_new (FALSE, 0);
+
+  gtk_container_add (GTK_CONTAINER (window), vbox);
+
+  label = gtk_label_new ("This is an override\nredirect window\nand should not be managed");
+  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+  
+  gtk_widget_show_all (window);
+}
+
+static void
+border_only_cb (gpointer             callback_data,
+                guint                callback_action,
+                GtkWidget           *widget)
+{
+  GtkWidget *window;
+  GtkWidget *vbox;
+  GtkWidget *label;
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  set_gtk_window_border_only (GTK_WINDOW (window));
+  gtk_window_set_title (GTK_WINDOW (window), "Border only");
+  
+  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data));
+  
+  vbox = gtk_vbox_new (FALSE, 0);
+
+  gtk_container_add (GTK_CONTAINER (window), vbox);
+
+  label = gtk_label_new ("This window is supposed to have a border but no titlebar.");
+  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+  
+  gtk_widget_show_all (window);
+}
+
+#if 0
+static void
+changing_icon_cb (gpointer             callback_data,
+                  guint                callback_action,
+                  GtkWidget           *widget)
+{
+  GtkWidget *window;
+  GtkWidget *vbox;
+  GtkWidget *label;
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_title (GTK_WINDOW (window), "Changing Icon");
+  
+  vbox = gtk_vbox_new (FALSE, 0);
+
+  gtk_container_add (GTK_CONTAINER (window), vbox);
+
+  label = gtk_label_new ("This window has an icon that changes over time");
+  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+  
+  gtk_widget_show_all (window);
+}
+#endif
+
+static gboolean
+focus_in_event_cb (GtkWidget *window,
+                   GdkEvent  *event,
+                   gpointer   data)
+{
+  GtkWidget *widget;
+
+  widget = GTK_WIDGET (data);
+
+  gtk_label_set_text (GTK_LABEL (widget), "Has focus");
+
+  return TRUE;
+}
+
+
+static gboolean
+focus_out_event_cb (GtkWidget *window,
+                    GdkEvent  *event,
+                    gpointer   data)
+{
+  GtkWidget *widget;
+
+  widget = GTK_WIDGET (data);
+
+  gtk_label_set_text (GTK_LABEL (widget), "Not focused");
+  
+  return TRUE;
+}
+
+static GtkWidget*
+focus_label (GtkWidget *window)
+{
+  GtkWidget *label;
+  
+  label = gtk_label_new ("Not focused");
+
+  g_signal_connect (G_OBJECT (window), "focus_in_event",
+                    G_CALLBACK (focus_in_event_cb), label);
+
+  g_signal_connect (G_OBJECT (window), "focus_out_event",
+                    G_CALLBACK (focus_out_event_cb), label);
+  
+  return label;
+}
+
+static void
+splashscreen_cb (gpointer             callback_data,
+                 guint                callback_action,
+                 GtkWidget           *widget)
+{
+  GtkWidget *window;
+  GtkWidget *image;
+  GtkWidget *vbox;
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_SPLASHSCREEN");
+  gtk_window_set_title (GTK_WINDOW (window), "Splashscreen");
+  
+  vbox = gtk_vbox_new (FALSE, 0);
+  
+  image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
+  gtk_box_pack_start (GTK_BOX (vbox), image, FALSE, FALSE, 0);
+
+  gtk_box_pack_start (GTK_BOX (vbox), focus_label (window), FALSE, FALSE, 0);  
+  
+  gtk_container_add (GTK_CONTAINER (window), vbox);
+  
+  gtk_widget_show_all (window);
+}
+
+enum
+{
+  DOCK_TOP = 1,
+  DOCK_BOTTOM = 2,
+  DOCK_LEFT = 3,
+  DOCK_RIGHT = 4,
+  DOCK_ALL = 5
+};
+
+static void
+make_dock (int type)
+{
+  GtkWidget *window;
+  GtkWidget *image;
+  GtkWidget *box;
+  GtkWidget *button;
+
+  g_return_if_fail (type != DOCK_ALL);
+
+  box = NULL;
+  switch (type)
+    {
+    case DOCK_LEFT:
+    case DOCK_RIGHT:      
+      box = gtk_vbox_new (FALSE, 0);
+      break;
+    case DOCK_TOP:
+    case DOCK_BOTTOM:
+      box = gtk_hbox_new (FALSE, 0);
+      break;
+    case DOCK_ALL:
+      break;
+    }
+
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_DOCK");
+  
+  image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
+  gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);  
+  
+  gtk_box_pack_start (GTK_BOX (box), focus_label (window), FALSE, FALSE, 0);  
+
+  button = gtk_button_new_with_label ("Close");
+  gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
+
+  g_signal_connect_swapped (G_OBJECT (button), "clicked",
+                            G_CALLBACK (gtk_widget_destroy), window);
+  
+  gtk_container_add (GTK_CONTAINER (window), box);
+
+#define DOCK_SIZE 48
+  switch (type)
+    {
+    case DOCK_LEFT:
+      gtk_widget_set_size_request (window, DOCK_SIZE, 400);
+      gtk_window_move (GTK_WINDOW (window), 0, 000);
+      set_gtk_window_struts (window, DOCK_SIZE, 0, 0, 0);
+      gtk_window_set_title (GTK_WINDOW (window), "LeftDock");
+      break;
+    case DOCK_RIGHT:      
+      gtk_widget_set_size_request (window, DOCK_SIZE, 400);
+      gtk_window_move (GTK_WINDOW (window), gdk_screen_width () - DOCK_SIZE, 200);
+      set_gtk_window_struts (window, 0, DOCK_SIZE, 0, 0);
+      gtk_window_set_title (GTK_WINDOW (window), "RightDock");
+      break;
+    case DOCK_TOP:
+      gtk_widget_set_size_request (window, 600, DOCK_SIZE);
+      gtk_window_move (GTK_WINDOW (window), 76, 0);
+      set_gtk_window_struts (window, 0, 0, DOCK_SIZE, 0);
+      gtk_window_set_title (GTK_WINDOW (window), "TopDock");
+      break;
+    case DOCK_BOTTOM:
+      gtk_widget_set_size_request (window, 600, DOCK_SIZE);
+      gtk_window_move (GTK_WINDOW (window), 200, gdk_screen_height () - DOCK_SIZE);
+      set_gtk_window_struts (window, 0, 0, 0, DOCK_SIZE);
+      gtk_window_set_title (GTK_WINDOW (window), "BottomDock");
+      break;
+    case DOCK_ALL:
+      break;
+    }
+  
+  gtk_widget_show_all (window);
+}
+
+static void
+dock_cb (gpointer             callback_data,
+         guint                callback_action,
+         GtkWidget           *widget)
+{
+  if (callback_action == DOCK_ALL)
+    {
+      make_dock (DOCK_TOP);
+      make_dock (DOCK_BOTTOM);
+      make_dock (DOCK_LEFT);
+      make_dock (DOCK_RIGHT);
+    }
+  else
+    {
+      make_dock (callback_action);
+    }
+}
+
+static void
+desktop_cb (gpointer             callback_data,
+            guint                callback_action,
+            GtkWidget           *widget)
+{
+  GtkWidget *window;
+  GtkWidget *label;
+  GdkColor desktop_color;
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_DESKTOP");
+  gtk_window_set_title (GTK_WINDOW (window), "Desktop");
+  gtk_widget_set_size_request (window,
+                               gdk_screen_width (), gdk_screen_height ());
+  gtk_window_move (GTK_WINDOW (window), 0, 0);
+  
+  desktop_color.red = 0x5144;
+  desktop_color.green = 0x75D6;
+  desktop_color.blue = 0xA699;
+
+  gtk_widget_modify_bg (window, GTK_STATE_NORMAL, &desktop_color);
+  
+  label = focus_label (window);
+  
+  gtk_container_add (GTK_CONTAINER (window), label);
+  
+  gtk_widget_show_all (window);
+}
+
+static GtkItemFactoryEntry menu_items[] =
+{
+  { "/_Windows",              NULL,         NULL,                     0, "<Branch>" },
+  { "/Windows/tearoff",       NULL,         NULL,                     0, "<Tearoff>" },
+  { "/Windows/_Dialog",       "<control>d",  dialog_cb,               0, NULL },
+  { "/Windows/_Modal dialog", NULL,          modal_dialog_cb,         0, NULL },
+  { "/Windows/_Parentless dialog", NULL,     no_parent_dialog_cb,     0, NULL },
+  { "/Windows/_Utility",      "<control>u",  utility_cb,              0, NULL },
+  { "/Windows/_Splashscreen", "<control>s",  splashscreen_cb,         0, NULL },
+  { "/Windows/_Top dock",     NULL,          dock_cb,                 DOCK_TOP, NULL },
+  { "/Windows/_Bottom dock",  NULL,          dock_cb,                 DOCK_BOTTOM, NULL },
+  { "/Windows/_Left dock",    NULL,          dock_cb,                 DOCK_LEFT, NULL },
+  { "/Windows/_Right dock",   NULL,          dock_cb,                 DOCK_RIGHT, NULL },
+  { "/Windows/_All docks",    NULL,          dock_cb,                 DOCK_ALL, NULL },
+  { "/Windows/Des_ktop",      NULL,          desktop_cb,              0, NULL },
+  { "/Windows/Me_nu",         NULL,          menu_cb,                 0, NULL },
+  { "/Windows/Tool_bar",      NULL,          toolbar_cb,              0, NULL },
+  { "/Windows/Override Redirect",      NULL,          override_redirect_cb,              0, NULL },
+  { "/Windows/Border Only",      NULL,          border_only_cb,              0, NULL }
+};
+
+static void
+sleep_cb (GtkWidget *button,
+          gpointer   data)
+{
+  sleep (1000);
+}
+
+static void
+toggle_aspect_ratio (GtkWidget *button,
+                     gpointer   data)
+{
+  GtkWidget *window;
+  GdkGeometry geom;
+
+  if (aspect_on)
+    {
+      geom.min_aspect = 0;
+      geom.max_aspect = 65535;
+    }
+  else
+    {
+      geom.min_aspect = 1.777778;
+      geom.max_aspect = 1.777778;
+    }
+
+  aspect_on = !aspect_on;
+
+  window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW);
+  if (window)
+    gtk_window_set_geometry_hints (GTK_WINDOW (window),
+				   GTK_WIDGET (data),
+				   &geom,
+				   GDK_HINT_ASPECT);
+				   
+}
+
+static void
+toggle_decorated_cb (GtkWidget *button,
+                     gpointer   data)
+{
+  GtkWidget *window;
+  window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW);
+  if (window)
+    gtk_window_set_decorated (GTK_WINDOW (window),
+                              !gtk_window_get_decorated (GTK_WINDOW (window)));
+}
+
+static void
+clicked_toolbar_cb (GtkWidget *button,
+                    gpointer   data)
+{
+  GtkWidget *dialog;
+  
+  dialog = gtk_message_dialog_new (GTK_WINDOW (data),
+                                   GTK_DIALOG_DESTROY_WITH_PARENT,
+                                   GTK_MESSAGE_INFO,
+                                   GTK_BUTTONS_CLOSE,
+                                   "Clicking the toolbar buttons doesn't do anything");
+
+  /* Close dialog on user response */
+  g_signal_connect (G_OBJECT (dialog),
+                    "response",
+                    G_CALLBACK (gtk_widget_destroy),
+                    NULL);
+  
+  gtk_widget_show (dialog);
+}
+
+static void
+update_statusbar (GtkTextBuffer *buffer,
+                  GtkStatusbar  *statusbar)
+{
+  gchar *msg;
+  gint row, col;
+  gint count;
+  GtkTextIter iter;
+  
+  gtk_statusbar_pop (statusbar, 0); /* clear any previous message, underflow is allowed */
+
+  count = gtk_text_buffer_get_char_count (buffer);
+
+  gtk_text_buffer_get_iter_at_mark (buffer,
+                                    &iter,
+                                    gtk_text_buffer_get_insert (buffer));
+
+  row = gtk_text_iter_get_line (&iter);
+  col = gtk_text_iter_get_line_offset (&iter);
+
+  msg = g_strdup_printf ("Cursor at row %d column %d - %d chars in document",
+                         row, col, count);
+
+  gtk_statusbar_push (statusbar, 0, msg);
+
+  g_free (msg);
+}
+
+static void
+mark_set_callback (GtkTextBuffer     *buffer,
+                   const GtkTextIter *new_location,
+                   GtkTextMark       *mark,
+                   gpointer           data)
+{
+  update_statusbar (buffer, GTK_STATUSBAR (data));
+}
+
+static int window_count = 0;
+
+static void
+destroy_cb (GtkWidget *w, gpointer data)
+{
+  --window_count;
+  if (window_count == 0)
+    gtk_main_quit ();
+}
+
+static GtkWidget *
+do_appwindow (void)
+{
+  GtkWidget *window;
+  GtkWidget *table;
+  GtkWidget *toolbar;
+  GtkWidget *handlebox;
+  GtkWidget *statusbar;
+  GtkWidget *contents;
+  GtkWidget *sw;
+  GtkTextBuffer *buffer;
+  GtkAccelGroup *accel_group;      
+  GtkItemFactory *item_factory;
+      
+  /* Create the toplevel window
+   */
+
+  ++window_count;
+
+  aspect_on = FALSE;
+
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_title (GTK_WINDOW (window), "Application Window");
+  
+  g_signal_connect (G_OBJECT (window), "destroy",
+                    G_CALLBACK (destroy_cb), NULL);
+      
+  table = gtk_table_new (1, 4, FALSE);
+      
+  gtk_container_add (GTK_CONTAINER (window), table);
+      
+  /* Create the menubar
+   */
+      
+  accel_group = gtk_accel_group_new ();
+  gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
+  g_object_unref (accel_group);
+      
+  item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);
+
+  /* Set up item factory to go away with the window */
+  g_object_ref (item_factory);
+  gtk_object_sink (GTK_OBJECT (item_factory));
+  g_object_set_data_full (G_OBJECT (window),
+                          "<main>",
+                          item_factory,
+                          (GDestroyNotify) g_object_unref);
+
+  /* create menu items */
+  gtk_item_factory_create_items (item_factory, G_N_ELEMENTS (menu_items),
+                                 menu_items, window);
+
+  gtk_table_attach (GTK_TABLE (table),
+                    gtk_item_factory_get_widget (item_factory, "<main>"),
+                    /* X direction */          /* Y direction */
+                    0, 1,                      0, 1,
+                    GTK_EXPAND | GTK_FILL,     0,
+                    0,                         0);
+
+  /* Create document
+   */
+
+  sw = gtk_scrolled_window_new (NULL, NULL);
+
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
+                                  GTK_POLICY_AUTOMATIC,
+                                  GTK_POLICY_AUTOMATIC);
+
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
+                                       GTK_SHADOW_IN);
+      
+  gtk_table_attach (GTK_TABLE (table),
+                    sw,
+                    /* X direction */       /* Y direction */
+                    0, 1,                   2, 3,
+                    GTK_EXPAND | GTK_FILL,  GTK_EXPAND | GTK_FILL,
+                    0,                      0);
+
+  gtk_window_set_default_size (GTK_WINDOW (window),
+                               200, 200);
+      
+  contents = gtk_text_view_new ();
+  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (contents),
+                               PANGO_WRAP_WORD);
+      
+  gtk_container_add (GTK_CONTAINER (sw),
+                     contents);
+
+  /* Create the toolbar
+   */
+  toolbar = gtk_toolbar_new ();
+
+  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
+                            GTK_STOCK_NEW,
+                            "Open another one of these windows",
+                            NULL,
+                            G_CALLBACK (do_appwindow),
+                            window, /* user data for callback */
+                            -1);  /* -1 means "append" */
+  
+  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
+                            GTK_STOCK_OPEN,
+                            "This is a demo button that locks up the demo",
+                            NULL,
+                            G_CALLBACK (sleep_cb),
+                            window, /* user data for callback */
+                            -1);  /* -1 means "append" */
+
+  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
+                            GTK_STOCK_OPEN,
+                            "This is a demo button that toggles window decorations",
+                            NULL,
+                            G_CALLBACK (toggle_decorated_cb),
+                            window, /* user data for callback */
+                            -1);  /* -1 means "append" */
+  
+  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
+                            GTK_STOCK_OPEN,
+                            "This is a demo button that locks the aspect ratio using a hint",
+                            NULL,
+                            G_CALLBACK (toggle_aspect_ratio),
+                            contents, /* user data for callback */
+                            -1);  /* -1 means "append" */
+  
+  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
+                            GTK_STOCK_QUIT,
+                            "This is a demo button with a 'quit' icon",
+                            NULL,
+                            G_CALLBACK (clicked_toolbar_cb),
+                            window, /* user data for callback */
+                            -1);  /* -1 means "append" */
+
+  handlebox = gtk_handle_box_new ();
+
+  gtk_container_add (GTK_CONTAINER (handlebox), toolbar);
+      
+  gtk_table_attach (GTK_TABLE (table),
+                    handlebox,
+                    /* X direction */       /* Y direction */
+                    0, 1,                   1, 2,
+                    GTK_EXPAND | GTK_FILL,  0,
+                    0,                      0);
+
+  /* Create statusbar */
+
+  statusbar = gtk_statusbar_new ();
+  gtk_table_attach (GTK_TABLE (table),
+                    statusbar,
+                    /* X direction */       /* Y direction */
+                    0, 1,                   3, 4,
+                    GTK_EXPAND | GTK_FILL,  0,
+                    0,                      0);
+
+  /* Show text widget info in the statusbar */
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (contents));
+
+  gtk_text_buffer_set_text (buffer,
+                            "This demo demonstrates various kinds of windows that "
+                            "window managers and window manager themes should handle. "
+                            "Be sure to tear off the menu and toolbar, those are also "
+                            "a special kind of window.",
+                            -1);
+      
+  g_signal_connect_object (buffer,
+                           "changed",
+                           G_CALLBACK (update_statusbar),
+                           statusbar,
+                           0);
+
+  g_signal_connect_object (buffer,
+                           "mark_set", /* cursor moved */
+                           G_CALLBACK (mark_set_callback),
+                           statusbar,
+                           0);
+      
+  update_statusbar (buffer, GTK_STATUSBAR (statusbar));
+
+  gtk_widget_show_all (window);
+
+  return window;
+}
+
+
diff --git a/src/tools/mutter-window-demo.png b/src/tools/mutter-window-demo.png
new file mode 100644
index 0000000..d87f829
Binary files /dev/null and b/src/tools/mutter-window-demo.png differ
diff --git a/src/ui/draw-workspace.c b/src/ui/draw-workspace.c
index f7c98b6..8ed7b46 100644
--- a/src/ui/draw-workspace.c
+++ b/src/ui/draw-workspace.c
@@ -3,7 +3,7 @@
 /* Draw a workspace */
 
 /* This file should not be modified to depend on other files in
- * libwnck or metacity, since it's used in both of them
+ * libwnck or mutter, since it's used in both of them
  */
 
 /* 
diff --git a/src/ui/fixedtip.c b/src/ui/fixedtip.c
index b4c5203..4e8b76b 100644
--- a/src/ui/fixedtip.c
+++ b/src/ui/fixedtip.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity fixed tooltip routine */
+/* Mutter fixed tooltip routine */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/ui/fixedtip.h b/src/ui/fixedtip.h
index c196389..a6f2093 100644
--- a/src/ui/fixedtip.h
+++ b/src/ui/fixedtip.h
@@ -20,7 +20,7 @@
  */
 
 /**
- * \file fixedtip.h  Metacity fixed tooltip routine
+ * \file fixedtip.h  Mutter fixed tooltip routine
  * 
  * Sometimes we want to display a small floating rectangle with helpful
  * text near the pointer.  For example, if the user holds the mouse over
diff --git a/src/ui/gradient.h b/src/ui/gradient.h
index 16b3985..c8e7049 100644
--- a/src/ui/gradient.h
+++ b/src/ui/gradient.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity gradient rendering */
+/* Mutter gradient rendering */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington, 99% copied from wrlib in
diff --git a/src/ui/menu.c b/src/ui/menu.c
index 8319897..36e89c6 100644
--- a/src/ui/menu.c
+++ b/src/ui/menu.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window menu */
+/* Mutter window menu */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/ui/menu.h b/src/ui/menu.h
index 39bb7fa..c6e8dde 100644
--- a/src/ui/menu.h
+++ b/src/ui/menu.h
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity window menu */
+/* Mutter window menu */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/ui/tabpopup.c b/src/ui/tabpopup.c
index b4cf8c3..44cb386 100644
--- a/src/ui/tabpopup.c
+++ b/src/ui/tabpopup.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity popup window thing showing windows you can tab to */
+/* Mutter popup window thing showing windows you can tab to */
 
 /* 
  * Copyright (C) 2001 Havoc Pennington
diff --git a/src/ui/testgradient.c b/src/ui/testgradient.c
index 28de317..d89d826 100644
--- a/src/ui/testgradient.c
+++ b/src/ui/testgradient.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity gradient test program */
+/* Mutter gradient test program */
 
 /* 
  * Copyright (C) 2002 Havoc Pennington
diff --git a/src/ui/theme-parser.c b/src/ui/theme-parser.c
index 98dc166..9674f3a 100644
--- a/src/ui/theme-parser.c
+++ b/src/ui/theme-parser.c
@@ -3990,10 +3990,10 @@ meta_theme_load (const char *theme_name,
             }
         }
 
-      /* Look for themes in METACITY_DATADIR */
+      /* Look for themes in MUTTER_DATADIR */
       if (text == NULL)
         {
-          theme_dir = g_build_filename (METACITY_DATADIR,
+          theme_dir = g_build_filename (MUTTER_DATADIR,
                                         "themes",
                                         theme_name,
                                         THEME_SUBDIR,
diff --git a/src/ui/theme-viewer.c b/src/ui/theme-viewer.c
index 5787ad4..e35b880 100644
--- a/src/ui/theme-viewer.c
+++ b/src/ui/theme-viewer.c
@@ -770,7 +770,7 @@ main (int argc, char **argv)
   GtkWidget *notebook;
   int i;
   
-  bindtextdomain (GETTEXT_PACKAGE, METACITY_LOCALEDIR);
+  bindtextdomain (GETTEXT_PACKAGE, MUTTER_LOCALEDIR);
   textdomain(GETTEXT_PACKAGE);
   bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
 
@@ -781,7 +781,7 @@ main (int argc, char **argv)
 
   gtk_init (&argc, &argv);
 
-  if (g_getenv ("METACITY_DEBUG") != NULL)
+  if (g_getenv ("MUTTER_DEBUG") != NULL)
     {
       meta_set_debugging (TRUE);
       meta_set_verbose (TRUE);
diff --git a/src/ui/ui.c b/src/ui/ui.c
index cf6cd91..f24fb24 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -1,6 +1,6 @@
 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
-/* Metacity interface for talking to GTK+ UI module */
+/* Mutter interface for talking to GTK+ UI module */
 
 /* 
  * Copyright (C) 2002 Havoc Pennington
diff --git a/src/wm-tester/Makefile.am b/src/wm-tester/Makefile.am
index e0c3048..d1ab761 100644
--- a/src/wm-tester/Makefile.am
+++ b/src/wm-tester/Makefile.am
@@ -1,5 +1,5 @@
 
-INCLUDES=@METACITY_CFLAGS@
+INCLUDES=@MUTTER_CFLAGS@
 
 wm_tester_SOURCES= 				\
 	main.c
@@ -18,8 +18,8 @@ test_size_hints_SOURCES=			\
 
 noinst_PROGRAMS=wm-tester test-gravity test-resizing focus-window test-size-hints
 
-wm_tester_LDADD= @METACITY_LIBS@
-test_gravity_LDADD= @METACITY_LIBS@
-test_resizing_LDADD= @METACITY_LIBS@
-test_size_hints_LDADD= @METACITY_LIBS@
-focus_window_LDADD= @METACITY_LIBS@
\ No newline at end of file
+wm_tester_LDADD= @MUTTER_LIBS@
+test_gravity_LDADD= @MUTTER_LIBS@
+test_resizing_LDADD= @MUTTER_LIBS@
+test_size_hints_LDADD= @MUTTER_LIBS@
+focus_window_LDADD= @MUTTER_LIBS@
diff --git a/test/metacity-test b/test/metacity-test
deleted file mode 100644
index de46d66..0000000
--- a/test/metacity-test
+++ /dev/null
@@ -1,338 +0,0 @@
-#!/usr/bin/python
-#
-# metacity-test.py -- testing for Metacity
-# 
-# Copyright (C) 2008 Thomas Thurman
-# 
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-#
-# ---------------------
-#
-# This code is copied in from the test-system branch to trunk; it is
-# here because it's useful, with no guarantees (well, not that GPL
-# software comes with guarantees in the first place).  The test-system
-# branch is the place to look if you want the real version of this.
-#
-# ---------------------
-
-
-import sys
-import inspect
-import getopt
-import os
-import tempfile
-import commands
-import traceback
-
-class Test(object):
-    """Grandfather of all tests.  (Yes, I know about the 'unittest'
-    module; I think what we're doing here isn't terribly similar.)"""
-    # If when we get this working I'm shown to be wrong, well,
-    # that's fine too.
-
-    def prerequisites(self):
-        return []
-
-tests_by_name = {}
-tests_by_bug_number = {}
-
-pristine_copy = '/usr/local/src/metacity'
-working_directory = pristine_copy
-homepath = os.getcwd ()
-
-def run(verb, command):
-    """Prints the verb, then executes the command.
-    It's here so we can toggle dry runs
-    (although this isn't currently implemented).
-    If the command is None, writes the command in brackets and exits.
-    """
-
-    if command is None:
-        sys.stdout.write('(%s) ' % verb)
-        return True
-
-    sys.stdout.write('%s ' % verb)
-    sys.stdout.flush()
-
-    os.chdir (working_directory)
-
-    (status, output) = commands.getstatusoutput(command)
-
-    os.chdir (homepath) # in case it matters to anyone
-
-    if status!=0:
-        (fd, name) = tempfile.mkstemp(suffix='.txt', text=True)
-
-        # Can't do this in one line.  No idea why not.
-        temp = os.fdopen(fd, 'w')
-        temp.write("%s - %s\n\n%s\n\nReturn result is: %d" % (verb, command, output, status))
-        del temp
-
-        sys.stdout.write('(See %s ): ' % name)
-        sys.stdout.flush()
-
-        return False
-    else:
-        return True
-
-
-class TestFailure(Exception):
-    "Houston, we have a problem."
-    def __init__(self, problem):
-        self.problem = problem
-
-    def __str__(self):
-        return self.problem
-
-    def message(self):
-        return self.problem
-
-#################
-#
-#  These belong in a file, one of several in a subdirectory
-#  which gets scanned, so we can easily do plugins, and so
-#  we get precompilation.
-#
-#  There will be class decorators in Python 2.6, but until
-#  we get them, we will make do with adding the classes to
-#  dictionaries directly.
-
-class BuildTest(Test):
-    "Convenience class to build others around"
-    # Should this go in the included files, or the main file?
-
-    def executable_name(self):
-        name = self.__class__.__name__
-        if name.startswith('test_'):
-            name = name[5:]
-        return name
-
-    def run_build(self, **params):
-        """Generalised routine to attempt to build Metacity.
-
-        Parameters are:
-        action = (string)  -- run "make (string)" rather than "make"
-        autogen = (string) -- opts for autogen (or its kids)
-        c = (string) -- C flags
-        """
-        working_directory = pristine_copy
-        if False:
-            # This is an idea I had about copying everything into /tmp
-            # so we could work with -r being a r/o directory.
-            # It slows everything down to turn it on by default, though.
-            # XXX allow people to turn it on.
-            temp_directory = tempfile.mkdtemp(prefix='metatest_')
-            if not run('copy', 'cp -LpR %s %s' % (pristine_copy, temp_directory)):
-                raise('There were errors during copying (your repository is probably '+\
-                 'a little untidy).  Please go and tidy up and then come back.')
-            working_directory = temp_directory
-
-        makefile = os.path.join(working_directory, 'Makefile')
-
-        targetdir = os.path.abspath ('.built')
-
-        # TODO -- if not run(...) raise TestFailure (...) is common and could be
-        # an extra param on run() instead.
-
-        if os.path.lexists (makefile):
-            if not run ('clean', "make distclean"):
-                raise TestFailure('Could not clean up; this is bad')
-        else:
-            run('clean', None)
-
-        autogen_opts = ''
-        if params.has_key ('autogen'):
-            autogen_opts = params['autogen']
-
-        if not run('config', './autogen.sh %s' % autogen_opts):
-            raise TestFailure('Autogen failed; can\'t really go on from here.')
-
-        flags = []
-        if params.has_key ('cflags'):
-            flags.append ('CFLAGS=%s' % params['cflags'].replace(' ','\ '))
-
-        command = ''
-        if params.has_key ('action'):
-            command = params['action']
-
-        if not run('make', 'env %s make %s' % (' '.join(flags), command)):
-            raise TestFailure('Build failed; can\'t really go on from here.')
-
-        binary = 'src/metacity' # or 'metacity/src/metacity' sometimes. hmm....
-
-        if not os.path.lexists(binary):
-            raise TestFailure('Binary was not built.')
-
-        output = commands.getoutput("env LANG=C %s --version" % binary)
-
-        if not output.startswith('metacity '):
-            raise TestFailure('Built program fails to identify itself: ['+output+']')
-
-        # Should also test what it says about its flags
-        # (and make it show its flags)
-
-        if not run ('recopy', 'cp %s %s/metacity-%s' % (binary, homepath, self.executable_name())):
-            raise TestFailure('Couldn\'t copy binary somewhere safe')
-
-        # Should clear up build if it's temp directory
-
-        return True
-
-class test_ansi(BuildTest):
-    def run(self):
-        return self.run_build(c='ansi')
-
-class test_gconfoff(BuildTest):
-    def run(self):
-        return self.run_build(autogen='--disable-gconf')
-
-class test_compositoroff(BuildTest):
-    def run(self):
-        return self.run_build(autogen='--disable-compositor')
-
-class test_teston(BuildTest):
-    def run(self):
-        return self.run_build(autogen='--enable-testing')
-
-class test_distcheck(BuildTest):
-    def run(self):
-        return self.run_build(action='distcheck')
-
-class test_warningerrors(BuildTest):
-    def run(self):
-        return self.run_build(cflags='-Wall')
-
-class test_pedantic(BuildTest):
-    def run(self):
-        return self.run_build(cflags='-Wall -Werror -pedantic')
-
-# Populate tests_by_name by introspection
-for (name, klass) in inspect.getmembers(sys.modules['__main__']):
-    if not name.startswith('test_'): continue
-
-    tests_by_name[name[5:]] = klass
-
-#################
-#
-#  And back in the ordinary world...
-
-def show_help():
-    print '  --- metacity-test ---  a test system for metacity.'
-    print 'There are three kinds of test: unit, regression, or build.'
-    print 'Only build tests are currently implemented.'
-    print
-    print 'Syntax:'
-    print '  metacity-test <switches> <test names>'
-    print 'where <switches> can be:'
-    print '  -h    Show this help and exit'
-    print '  -l    List all known tests and exit'
-    print '  -r=n  Use revision n, or directory n as pristine'
-    print '          (defaults to %s if you have it)' % pristine_copy
-    print
-
-def show_tests():
-    print 'Build tests:'
-    for name in tests_by_name.keys():
-        test = tests_by_name[name]
-        if test.__doc__:
-            print '     %s - %s' % (name, test.__doc__)
-        else:
-            print '     %s' % (name)
-
-    print
-    print 'Unit tests:'
-    print '  -- Not yet implemented.'
-    print
-    print 'Regression tests:'
-    print '  -- Not yet implemented.'
-
-def main():
-    try:
-        (opts, testlist) = getopt.gnu_getopt(
-            sys.argv[1:],
-            'lhr=',
-            )
-    except getopt.GetoptError, e:
-        print 'Error:', e
-        print 'Use -h for help, or -l to list all tests.'
-        sys.exit(1)
-
-    if (len(opts)==0 and len(testlist)==0) or (('-h', '') in opts):
-        show_help()
-    elif ('-l', '') in opts:
-        show_tests()
-    elif ('-r', '') in opts:
-        print 'Sorry, actual parsing of -r isn\'t written yet; use %s.' % pristine_copy
-        sys.exit(1)
-    elif not testlist:
-        print "Warning: You didn't specify any tests to run."
-    else:
-        # Later we need to add
-        #  - .foo = all with the tag "foo"
-        #  - .build, etc., which are implicit tags
-        #  - for regression tests, selection by bug number
-        #  - very simple dependencies (you need the output of a particular build
-        #    test before you can run a given unit test on it!)
-
-        tests_to_run = {}
-        tests_that_dont_exist = []
-
-        switch_polarity = 0
-
-        if not os.path.lexists('.built'):
-            os.mkdir ('.built')
-
-        for test in testlist:
-            if test in ('all', 'allbut'):
-                switch_polarity = 1
-            elif tests_by_name.has_key(test):
-                tests_to_run[test] = tests_by_name[test]
-            else:
-                tests_that_dont_exist.append(test)
-
-        if tests_that_dont_exist:
-            print 'You asked for these tests which don\'t exist:', ' '.join(tests_that_dont_exist)
-            print 'Stopping now until you decide what you really want.'
-            print 'Try the -l option, maybe.'
-            sys.exit(1)
-
-        if switch_polarity:
-            temp = {}
-            for test in tests_by_name.keys():
-                if not tests_to_run.has_key(test):
-                    temp[test] = tests_by_name[test]
-            tests_to_run = temp
-
-        # okay, kick it off
-        for name in tests_to_run.keys():
-            sys.stdout.write('%s... ' % name)
-            test = tests_to_run[name]()
-            try:
-                result = test.run()
-                if result:
-                    print 'PASS'
-                else:
-                    print 'FAIL'
-            except TestFailure, tf:
-                print 'FAIL (%s)' % tf
-            except:
-                # obviously not good
-                print 'FAIL'
-                traceback.print_exception(*sys.exc_info())
-            
-
-if __name__=='__main__':
-    main()
diff --git a/test/mutter-test b/test/mutter-test
new file mode 100644
index 0000000..3f22b67
--- /dev/null
+++ b/test/mutter-test
@@ -0,0 +1,338 @@
+#!/usr/bin/python
+#
+# mutter-test.py -- testing for Mutter
+# 
+# Copyright (C) 2008 Thomas Thurman
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+# ---------------------
+#
+# This code is copied in from the test-system branch to trunk; it is
+# here because it's useful, with no guarantees (well, not that GPL
+# software comes with guarantees in the first place).  The test-system
+# branch is the place to look if you want the real version of this.
+#
+# ---------------------
+
+
+import sys
+import inspect
+import getopt
+import os
+import tempfile
+import commands
+import traceback
+
+class Test(object):
+    """Grandfather of all tests.  (Yes, I know about the 'unittest'
+    module; I think what we're doing here isn't terribly similar.)"""
+    # If when we get this working I'm shown to be wrong, well,
+    # that's fine too.
+
+    def prerequisites(self):
+        return []
+
+tests_by_name = {}
+tests_by_bug_number = {}
+
+pristine_copy = '/usr/local/src/mutter'
+working_directory = pristine_copy
+homepath = os.getcwd ()
+
+def run(verb, command):
+    """Prints the verb, then executes the command.
+    It's here so we can toggle dry runs
+    (although this isn't currently implemented).
+    If the command is None, writes the command in brackets and exits.
+    """
+
+    if command is None:
+        sys.stdout.write('(%s) ' % verb)
+        return True
+
+    sys.stdout.write('%s ' % verb)
+    sys.stdout.flush()
+
+    os.chdir (working_directory)
+
+    (status, output) = commands.getstatusoutput(command)
+
+    os.chdir (homepath) # in case it matters to anyone
+
+    if status!=0:
+        (fd, name) = tempfile.mkstemp(suffix='.txt', text=True)
+
+        # Can't do this in one line.  No idea why not.
+        temp = os.fdopen(fd, 'w')
+        temp.write("%s - %s\n\n%s\n\nReturn result is: %d" % (verb, command, output, status))
+        del temp
+
+        sys.stdout.write('(See %s ): ' % name)
+        sys.stdout.flush()
+
+        return False
+    else:
+        return True
+
+
+class TestFailure(Exception):
+    "Houston, we have a problem."
+    def __init__(self, problem):
+        self.problem = problem
+
+    def __str__(self):
+        return self.problem
+
+    def message(self):
+        return self.problem
+
+#################
+#
+#  These belong in a file, one of several in a subdirectory
+#  which gets scanned, so we can easily do plugins, and so
+#  we get precompilation.
+#
+#  There will be class decorators in Python 2.6, but until
+#  we get them, we will make do with adding the classes to
+#  dictionaries directly.
+
+class BuildTest(Test):
+    "Convenience class to build others around"
+    # Should this go in the included files, or the main file?
+
+    def executable_name(self):
+        name = self.__class__.__name__
+        if name.startswith('test_'):
+            name = name[5:]
+        return name
+
+    def run_build(self, **params):
+        """Generalised routine to attempt to build Mutter.
+
+        Parameters are:
+        action = (string)  -- run "make (string)" rather than "make"
+        autogen = (string) -- opts for autogen (or its kids)
+        c = (string) -- C flags
+        """
+        working_directory = pristine_copy
+        if False:
+            # This is an idea I had about copying everything into /tmp
+            # so we could work with -r being a r/o directory.
+            # It slows everything down to turn it on by default, though.
+            # XXX allow people to turn it on.
+            temp_directory = tempfile.mkdtemp(prefix='metatest_')
+            if not run('copy', 'cp -LpR %s %s' % (pristine_copy, temp_directory)):
+                raise('There were errors during copying (your repository is probably '+\
+                 'a little untidy).  Please go and tidy up and then come back.')
+            working_directory = temp_directory
+
+        makefile = os.path.join(working_directory, 'Makefile')
+
+        targetdir = os.path.abspath ('.built')
+
+        # TODO -- if not run(...) raise TestFailure (...) is common and could be
+        # an extra param on run() instead.
+
+        if os.path.lexists (makefile):
+            if not run ('clean', "make distclean"):
+                raise TestFailure('Could not clean up; this is bad')
+        else:
+            run('clean', None)
+
+        autogen_opts = ''
+        if params.has_key ('autogen'):
+            autogen_opts = params['autogen']
+
+        if not run('config', './autogen.sh %s' % autogen_opts):
+            raise TestFailure('Autogen failed; can\'t really go on from here.')
+
+        flags = []
+        if params.has_key ('cflags'):
+            flags.append ('CFLAGS=%s' % params['cflags'].replace(' ','\ '))
+
+        command = ''
+        if params.has_key ('action'):
+            command = params['action']
+
+        if not run('make', 'env %s make %s' % (' '.join(flags), command)):
+            raise TestFailure('Build failed; can\'t really go on from here.')
+
+        binary = 'src/mutter' # or 'mutter/src/mutter' sometimes. hmm....
+
+        if not os.path.lexists(binary):
+            raise TestFailure('Binary was not built.')
+
+        output = commands.getoutput("env LANG=C %s --version" % binary)
+
+        if not output.startswith('mutter '):
+            raise TestFailure('Built program fails to identify itself: ['+output+']')
+
+        # Should also test what it says about its flags
+        # (and make it show its flags)
+
+        if not run ('recopy', 'cp %s %s/mutter-%s' % (binary, homepath, self.executable_name())):
+            raise TestFailure('Couldn\'t copy binary somewhere safe')
+
+        # Should clear up build if it's temp directory
+
+        return True
+
+class test_ansi(BuildTest):
+    def run(self):
+        return self.run_build(c='ansi')
+
+class test_gconfoff(BuildTest):
+    def run(self):
+        return self.run_build(autogen='--disable-gconf')
+
+class test_compositoroff(BuildTest):
+    def run(self):
+        return self.run_build(autogen='--disable-compositor')
+
+class test_teston(BuildTest):
+    def run(self):
+        return self.run_build(autogen='--enable-testing')
+
+class test_distcheck(BuildTest):
+    def run(self):
+        return self.run_build(action='distcheck')
+
+class test_warningerrors(BuildTest):
+    def run(self):
+        return self.run_build(cflags='-Wall')
+
+class test_pedantic(BuildTest):
+    def run(self):
+        return self.run_build(cflags='-Wall -Werror -pedantic')
+
+# Populate tests_by_name by introspection
+for (name, klass) in inspect.getmembers(sys.modules['__main__']):
+    if not name.startswith('test_'): continue
+
+    tests_by_name[name[5:]] = klass
+
+#################
+#
+#  And back in the ordinary world...
+
+def show_help():
+    print '  --- mutter-test ---  a test system for mutter.'
+    print 'There are three kinds of test: unit, regression, or build.'
+    print 'Only build tests are currently implemented.'
+    print
+    print 'Syntax:'
+    print '  mutter-test <switches> <test names>'
+    print 'where <switches> can be:'
+    print '  -h    Show this help and exit'
+    print '  -l    List all known tests and exit'
+    print '  -r=n  Use revision n, or directory n as pristine'
+    print '          (defaults to %s if you have it)' % pristine_copy
+    print
+
+def show_tests():
+    print 'Build tests:'
+    for name in tests_by_name.keys():
+        test = tests_by_name[name]
+        if test.__doc__:
+            print '     %s - %s' % (name, test.__doc__)
+        else:
+            print '     %s' % (name)
+
+    print
+    print 'Unit tests:'
+    print '  -- Not yet implemented.'
+    print
+    print 'Regression tests:'
+    print '  -- Not yet implemented.'
+
+def main():
+    try:
+        (opts, testlist) = getopt.gnu_getopt(
+            sys.argv[1:],
+            'lhr=',
+            )
+    except getopt.GetoptError, e:
+        print 'Error:', e
+        print 'Use -h for help, or -l to list all tests.'
+        sys.exit(1)
+
+    if (len(opts)==0 and len(testlist)==0) or (('-h', '') in opts):
+        show_help()
+    elif ('-l', '') in opts:
+        show_tests()
+    elif ('-r', '') in opts:
+        print 'Sorry, actual parsing of -r isn\'t written yet; use %s.' % pristine_copy
+        sys.exit(1)
+    elif not testlist:
+        print "Warning: You didn't specify any tests to run."
+    else:
+        # Later we need to add
+        #  - .foo = all with the tag "foo"
+        #  - .build, etc., which are implicit tags
+        #  - for regression tests, selection by bug number
+        #  - very simple dependencies (you need the output of a particular build
+        #    test before you can run a given unit test on it!)
+
+        tests_to_run = {}
+        tests_that_dont_exist = []
+
+        switch_polarity = 0
+
+        if not os.path.lexists('.built'):
+            os.mkdir ('.built')
+
+        for test in testlist:
+            if test in ('all', 'allbut'):
+                switch_polarity = 1
+            elif tests_by_name.has_key(test):
+                tests_to_run[test] = tests_by_name[test]
+            else:
+                tests_that_dont_exist.append(test)
+
+        if tests_that_dont_exist:
+            print 'You asked for these tests which don\'t exist:', ' '.join(tests_that_dont_exist)
+            print 'Stopping now until you decide what you really want.'
+            print 'Try the -l option, maybe.'
+            sys.exit(1)
+
+        if switch_polarity:
+            temp = {}
+            for test in tests_by_name.keys():
+                if not tests_to_run.has_key(test):
+                    temp[test] = tests_by_name[test]
+            tests_to_run = temp
+
+        # okay, kick it off
+        for name in tests_to_run.keys():
+            sys.stdout.write('%s... ' % name)
+            test = tests_to_run[name]()
+            try:
+                result = test.run()
+                if result:
+                    print 'PASS'
+                else:
+                    print 'FAIL'
+            except TestFailure, tf:
+                print 'FAIL (%s)' % tf
+            except:
+                # obviously not good
+                print 'FAIL'
+                traceback.print_exception(*sys.exc_info())
+            
+
+if __name__=='__main__':
+    main()
diff --git a/test/tokentest/Makefile b/test/tokentest/Makefile
index 88b3c5f..010fd60 100644
--- a/test/tokentest/Makefile
+++ b/test/tokentest/Makefile
@@ -4,4 +4,4 @@ default:
 	@echo "Try 'make tp' or 'make glib'"
 
 tp: tokentest.c
-	gcc `pkg-config --cflags --libs glib-2.0 gdk-2.0 atk` -DMETACITY_DATADIR=\"/usr/share/metacity\" -I../.. -I../../src -I../../src/include tokentest.c ../../src/ui/theme.c ../../src/ui/gradient.c -o tp
+	gcc `pkg-config --cflags --libs glib-2.0 gdk-2.0 atk` -DMUTTER_DATADIR=\"/usr/share/mutter\" -I../.. -I../../src -I../../src/include tokentest.c ../../src/ui/theme.c ../../src/ui/gradient.c -o tp
