diff -ur control-center-2.8.0/capplets/keybindings/gnome-keybinding-properties.c control-center-2.8.0.my/capplets/keybindings/gnome-keybinding-properties.c
--- control-center-2.8.0/capplets/keybindings/gnome-keybinding-properties.c	2004-10-13 21:57:33.925156342 +0200
+++ control-center-2.8.0.my/capplets/keybindings/gnome-keybinding-properties.c	2004-10-13 21:52:00.497588773 +0200
@@ -56,6 +56,16 @@
   { "/apps/gnome_settings_daemon/keybindings/brightness_down", ALWAYS_VISIBLE, 0 },
   { "/apps/gnome_settings_daemon/keybindings/brightness_up", ALWAYS_VISIBLE, 0 },
 #endif
+  { "/apps/gnome_settings_daemon/keybindings/run_command_1", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_2", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_3", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_4", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_5", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_6", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_7", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_8", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_9", ALWAYS_VISIBLE, 0 },
+  { "/apps/gnome_settings_daemon/keybindings/run_command_10", ALWAYS_VISIBLE, 0 },
   { NULL }
 };
 const KeyListEntry sounds_key_list[] =
diff -ur control-center-2.8.0/gnome-settings-daemon/actions/acme.h control-center-2.8.0.my/gnome-settings-daemon/actions/acme.h
--- control-center-2.8.0/gnome-settings-daemon/actions/acme.h	2004-03-24 03:54:33.000000000 +0100
+++ control-center-2.8.0.my/gnome-settings-daemon/actions/acme.h	2004-10-13 21:55:02.161958938 +0200
@@ -25,6 +25,9 @@
 #define GCONF_BINDING_DIR "/apps/gnome_settings_daemon/keybindings"
 #define GCONF_MISC_DIR "/apps/gnome_settings_daemon"
 
+/* If you change this, remember to change keys[] below. */
+#define MAX_RUN_COMMAND 10
+
 enum {
 	MUTE_KEY,
 	VOLUME_DOWN_KEY,
@@ -42,6 +45,9 @@
 	BRIGHT_DOWN_KEY,
 	BRIGHT_UP_KEY,
 #endif
+	RUN_COMMAND_1,
+	RUN_COMMAND_0 = RUN_COMMAND_1 - 1,
+	RUN_COMMAND_LAST = RUN_COMMAND_0 + MAX_RUN_COMMAND,
 	PLAY_KEY,
 	PAUSE_KEY,
 	STOP_KEY,
@@ -77,6 +83,16 @@
 	{ BRIGHT_DOWN_KEY, GCONF_BINDING_DIR "/brightness_down", NULL },
 	{ BRIGHT_UP_KEY, GCONF_BINDING_DIR "/brightness_up", NULL },
 #endif
+	{ RUN_COMMAND_0 + 1, GCONF_BINDING_DIR "/run_command_1", NULL },
+	{ RUN_COMMAND_0 + 2, GCONF_BINDING_DIR "/run_command_2", NULL },
+	{ RUN_COMMAND_0 + 3, GCONF_BINDING_DIR "/run_command_3", NULL },
+	{ RUN_COMMAND_0 + 4, GCONF_BINDING_DIR "/run_command_4", NULL },
+	{ RUN_COMMAND_0 + 5, GCONF_BINDING_DIR "/run_command_5", NULL },
+	{ RUN_COMMAND_0 + 6, GCONF_BINDING_DIR "/run_command_6", NULL },
+	{ RUN_COMMAND_0 + 7, GCONF_BINDING_DIR "/run_command_7", NULL },
+	{ RUN_COMMAND_0 + 8, GCONF_BINDING_DIR "/run_command_8", NULL },
+	{ RUN_COMMAND_0 + 9, GCONF_BINDING_DIR "/run_command_9", NULL },
+	{ RUN_COMMAND_0 + 10, GCONF_BINDING_DIR "/run_command_10", NULL },
 	{ PLAY_KEY, GCONF_BINDING_DIR "/play", NULL },
 	{ PAUSE_KEY, GCONF_BINDING_DIR "/pause", NULL },
 	{ STOP_KEY, GCONF_BINDING_DIR "/stop", NULL },
diff -ur control-center-2.8.0/gnome-settings-daemon/gnome-settings-multimedia-keys.c control-center-2.8.0.my/gnome-settings-daemon/gnome-settings-multimedia-keys.c
--- control-center-2.8.0/gnome-settings-daemon/gnome-settings-multimedia-keys.c	2004-09-02 23:01:28.000000000 +0200
+++ control-center-2.8.0.my/gnome-settings-daemon/gnome-settings-multimedia-keys.c	2004-10-13 21:56:29.932047993 +0200
@@ -597,6 +597,26 @@
 }
 
 static void
+do_run_command_action (Acme *acme, int no)
+{
+	char *key, *string;
+
+	key = g_strdup_printf (
+		"/apps/gnome_settings_daemon/keybinding_commands/command_%d", 
+		no);
+	string = gconf_client_get_string (acme->conf_client, key, NULL);
+	g_free (key);
+
+	if (string == NULL || strcmp (string, "") == 0) {
+		return;
+	}
+
+	execute (string, FALSE);
+
+	g_free (string);
+}
+
+static void
 do_mail_action (Acme *acme)
 {
 	char *string, *command;
@@ -833,7 +853,10 @@
 		break;
 #endif
 	default:
-		g_assert_not_reached ();
+		if (type >= RUN_COMMAND_1 && type <= RUN_COMMAND_LAST)
+			do_run_command_action (acme, type - RUN_COMMAND_0);
+		else
+			g_assert_not_reached ();
 	}
 }
 
diff -ur control-center-2.8.0/schemas/apps_gnome_settings_daemon_keybindings.schemas.in control-center-2.8.0.my/schemas/apps_gnome_settings_daemon_keybindings.schemas.in
--- control-center-2.8.0/schemas/apps_gnome_settings_daemon_keybindings.schemas.in	2004-05-17 19:03:38.000000000 +0200
+++ control-center-2.8.0.my/schemas/apps_gnome_settings_daemon_keybindings.schemas.in	2004-10-13 21:51:26.959489684 +0200
@@ -240,5 +240,169 @@
             </locale>
         </schema>
 
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_1</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_1</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #1</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_2</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_2</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #2</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_3</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_3</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #3</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_4</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_4</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #4</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_5</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_5</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #5</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_6</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_6</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #6</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_7</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_7</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #7</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_8</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_8</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #8</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_9</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_9</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #9</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/run_command_10</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/run_command_10</applyto>
+            <type>string</type>
+            <default>disabled</default>
+            <locale name="C">
+                <short>Run a defined command #10</short>
+                <long>
+                    The keybinding that runs the correspondingly-numbered
+                    command in /apps/gnome_settings_daemon/keybinding_commands
+                </long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybinding_commands/command</key>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_1</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_2</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_3</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_4</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_5</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_6</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_7</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_8</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_9</applyto>
+            <applyto>/apps/gnome_settings_daemon/keybinding_commands/command_10</applyto>
+            <type>string</type>
+            <default></default>
+            <locale name="C">
+                <short>Commands to run in response to keybindings</short>
+                <long>
+                    The /apps/gnome_settings_daemon/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>
     </schemalist>
 </gconfschemafile>
