diff --git a/.gitignore b/.gitignore
index fb2ec90a2..35f496019 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,6 +16,7 @@ config.log
config.status
config
configure
+data/50-gnome-shell-*.xml
data/gnome-shell.desktop
data/gnome-shell.desktop.in
data/gnome-shell-extension-prefs.desktop
diff --git a/configure.ac b/configure.ac
index 2f66dea8a..a8f3cd5b0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -106,6 +106,9 @@ PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
PKG_CHECK_MODULES(BROWSER_PLUGIN, gio-2.0 >= $GIO_MIN_VERSION json-glib-1.0 >= 0.13.2)
+GNOME_KEYBINDINGS_KEYSDIR=`$PKG_CONFIG --variable keysdir gnome-keybindings`
+AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
+
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
saved_CFLAGS=$CFLAGS
diff --git a/data/50-gnome-shell-screenshot.xml.in b/data/50-gnome-shell-screenshot.xml.in
new file mode 100644
index 000000000..a8cba7e60
--- /dev/null
+++ b/data/50-gnome-shell-screenshot.xml.in
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/data/50-gnome-shell-system.xml.in b/data/50-gnome-shell-system.xml.in
new file mode 100644
index 000000000..4c7e9929b
--- /dev/null
+++ b/data/50-gnome-shell-system.xml.in
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/data/Makefile.am b/data/Makefile.am
index 055ad3ae2..6858a4aa0 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -47,6 +47,13 @@ dist_theme_DATA = \
theme/ws-switch-arrow-up.png \
theme/ws-switch-arrow-down.png
+keysdir = @GNOME_KEYBINDINGS_KEYSDIR@
+keys_in_files = \
+ 50-gnome-shell-screenshot.xml.in \
+ 50-gnome-shell-system.xml.in \
+ $(NULL)
+keys_DATA = $(keys_in_files:.xml.in=.xml)
+
gsettings_SCHEMAS = org.gnome.shell.gschema.xml
@INTLTOOL_XML_NOMERGE_RULE@
@@ -73,12 +80,14 @@ EXTRA_DIST = \
$(introspection_DATA) \
$(menu_DATA) \
$(convert_DATA) \
+ $(keys_in_files) \
org.gnome.shell.gschema.xml.in.in
CLEANFILES = \
gnome-shell.desktop.in \
gnome-shell-extension-prefs.in \
$(desktop_DATA) \
+ $(keys_DATA) \
$(gsettings_SCHEMAS) \
gschemas.compiled \
org.gnome.shell.gschema.valid \
diff --git a/po/POTFILES.in b/po/POTFILES.in
index b1a940ca0..002e74c3f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,3 +1,5 @@
+data/50-gnome-shell-screenshot.xml.in
+data/50-gnome-shell-system.xml.in
data/gnome-shell.desktop.in.in
data/gnome-shell-extension-prefs.desktop.in.in
data/org.gnome.shell.gschema.xml.in.in
diff --git a/src/main.c b/src/main.c
index ad4fb3ac5..451025d76 100644
--- a/src/main.c
+++ b/src/main.c
@@ -37,6 +37,9 @@ extern GType gnome_shell_plugin_get_type (void);
#define OVERRIDES_SCHEMA "org.gnome.shell.overrides"
+#define WM_NAME "GNOME Shell"
+#define GNOME_WM_KEYBINDINGS "Metacity,Mutter,GNOME Shell"
+
static gboolean is_gdm_mode = FALSE;
static char *session_mode = NULL;
@@ -374,6 +377,9 @@ main (int argc, char **argv)
meta_plugin_manager_set_plugin_type (gnome_shell_plugin_get_type ());
+ meta_set_wm_name (WM_NAME);
+ meta_set_gnome_wm_keybindings (GNOME_WM_KEYBINDINGS);
+
/* Prevent meta_init() from causing gtk to load gail and at-bridge */
g_setenv ("NO_AT_BRIDGE", "1", TRUE);
meta_init ();