Index: gnome-control-center/configure.in
===================================================================
RCS file: /cvs/gnome/gnome-control-center/configure.in,v
retrieving revision 1.335
diff -u -r1.335 configure.in
--- gnome-control-center/configure.in	15 May 2002 01:00:00 -0000	1.335
+++ gnome-control-center/configure.in	16 May 2002 19:39:15 -0000
@@ -197,6 +197,7 @@
 capplets/Makefile
 capplets/common/Makefile
 capplets/background/Makefile
+capplets/default-applications/Makefile
 capplets/desktop-links/Makefile
 capplets/file-types/Makefile
 capplets/file-types/libuuid/Makefile
Index: gnome-control-center/capplets/Makefile.am
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/Makefile.am,v
retrieving revision 1.61
diff -u -r1.61 Makefile.am
--- gnome-control-center/capplets/Makefile.am	11 May 2002 23:28:26 -0000	1.61
+++ gnome-control-center/capplets/Makefile.am	16 May 2002 19:39:15 -0000
@@ -1,6 +1,6 @@
 always_built_SUBDIRS =					\
 	common accessibility				\
-	desktop-links font \
+	default-applications desktop-links font		\
 	background keyboard mouse sound			\
 	file-types theme-switcher ui-properties		\
 	keybindings network
Index: libgnome/schemas/Makefile.am
===================================================================
RCS file: /cvs/gnome/libgnome/schemas/Makefile.am,v
retrieving revision 1.11
diff -u -r1.11 Makefile.am
--- libgnome/schemas/Makefile.am	14 May 2002 22:45:08 -0000	1.11
+++ libgnome/schemas/Makefile.am	16 May 2002 19:39:15 -0000
@@ -4,7 +4,6 @@
 schema_DATA = \
 	desktop_gnome_accessibility_keyboard.schemas		\
 	desktop_gnome_applications_browser.schemas		\
-	desktop_gnome_applications_editor.schemas		\
 	desktop_gnome_applications_help_viewer.schemas		\
 	desktop_gnome_applications_terminal.schemas		\
 	desktop_gnome_applications_window_manager.schemas	\
Index: libgnome/schemas/desktop_gnome_applications_editor.schemas
===================================================================
RCS file: libgnome/schemas/desktop_gnome_applications_editor.schemas
diff -N libgnome/schemas/desktop_gnome_applications_editor.schemas
--- libgnome/schemas/desktop_gnome_applications_editor.schemas	14 Dec 2001 21:22:22 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<gconfschemafile>
-  <schemalist>
-    <schema>
-      <applyto>/desktop/gnome/applications/editor/exec</applyto>
-      <key>/schemas/desktop/gnome/applications/editor/exec</key>
-      <owner>gnome</owner>
-      <type>string</type>
-      <default>gedit</default>
-      <locale name="C">
-        <short>Editor application</short>
-        <long>Command to run as the default GNOME editor</long>
-      </locale>
-    </schema>
-    <schema>
-      <applyto>/desktop/gnome/applications/editor/accepts_lineno</applyto>
-      <key>/schemas/desktop/gnome/applications/editor/accepts_lineno</key>
-      <owner>gnome</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Editor accepts line numbers</short>
-        <long>Whether the default text editor accepts line numbers</long>
-      </locale>
-    </schema>
-    <schema>
-      <applyto>/desktop/gnome/applications/editor/needs_term</applyto>
-      <key>/schemas/desktop/gnome/applications/editor/needs_term</key>
-      <owner>gnome</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Editor needs terminal</short>
-        <long>Whether the default text editor needs a terminal to run</long>
-      </locale>
-    </schema>
-  </schemalist>
-</gconfschemafile>
Index: libgnome/schemas/desktop_gnome_url_handlers.schemas
===================================================================
RCS file: /cvs/gnome/libgnome/schemas/desktop_gnome_url_handlers.schemas,v
retrieving revision 1.3
diff -u -r1.3 desktop_gnome_url_handlers.schemas
--- libgnome/schemas/desktop_gnome_url_handlers.schemas	30 Mar 2002 02:25:40 -0000	1.3
+++ libgnome/schemas/desktop_gnome_url_handlers.schemas	16 May 2002 19:39:15 -0000
@@ -37,74 +37,6 @@
     </schema>
 
     <schema>   
-      <applyto>/desktop/gnome/url-handlers/http/enabled</applyto>
-      <key>/schemas/desktop/gnome/url-handlers/http/enabled</key>
-      <owner>gnome</owner>
-      <type>bool</type>
-      <default>true</default>
-      <locale name="C">
-        <short>How to handle http URLs</short>
-        <long>Set to true to have a program specified in programs/http handle http URLs</long>
-      </locale>
-    </schema>
-    <schema>
-      <applyto>/desktop/gnome/url-handlers/http/command</applyto>
-      <key>/schemas/desktop/gnome/url-handlers/http/command</key>
-      <owner>gnome</owner>
-      <type>string</type>
-      <default>mozilla "%s"</default>
-      <locale name="C">
-        <short>URL handler for http</short>
-        <long>URL handler for http</long>
-      </locale>
-    </schema>
-    <schema>
-      <applyto>/desktop/gnome/url-handlers/http/need-terminal</applyto>
-      <key>/schemas/desktop/gnome/url-handlers/http/need-terminal</key>
-      <owner>gnome</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Run program in terminal</short>
-        <long>True if the program to handle this URL should be run in a terminal</long>
-      </locale>
-    </schema>
-
-    <schema>   
-      <applyto>/desktop/gnome/url-handlers/ftp/enabled</applyto>
-      <key>/schemas/desktop/gnome/url-handlers/ftp/enabled</key>
-      <owner>gnome</owner>
-      <type>bool</type>
-      <default>true</default>
-      <locale name="C">
-        <short>How to handle ftp URLs</short>
-        <long>Set to true to have a program specified in programs/ftp handle ftp URLs</long>
-      </locale>
-    </schema>
-    <schema>
-      <applyto>/desktop/gnome/url-handlers/ftp/command</applyto>
-      <key>/schemas/desktop/gnome/url-handlers/ftp/command</key>
-      <owner>gnome</owner>
-      <type>string</type>
-      <default>mozilla "%s"</default>
-      <locale name="C">
-        <short>URL handler for ftp directories</short>
-        <long>URL handler for ftp directories</long>
-      </locale>
-    </schema>
-    <schema>
-      <applyto>/desktop/gnome/url-handlers/ftp/need-terminal</applyto>
-      <key>/schemas/desktop/gnome/url-handlers/ftp/need-terminal</key>
-      <owner>gnome</owner>
-      <type>bool</type>
-      <default>false</default>
-      <locale name="C">
-        <short>Run program in terminal</short>
-        <long>True if the program to handle this URL should be run in a terminal</long>
-      </locale>
-    </schema>
-
-    <schema>   
       <applyto>/desktop/gnome/url-handlers/info/enabled</applyto>
       <key>/schemas/desktop/gnome/url-handlers/info/enabled</key>
       <owner>gnome</owner>
Index: gnome-control-center/capplets/default-applications/gnome-default-applications-properties-structs.c
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/default-applications/gnome-default-applications-properties-structs.c,v
retrieving revision 1.2
diff -u -r1.2 gnome-default-applications-properties-structs.c
--- gnome-control-center/capplets/default-applications/gnome-default-applications-properties-structs.c	12 Feb 2002 06:16:05 -0000	1.2
+++ gnome-control-center/capplets/default-applications/gnome-default-applications-properties-structs.c	16 May 2002 19:39:15 -0000
@@ -1,17 +1,8 @@
-
-struct _EditorDescription
-{
-	gchar *name;
-        gchar *executable_name;
-        gboolean needs_term;
-        gboolean accepts_lineno;
-	gboolean in_path;
-};
-
 struct _BrowserDescription
 {
-	gchar *name;
+	gchar *name;	
         gchar *executable_name;
+	gchar *command;
         gboolean needs_term;
         gboolean nremote;
 	gboolean in_path;
@@ -34,34 +25,15 @@
 	gboolean in_path;
 };
 
-EditorDescription possible_editors[] =
-{
-        { "gedit",        	"gedit",  FALSE,  FALSE, FALSE },
-        { "Emacs",        	"emacs",  FALSE,  TRUE, FALSE },
-        { "Emacs (terminal)",	"emacs",  TRUE,   TRUE, FALSE },
-        { "XEmacs",       	"xemacs", FALSE,  TRUE, FALSE },
-        { "vi",           	"vi",     TRUE,   TRUE, FALSE },
-        { "Go",           	"go",     FALSE,  FALSE, FALSE },
-        { "GWP",          	"gwp",    FALSE,  FALSE, FALSE },
-        { "Jed",          	"jed",    TRUE,   TRUE, FALSE },
-        { "Joe",          	"joe",    TRUE,   TRUE, FALSE },
-        { "Pico",         	"pico",   TRUE,   TRUE, FALSE },
-        { "vim",          	"vim",    TRUE,   TRUE, FALSE },
-        { "gvim",         	"gvim",   FALSE,  TRUE, FALSE },
-        { "ed",           	"ed",     TRUE,   FALSE, FALSE },
-        { "GMC/CoolEdit", 	"gmc -e", FALSE,  FALSE, FALSE },
-	{ "Nedit",        	"nedit",  FALSE,  FALSE, FALSE }
-};
-
 BrowserDescription possible_browsers[] =
 {
-        { "Lynx Text Browser",		"lynx",      TRUE,  FALSE, FALSE },
-        { "Links Text Browser" , 	"links",     TRUE,  FALSE, FALSE },
-        { "Netscape Communicator", 	"netscape",  FALSE, TRUE,  FALSE },
-        { "Mozilla/Netscape 6", 	"mozilla",   FALSE, TRUE,  FALSE },
-        { "Galeon", 			"galeon",    FALSE, FALSE, FALSE },
-        { "Encompass", 			"encompass", FALSE, FALSE, FALSE },
-        { "Konqueror", 			"konqueror", FALSE, FALSE, FALSE }
+        { "Lynx Text Browser",		"lynx",      "lynx %s",      TRUE,  FALSE, FALSE },
+        { "Links Text Browser" , 	"links",     "links %s",     TRUE,  FALSE, FALSE },
+        { "Netscape Communicator", 	"netscape",  "netscape %s",  FALSE, TRUE,  FALSE },
+        { "Mozilla/Netscape 6", 	"mozilla",   "mozilla %s",   FALSE, TRUE,  FALSE },
+        { "Galeon", 			"galeon",    "galeon %s",    FALSE, FALSE, FALSE },
+        { "Encompass", 			"encompass", "encompass %s", FALSE, FALSE, FALSE },
+        { "Konqueror", 			"konqueror", "konqueror %s", FALSE, FALSE, FALSE }
 };
 
 HelpViewDescription possible_help_viewers[] = 
Index: gnome-control-center/capplets/default-applications/gnome-default-applications-properties.c
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/default-applications/gnome-default-applications-properties.c,v
retrieving revision 1.10
diff -u -r1.10 gnome-default-applications-properties.c
--- gnome-control-center/capplets/default-applications/gnome-default-applications-properties.c	28 Mar 2002 12:16:47 -0000	1.10
+++ gnome-control-center/capplets/default-applications/gnome-default-applications-properties.c	16 May 2002 19:39:15 -0000
@@ -33,32 +33,130 @@
 #include <glade/glade.h>
 #include <math.h>
 
+#include <libgnomevfs/gnome-vfs-mime-handlers.h>
+#include <libgnomevfs/gnome-vfs-application-registry.h>
+
 #include "capplet-util.h"
 #include "gconf-property-editor.h"
 
-#define DEFAULT_APPS_KEY_EDITOR_NEEDS_TERM "/desktop/gnome/applications/editor/needs_term"
-#define DEFAULT_APPS_KEY_EDITOR_ACCEPTS_LINENO "/desktop/gnome/applications/editor/accepts_lineno"
-#define DEFAULT_APPS_KEY_EDITOR_EXEC "/desktop/gnome/applications/editor/exec"
-#define DEFAULT_APPS_KEY_BROWSER_NEEDS_TERM "/desktop/gnome/applications/browser/needs_term"
-#define DEFAULT_APPS_KEY_BROWSER_NREMOTE "/desktop/gnome/applications/browser/nremote"
-#define DEFAULT_APPS_KEY_BROWSER_EXEC "/desktop/gnome/applications/browser/exec"
+#define DEFAULT_APPS_KEY_BROWSER_NEEDS_TERM "/desktop/gnome/url-handlers/unknown/need-terminal"
+#define DEFAULT_APPS_KEY_BROWSER_EXEC       "/desktop/gnome/url-handlers/unknown/command"
+
 #define DEFAULT_APPS_KEY_HELP_VIEWER_NEEDS_TERM "/desktop/gnome/applications/help_viewer/needs_term"
 #define DEFAULT_APPS_KEY_HELP_VIEWER_ACCEPTS_URLS "/desktop/gnome/applications/help_viewer/accepts_urls"
 #define DEFAULT_APPS_KEY_HELP_VIEWER_EXEC "/desktop/gnome/applications/help_viewer/exec"
+
 #define DEFAULT_APPS_KEY_TERMINAL_EXEC_ARG "/desktop/gnome/applications/terminal/exec_arg"
 #define DEFAULT_APPS_KEY_TERMINAL_EXEC "/desktop/gnome/applications/terminal/exec"
 
+#define MIME_APPLICATION_ID "gnome-default-applications-editor"
+
 typedef struct _BrowserDescription BrowserDescription;
-typedef struct _EditorDescription EditorDescription;
 typedef struct _HelpViewDescription HelpViewDescription;
 typedef struct _TerminalDesciption TerminalDescription;
 
 /* All defined below */
 #include "gnome-default-applications-properties-structs.c"
 
+static GList *text_editors = NULL;
+
 static GConfClient *client = NULL;
 
 static void
+on_text_custom_properties_clicked (GtkWidget *w, GladeXML *dialog)
+{
+	GtkWidget *d;
+	int res;
+	GnomeVFSMimeApplication *mime_app;
+	const char *command, *name;
+
+	d = WID ("custom_editor_dialog");
+	gtk_window_set_transient_for (GTK_WINDOW (d), GTK_WINDOW (WID ("default_applications_dialog")));
+
+	mime_app = gnome_vfs_application_registry_get_mime_application (MIME_APPLICATION_ID);
+
+	gtk_entry_set_text (GTK_ENTRY (WID ("text_custom_name_entry")),
+			    mime_app ? mime_app->name : "");
+	gtk_entry_set_text (GTK_ENTRY (WID ("text_custom_command_entry")),
+			    mime_app ? mime_app->command : "");
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_custom_multi_toggle")),
+				      mime_app ? mime_app->can_open_multiple_files : FALSE);
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_custom_terminal_toggle")),
+				      mime_app ? mime_app->requires_terminal : FALSE);
+
+ run_properties_dialog:
+	res = gtk_dialog_run (GTK_DIALOG (d));
+
+	if (res != GTK_RESPONSE_OK) {
+		gtk_widget_hide (d);
+		gnome_vfs_mime_application_free (mime_app);
+		return;
+	}
+
+	name    = gtk_entry_get_text (GTK_ENTRY (WID ("text_custom_name_entry")));
+	command = gtk_entry_get_text (GTK_ENTRY (WID ("text_custom_command_entry")));
+
+	if (!*name || !*command) {
+		GtkWidget *d2;
+		d2 = gtk_message_dialog_new (GTK_WINDOW (d),
+					     0,
+					     GTK_MESSAGE_ERROR,
+					     GTK_BUTTONS_OK,
+					     _("Please specify a name and a command for this editor."));
+		gtk_dialog_run (GTK_DIALOG (d2));
+		gtk_widget_destroy (d2);
+		goto run_properties_dialog;
+	}
+
+	gtk_widget_hide (d);
+
+	if (mime_app) {
+		g_free (mime_app->name);
+		g_free (mime_app->command);
+	} else {
+		mime_app = g_new0 (GnomeVFSMimeApplication, 1);	
+		mime_app->id = g_strdup (MIME_APPLICATION_ID);
+	}
+
+	mime_app->name    = g_strdup (name);
+	mime_app->command = g_strdup (command);
+
+	mime_app->can_open_multiple_files = GTK_TOGGLE_BUTTON (WID ("text_custom_multi_toggle"))->active;
+	mime_app->requires_terminal = GTK_TOGGLE_BUTTON (WID ("text_custom_terminal_toggle"))->active;
+	mime_app->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS;
+
+#if 0
+	GTK_TOGGLE_BUTTON (WID ("text_custom_uri_toggle"))->active
+		? GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES
+		: GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS;
+#endif
+
+	gnome_vfs_application_registry_save_mime_application (mime_app);
+
+	gnome_vfs_mime_set_default_application ("text/plain", mime_app->id);
+	gnome_vfs_mime_application_free (mime_app);
+
+	gnome_vfs_application_registry_sync ();	
+}
+
+static void
+on_text_default_viewer_toggle (GtkWidget *toggle, GladeXML *dialog)
+{
+	GnomeVFSMimeActionType old_action_type, new_action_type;
+
+	old_action_type = gnome_vfs_mime_get_default_action_type ("text/plain");
+	new_action_type = GTK_TOGGLE_BUTTON (toggle)->active
+		? GNOME_VFS_MIME_ACTION_TYPE_APPLICATION 
+		: GNOME_VFS_MIME_ACTION_TYPE_COMPONENT;
+
+	if (new_action_type == old_action_type)
+		return;
+
+	gnome_vfs_mime_set_default_action_type ("text/plain", new_action_type);
+	gnome_vfs_application_registry_sync ();
+}
+
+static void
 generic_guard (GtkWidget *toggle, GtkWidget *widget)
 {
 	gtk_widget_set_sensitive (widget, GTK_TOGGLE_BUTTON (toggle)->active);
@@ -84,10 +182,8 @@
 {
         gint i;
 
-        for (i = 0; i < G_N_ELEMENTS (possible_editors); i++ ) {
-                if (g_find_program_in_path (possible_editors[i].executable_name))
-			possible_editors[i].in_path = TRUE;
-        }
+	text_editors = gnome_vfs_mime_get_all_applications ("text/plain");
+
         for (i = 0; i < G_N_ELEMENTS (possible_browsers); i++ ) {
                 if (g_find_program_in_path (possible_browsers[i].executable_name))
 			possible_browsers[i].in_path = TRUE;
@@ -103,67 +199,112 @@
 }
 
 static void
+update_editor_sensitivity (GladeXML *dialog)
+{ 
+	gboolean predefined = GTK_TOGGLE_BUTTON (WID ("text_select_radio"))->active;
+
+	gtk_widget_set_sensitive (WID ("text_select_combo"), predefined);
+	gtk_widget_set_sensitive (WID ("text_custom_hbox"), !predefined);
+}
+
+static void
 read_editor (GConfClient *client,
 	     GladeXML    *dialog)
 {
-	GError *error = NULL;
-	gchar *editor;
-	gboolean needs_term;
-	gboolean accepts_lineno;
-	gint i;
+	GnomeVFSMimeApplication *mime_app;
+	GList *li;
 
-	needs_term = gconf_client_get_bool (client, DEFAULT_APPS_KEY_EDITOR_NEEDS_TERM, &error);
-	if (error) {
-		/* hp will shoot me -- I'll do this later. */
-		return;
-	}
-	accepts_lineno = gconf_client_get_bool (client, DEFAULT_APPS_KEY_EDITOR_ACCEPTS_LINENO, &error);
-	if (error) {
-		return;
-	}
-	editor = gconf_client_get_string (client, DEFAULT_APPS_KEY_EDITOR_EXEC, &error);
-	if (error) {
-		return;
-	}
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_default_viewer_toggle")),
+				      gnome_vfs_mime_get_default_action_type ("text/plain") == GNOME_VFS_MIME_ACTION_TYPE_APPLICATION);
 
-	for (i = 0; i < G_N_ELEMENTS (possible_editors); i++ ) {
-		if (possible_editors[i].in_path == FALSE)
-			continue;
-		
-		if (editor && strcmp (editor, possible_editors[i].executable_name) == 0 &&
-		    needs_term == possible_editors[i].needs_term &&
-		    accepts_lineno == possible_editors[i].accepts_lineno) {
-			gtk_entry_set_text (GTK_ENTRY (WID ("text_select_combo_entry")),
-					    _(possible_editors[i].name));
+	mime_app = gnome_vfs_mime_get_default_application ("text/plain");
+	if (!strcmp (mime_app->id, MIME_APPLICATION_ID))
+		goto read_editor_custom;
+
+	for (li = text_editors; li; li = li->next) {
+		GnomeVFSMimeApplication *li_app = li->data;
+
+		if (strcmp (mime_app->command, li_app->command) == 0 &&
+		    mime_app->requires_terminal == li_app->requires_terminal) {
+			gtk_entry_set_text (GTK_ENTRY (WID ("text_select_combo_entry")), mime_app->name);
 			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_custom_radio")), TRUE);
 			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_select_radio")), TRUE);
-			g_free (editor);
 			return;
 		}
         }
+
+	/* 
+	 * the default editor wasn't set by us, and it wasn't in the
+	 * list.
+	 */
+
+	g_free (mime_app->id);
+	mime_app->id = g_strdup (MIME_APPLICATION_ID);
+
+	gnome_vfs_application_registry_save_mime_application (mime_app);
+
+	gnome_vfs_mime_set_default_application ("text/plain", mime_app->id);
+	gnome_vfs_mime_application_free (mime_app);
+
+	gnome_vfs_application_registry_sync ();	
+
+ read_editor_custom:
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_select_radio")), TRUE);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_custom_radio")), TRUE);
-	g_free (editor);
 }
 
 static void
-text_setup_custom (GtkWidget *entry,
+text_apply_editor (GtkWidget *entry,
 		   GladeXML  *dialog)
 {
-	gint i;
-	const gchar *editor = gtk_entry_get_text (GTK_ENTRY (entry));
+	GList *li;
+	GnomeVFSMimeApplication *mime_app;
+	const gchar *editor;
 
-	for (i = 0; i < G_N_ELEMENTS (possible_editors); i++ ) {
-		if (! strcmp (_(possible_editors[i].name), editor)) {
-			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_custom_terminal_toggle")),
-						      possible_editors[i].needs_term);
-			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_custom_line_toggle")),
-						      possible_editors[i].accepts_lineno);
-			gtk_entry_set_text (GTK_ENTRY (WID ("text_custom_command_entry")),
-					    possible_editors[i].executable_name);
+	if (!GTK_TOGGLE_BUTTON (WID ("text_select_radio"))->active)
+		return;
+
+	update_editor_sensitivity (dialog);
+
+	editor = gtk_entry_get_text (GTK_ENTRY (WID ("text_select_combo_entry")));
+
+	for (li = text_editors; li; li = li->next) {
+		mime_app = li->data;
+		if (! strcmp (mime_app->name, editor)) {
+			gnome_vfs_mime_set_default_application ("text/plain", mime_app->id);
+			gnome_vfs_application_registry_sync ();	
 			return;
 		}
 	}
+
+	g_assert_not_reached ();
+}
+
+static void
+text_apply_custom (GtkWidget *entry,
+		   GladeXML *dialog)
+{
+	GnomeVFSMimeApplication *mime_app;
+
+	if (!GTK_TOGGLE_BUTTON (WID ("text_custom_radio"))->active)
+		return;
+
+	mime_app = gnome_vfs_application_registry_get_mime_application (MIME_APPLICATION_ID);
+	if (!mime_app) {
+		on_text_custom_properties_clicked (entry, dialog);
+		mime_app = gnome_vfs_application_registry_get_mime_application (MIME_APPLICATION_ID);
+		if (!mime_app) {
+			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("text_select_radio")), TRUE);
+			return;
+		}
+	} else {
+		gnome_vfs_mime_set_default_application ("text/plain", mime_app->id);
+		gnome_vfs_mime_application_free (mime_app);
+		
+		gnome_vfs_application_registry_sync ();	
+	}
+
+	update_editor_sensitivity (dialog);
 }
 
 static void 
@@ -172,17 +313,8 @@
 {
         GConfChangeSet *changeset = NULL;
 	
-	gconf_peditor_new_boolean (changeset, DEFAULT_APPS_KEY_EDITOR_NEEDS_TERM,
-				   WID ("text_custom_terminal_toggle"), NULL);
-	gconf_peditor_new_boolean (changeset, DEFAULT_APPS_KEY_EDITOR_ACCEPTS_LINENO,
-				   WID ("text_custom_line_toggle"), NULL);
-	gconf_peditor_new_string  (changeset, DEFAULT_APPS_KEY_EDITOR_EXEC,
-				   WID ("text_custom_command_entry"), NULL);
-
 	gconf_peditor_new_boolean (changeset, DEFAULT_APPS_KEY_BROWSER_NEEDS_TERM,
 				   WID ("web_custom_terminal_toggle"), NULL);
-	gconf_peditor_new_boolean (changeset, DEFAULT_APPS_KEY_BROWSER_NREMOTE,
-				   WID ("web_custom_remote_toggle"), NULL);
 	gconf_peditor_new_string  (changeset, DEFAULT_APPS_KEY_BROWSER_EXEC,
 				   WID ("web_custom_command_entry"), NULL);
 
@@ -206,7 +338,6 @@
 	GError *error = NULL;
 	gchar *browser;
 	gboolean needs_term;
-	gboolean nremote;
 	gint i;
 
 	needs_term = gconf_client_get_bool (client, DEFAULT_APPS_KEY_BROWSER_NEEDS_TERM, &error);
@@ -214,10 +345,6 @@
 		/* hp will shoot me -- I'll do this later. */
 		return;
 	}
-	nremote = gconf_client_get_bool (client, DEFAULT_APPS_KEY_BROWSER_NREMOTE, &error);
-	if (error) {
-		return;
-	}
 	browser = gconf_client_get_string (client, DEFAULT_APPS_KEY_BROWSER_EXEC, &error);
 	if (error) {
 		return;
@@ -227,9 +354,8 @@
 		if (possible_browsers[i].in_path == FALSE)
 			continue;
 		
-		if (browser && strcmp (browser, possible_browsers[i].executable_name) == 0 &&
-		    needs_term == possible_browsers[i].needs_term &&
-		    nremote == possible_browsers[i].nremote) {
+		if (browser && strcmp (browser, possible_browsers[i].command) == 0 &&
+		    needs_term == possible_browsers[i].needs_term) {
 			gtk_entry_set_text (GTK_ENTRY (WID ("web_select_combo_entry")),
 					    _(possible_browsers[i].name));
 			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("web_custom_radio")), TRUE);
@@ -256,10 +382,8 @@
 		if (! strcmp (_(possible_browsers[i].name), browser)) {
 		        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("web_custom_terminal_toggle")),
 						      possible_browsers[i].needs_term);
-			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("web_custom_remote_toggle")),
-						      possible_browsers[i].nremote);
 			gtk_entry_set_text (GTK_ENTRY (WID ("web_custom_command_entry")),
-					    possible_browsers[i].executable_name);
+					    possible_browsers[i].command);
 			return;
 		}
 	}
@@ -428,18 +552,15 @@
 create_dialog (GConfClient *client)
 {
 	GladeXML *dialog;
-	GList *strings = NULL;
+	GList *strings = NULL, *li;
 	gint i;
-	dialog = glade_xml_new (GNOMECC_DATA_DIR "/interfaces/gnome-default-applications-properties.glade",
-				"default_applications_dialog",
-				NULL);
+	dialog = glade_xml_new (GNOMECC_DATA_DIR "/interfaces/gnome-default-applications-properties.glade", NULL, NULL);
 	
 	setup_peditors (client, dialog);
 
 	/* Editors page */
-	for (i = 0; i < G_N_ELEMENTS (possible_editors); i++ ) {
-		if (possible_editors[i].in_path)
-			strings = g_list_append (strings, _(possible_editors[i].name));
+	for (li = text_editors; li; li = li->next) {
+		strings = g_list_append (strings, ((GnomeVFSMimeApplication *)li->data)->name);
 	}
 	if (strings) {
 		/* We have default editors */
@@ -451,22 +572,22 @@
 		gtk_widget_set_sensitive (WID ("text_select_radio"), FALSE);
 	}
 
-	/* Source of command string */
-	g_object_set_data (G_OBJECT (WID ("text_select_radio")), "entry", WID ("text_select_combo_entry"));
-	/* Source of command string */
-	g_object_set_data (G_OBJECT (WID ("text_custom_radio")), "entry", WID ("text_custom_command_entry"));
+	read_editor (client, dialog);
+	update_editor_sensitivity (dialog);
 
 	g_signal_connect (G_OBJECT (WID ("text_select_combo_entry")),
-			  "changed", (GCallback) text_setup_custom,
+			  "changed", G_CALLBACK (text_apply_editor),
 			  dialog);
-	g_signal_connect (G_OBJECT (WID ("text_select_radio")),
-			  "toggled", (GCallback) generic_guard,
-			  WID ("text_select_combo"));
-	g_signal_connect (G_OBJECT (WID ("text_custom_radio")),
-			  "toggled", (GCallback) generic_guard,
-			  WID ("text_custom_vbox"));
-
-	read_editor (client, dialog);
+	g_signal_connect (WID ("text_custom_properties"), "clicked",			  
+			  G_CALLBACK (on_text_custom_properties_clicked),
+			  dialog);
+	g_signal_connect (WID ("text_default_viewer_toggle"), "toggled",
+			  G_CALLBACK (on_text_default_viewer_toggle),
+			  dialog);
+	g_signal_connect_after (G_OBJECT (WID ("text_select_radio")), "toggled",
+				G_CALLBACK (text_apply_editor), dialog);
+	g_signal_connect_after (G_OBJECT (WID ("text_custom_radio")), "toggled",
+				G_CALLBACK (text_apply_custom), dialog);
 
 	/* Web browsers page */
 	for (i = 0; i < G_N_ELEMENTS (possible_browsers); i++ ) {
@@ -565,12 +686,11 @@
 			  WID ("terminal_custom_table"));
 	read_terminal (client, dialog);	
 
-	gtk_notebook_remove_page (GTK_NOTEBOOK (WID ("notebook")), 4);
-	
+
 	g_signal_connect (G_OBJECT (client), "value-changed", (GCallback) value_changed_cb, dialog);
 	g_signal_connect (G_OBJECT (WID ("default_applications_dialog")), "response", (GCallback) dialog_response, dialog);
 	
-	gtk_widget_show_all (WID ("default_applications_dialog"));
+	gtk_widget_show (WID ("default_applications_dialog"));
 
 	return dialog;
 }
@@ -604,7 +724,6 @@
 
 	client = gconf_client_get_default ();
 
-	gconf_client_add_dir (client, "/desktop/gnome/applications/editor", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
 	gconf_client_add_dir (client, "/desktop/gnome/applications/browser", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
 	gconf_client_add_dir (client, "/desktop/gnome/applications/help_viewer", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
 	gconf_client_add_dir (client, "/desktop/gnome/applications/terminal", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
Index: gnome-control-center/capplets/default-applications/gnome-default-applications-properties.glade
===================================================================
RCS file: /cvs/gnome/gnome-control-center/capplets/default-applications/gnome-default-applications-properties.glade,v
retrieving revision 1.7
diff -u -r1.7 gnome-default-applications-properties.glade
--- gnome-control-center/capplets/default-applications/gnome-default-applications-properties.glade	28 Mar 2002 20:55:50 -0000	1.7
+++ gnome-control-center/capplets/default-applications/gnome-default-applications-properties.glade	16 May 2002 19:39:15 -0000
@@ -1,1290 +1,1594 @@
 <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd" >
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
 
 <glade-interface>
-  <widget class="GtkDialog" id="default_applications_dialog">
-    <property name="title" translatable="yes">Preferred Applications</property>
-    <property name="type">GTK_WINDOW_TOPLEVEL</property>
-    <property name="modal">no</property>
-    <property name="allow_shrink">no</property>
-    <property name="allow_grow">yes</property>
-    <property name="visible">no</property>
-    <property name="window-position">GTK_WIN_POS_NONE</property>
-
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
-        <property name="homogeneous">no</property>
-        <property name="spacing">8</property>
-        <property name="visible">yes</property>
-
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <property name="spacing">8</property>
-            <property name="visible">yes</property>
-
-	    <child>
-              <widget class="GtkButton" id="button5">
-                <property name="can_default">yes</property>
-                <property name="can_focus">yes</property>
-                <property name="visible">yes</property>
-                <property name="label">gtk-close</property>
-                <property name="use_stock">yes</property>
-                <property name="response_id">2</property>
-                <property name="use_underline">yes</property>
-              </widget>
-            </child>
-	  </widget>
-          <packing>
-            <property name="padding">0</property>
-            <property name="expand">no</property>
-            <property name="fill">yes</property>
-            <property name="pack_type">GTK_PACK_END</property>
-          </packing>
-        </child>
-
-        <child>
-          <widget class="GtkNotebook" id="notebook">
-            <property name="can_focus">yes</property>
-            <property name="show_tabs">yes</property>
-            <property name="show_border">yes</property>
-            <property name="tab_pos">GTK_POS_TOP</property>
-            <property name="scrollable">no</property>
-            <property name="tab_hborder">2</property>
-            <property name="tab_vborder">2</property>
-            <property name="enable-popup">no</property>
-            <property name="visible">yes</property>
-
-            <child>
-              <widget class="GtkFrame" id="frame1">
-                <property name="border_width">4</property>
-                <property name="label" translatable="yes">Default Text Editor</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow">GTK_SHADOW_ETCHED_IN</property>
-                <property name="visible">yes</property>
-
-                <child>
-                  <widget class="GtkTable" id="table1">
-                    <property name="border_width">4</property>
-                    <property name="homogeneous">no</property>
-                    <property name="row_spacing">16</property>
-                    <property name="column_spacing">4</property>
-                    <property name="n-rows">2</property>
-                    <property name="n-columns">2</property>
-                    <property name="visible">yes</property>
-
-                    <child>
-                      <widget class="GtkRadioButton" id="text_select_radio">
-                        <property name="can_focus">yes</property>
-                        <property name="label" translatable="yes">_Select an Editor:</property>
-			<property name="use_underline">yes</property>
-                        <property name="active">no</property>
-                        <property name="draw_indicator">yes</property>
-                        <property name="visible">yes</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="right_attach">1</property>
-                        <property name="top_attach">0</property>
-                        <property name="bottom_attach">1</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkCombo" id="text_select_combo">
-                        <property name="sensitive">no</property>
-                        <property name="value_in_list">no</property>
-                        <property name="case_sensitive">no</property>
-                        <property name="enable_arrow_keys">yes</property>
-                        <property name="enable_arrows_always">no</property>
-                        <property name="allow_empty">yes</property>
-                        <property name="visible">yes</property>
-
-                        <child internal-child="entry">
-                          <widget class="GtkEntry" id="text_select_combo_entry">
-                            <property name="can_focus">yes</property>
-                            <property name="editable">no</property>
-                            <property name="text" translatable="yes"></property>
-                            <property name="max-length">0</property>
-                            <property name="visibility">yes</property>
-                            <property name="visible">yes</property>
-                          </widget>
-                        </child>
-
-                        <child internal-child="list">
-                          <widget class="GtkList" id="convertwidget1">
-                            <property name="visible">yes</property>
-
-                            <child>
-                              <widget class="GtkListItem" id="convertwidget2">
-                                <property name="visible">yes</property>
-
-                                <child>
-                                  <widget class="GtkLabel" id="convertwidget3">
-                                    <property name="label" translatable="yes"></property>
-                                    <property name="xalign">0.0</property>
-                                    <property name="visible">yes</property>
-                                  </widget>
-                                </child>
-                              </widget>
-                            </child>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">0</property>
-                        <property name="bottom_attach">1</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">expand|fill</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkVBox" id="text_custom_vbox">
-                        <property name="homogeneous">no</property>
-                        <property name="spacing">4</property>
-                        <property name="sensitive">no</property>
-                        <property name="visible">yes</property>
-
-                        <child>
-                          <widget class="GtkHBox" id="hbox1">
-                            <property name="homogeneous">no</property>
-                            <property name="spacing">4</property>
-                            <property name="visible">yes</property>
-
-                            <child>
-                              <widget class="GtkLabel" id="label5">
-                                <property name="label" translatable="yes">Co_mmand:</property>
-                                <property name="justify">GTK_JUSTIFY_CENTER</property>
-                                <property name="wrap">no</property>
-                                <property name="xalign">0.5</property>
-                                <property name="yalign">0.5</property>
-                                <property name="xpad">0</property>
-                                <property name="ypad">0</property>
-                                <property name="mnemonic_widget">text_custom_command_entry</property>
-                                <property name="visible">yes</property>
-                                <property name="use_underline">yes</property>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">no</property>
-                                <property name="fill">no</property>
-                              </packing>
-                            </child>
-
-                            <child>
-                              <widget class="GtkEntry" id="text_custom_command_entry">
-                                <property name="can_focus">yes</property>
-                                <property name="editable">yes</property>
-                                <property name="text" translatable="yes"></property>
-                                <property name="max-length">0</property>
-                                <property name="visibility">yes</property>
-                                <property name="visible">yes</property>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">yes</property>
-                                <property name="fill">yes</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">yes</property>
-                            <property name="fill">yes</property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkCheckButton" id="text_custom_terminal_toggle">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">Start in T_erminal</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="use_underline">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">no</property>
-                            <property name="fill">no</property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkCheckButton" id="text_custom_line_toggle">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">Accepts Line _Number</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="use_underline">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">no</property>
-                            <property name="fill">no</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options">fill</property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkAlignment" id="alignment1">
-                        <property name="xalign">0.5</property>
-                        <property name="yalign">0</property>
-                        <property name="xscale">1</property>
-                        <property name="yscale">0</property>
-                        <property name="visible">yes</property>
-
-                        <child>
-                          <widget class="GtkRadioButton" id="text_custom_radio">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">C_ustom Editor:</property>
-			    <property name="use_underline">yes</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="group">text_select_radio</property>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="right_attach">1</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options">fill</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-
-            <child>
-              <widget class="GtkLabel" id="label1">
-                <property name="label" translatable="yes">_Text Editor</property>
-                <property name="justify">GTK_JUSTIFY_CENTER</property>
-                <property name="wrap">no</property>
-                <property name="xalign">0.5</property>
-                <property name="yalign">0.5</property>
-                <property name="xpad">0</property>
-                <property name="ypad">0</property>
-                <property name="visible">yes</property>
-                <property name="use_underline">yes</property>
-              </widget>
-              <packing>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-
-            <child>
-              <widget class="GtkFrame" id="frame3">
-                <property name="border_width">4</property>
-                <property name="label" translatable="yes">Default Web Browser</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow">GTK_SHADOW_ETCHED_IN</property>
-                <property name="visible">yes</property>
-
-                <child>
-                  <widget class="GtkTable" id="table2">
-                    <property name="border_width">4</property>
-                    <property name="homogeneous">no</property>
-                    <property name="row_spacing">16</property>
-                    <property name="column_spacing">4</property>
-                    <property name="n-rows">2</property>
-                    <property name="n-columns">2</property>
-                    <property name="visible">yes</property>
-
-                    <child>
-                      <widget class="GtkRadioButton" id="web_select_radio">
-                        <property name="can_focus">yes</property>
-                        <property name="label" translatable="yes">_Select a Web Browser:</property>
-			<property name="use_underline">yes</property>
-                        <property name="active">no</property>
-                        <property name="draw_indicator">yes</property>
-                        <property name="visible">yes</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="right_attach">1</property>
-                        <property name="top_attach">0</property>
-                        <property name="bottom_attach">1</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkCombo" id="web_select_combo">
-			<property name="sensitive">no</property>
-                        <property name="value_in_list">no</property>
-                        <property name="case_sensitive">no</property>
-                        <property name="enable_arrow_keys">yes</property>
-                        <property name="enable_arrows_always">no</property>
-                        <property name="allow_empty">yes</property>
-                        <property name="visible">yes</property>
-
-                        <child internal-child="entry">
-                          <widget class="GtkEntry" id="web_select_combo_entry">
-                            <property name="can_focus">yes</property>
-                            <property name="editable">no</property>
-                            <property name="text" translatable="yes"></property>
-                            <property name="max-length">0</property>
-                            <property name="visibility">yes</property>
-                            <property name="visible">yes</property>
-                          </widget>
-                        </child>
-
-                        <child internal-child="list">
-                          <widget class="GtkList" id="convertwidget4">
-                            <property name="visible">yes</property>
-
-                            <child>
-                              <widget class="GtkListItem" id="convertwidget5">
-                                <property name="visible">yes</property>
-
-                                <child>
-                                  <widget class="GtkLabel" id="convertwidget6">
-                                    <property name="label" translatable="yes"></property>
-                                    <property name="xalign">0.0</property>
-                                    <property name="visible">yes</property>
-                                  </widget>
-                                </child>
-                              </widget>
-                            </child>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">0</property>
-                        <property name="bottom_attach">1</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">expand|fill</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkVBox" id="web_custom_vbox">
-			<property name="sensitive">no</property>
-                        <property name="homogeneous">no</property>
-                        <property name="spacing">4</property>
-                        <property name="visible">yes</property>
-
-                        <child>
-                          <widget class="GtkHBox" id="hbox4">
-                            <property name="homogeneous">no</property>
-                            <property name="spacing">4</property>
-                            <property name="visible">yes</property>
-
-                            <child>
-                              <widget class="GtkLabel" id="label11">
-                                <property name="label" translatable="yes">Co_mmand:</property>
-                                <property name="justify">GTK_JUSTIFY_CENTER</property>
-                                <property name="wrap">no</property>
-                                <property name="xalign">0.5</property>
-                                <property name="yalign">0.5</property>
-                                <property name="xpad">0</property>
-                                <property name="ypad">0</property>
-                                <property name="mnemonic_widget">web_custom_command_entry</property>
-                                <property name="visible">yes</property>
-                                <property name="use_underline">yes</property>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">no</property>
-                                <property name="fill">no</property>
-                              </packing>
-                            </child>
-
-                            <child>
-                              <widget class="GtkEntry" id="web_custom_command_entry">
-                                <property name="can_focus">yes</property>
-                                <property name="editable">yes</property>
-                                <property name="text" translatable="yes"></property>
-                                <property name="max-length">0</property>
-                                <property name="visibility">yes</property>
-                                <property name="visible">yes</property>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">yes</property>
-                                <property name="fill">yes</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">yes</property>
-                            <property name="fill">yes</property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkCheckButton" id="web_custom_terminal_toggle">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">Start in T_erminal</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="use_underline">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">no</property>
-                            <property name="fill">no</property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkCheckButton" id="web_custom_remote_toggle">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">Understands _Netscape Remote Control</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="use_underline">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">no</property>
-                            <property name="fill">no</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options">fill</property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkAlignment" id="alignment2">
-                        <property name="xalign">0.5</property>
-                        <property name="yalign">0</property>
-                        <property name="xscale">1</property>
-                        <property name="yscale">0</property>
-                        <property name="visible">yes</property>
-
-                        <child>
-                          <widget class="GtkRadioButton" id="web_custom_radio">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">C_ustom Web Browser:</property>
-			    <property name="use_underline">yes</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="group">web_select_radio</property>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="right_attach">1</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options">fill</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-
-            <child>
-              <widget class="GtkLabel" id="label2">
-                <property name="label" translatable="yes">Web _Browser</property>
-                <property name="justify">GTK_JUSTIFY_CENTER</property>
-                <property name="wrap">no</property>
-                <property name="xalign">0.5</property>
-                <property name="yalign">0.5</property>
-                <property name="xpad">0</property>
-                <property name="ypad">0</property>
-                <property name="visible">yes</property>
-                <property name="use_underline">yes</property>
-              </widget>
-              <packing>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-
-            <child>
-              <widget class="GtkFrame" id="frame4">
-                <property name="border_width">4</property>
-                <property name="label" translatable="yes">Default Help Browser</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow">GTK_SHADOW_ETCHED_IN</property>
-                <property name="visible">yes</property>
-
-                <child>
-                  <widget class="GtkTable" id="table3">
-                    <property name="border_width">4</property>
-                    <property name="homogeneous">no</property>
-                    <property name="row_spacing">16</property>
-                    <property name="column_spacing">4</property>
-                    <property name="n-rows">2</property>
-                    <property name="n-columns">2</property>
-                    <property name="visible">yes</property>
-
-                    <child>
-                      <widget class="GtkRadioButton" id="help_select_radio">
-                        <property name="can_focus">yes</property>
-                        <property name="label" translatable="yes">_Select a Help Browser:</property>
-			<property name="use_underline">yes</property>
-                        <property name="active">no</property>
-                        <property name="draw_indicator">yes</property>
-                        <property name="visible">yes</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="right_attach">1</property>
-                        <property name="top_attach">0</property>
-                        <property name="bottom_attach">1</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkCombo" id="help_select_combo">
-                        <property name="value_in_list">no</property>
-			<property name="sensitive">no</property>
-                        <property name="case_sensitive">no</property>
-                        <property name="enable_arrow_keys">yes</property>
-                        <property name="enable_arrows_always">no</property>
-                        <property name="allow_empty">yes</property>
-                        <property name="visible">yes</property>
-
-                        <child internal-child="entry">
-                          <widget class="GtkEntry" id="help_select_combo_entry">
-                            <property name="can_focus">yes</property>
-                            <property name="editable">no</property>
-                            <property name="text" translatable="yes"></property>
-                            <property name="max-length">0</property>
-                            <property name="visibility">yes</property>
-                            <property name="visible">yes</property>
-                          </widget>
-                        </child>
-
-                        <child internal-child="list">
-                          <widget class="GtkList" id="convertwidget7">
-                            <property name="visible">yes</property>
-
-                            <child>
-                              <widget class="GtkListItem" id="convertwidget8">
-                                <property name="visible">yes</property>
-
-                                <child>
-                                  <widget class="GtkLabel" id="convertwidget9">
-                                    <property name="label" translatable="yes"></property>
-                                    <property name="xalign">0.0</property>
-                                    <property name="visible">yes</property>
-                                  </widget>
-                                </child>
-                              </widget>
-                            </child>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">0</property>
-                        <property name="bottom_attach">1</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">expand|fill</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkVBox" id="help_custom_vbox">
-                        <property name="homogeneous">no</property>
-                        <property name="spacing">4</property>
-                        <property name="visible">yes</property>
-			<property name="sensitive">no</property>
-
-                        <child>
-                          <widget class="GtkHBox" id="hbox5">
-                            <property name="homogeneous">no</property>
-                            <property name="spacing">4</property>
-                            <property name="visible">yes</property>
-
-                            <child>
-                              <widget class="GtkLabel" id="label12">
-                                <property name="label" translatable="yes">Co_mmand:</property>
-                                <property name="justify">GTK_JUSTIFY_CENTER</property>
-                                <property name="wrap">no</property>
-                                <property name="xalign">0.5</property>
-                                <property name="yalign">0.5</property>
-                                <property name="xpad">0</property>
-                                <property name="ypad">0</property>
-                                <property name="mnemonic_widget">help_custom_command_entry</property>
-                                <property name="visible">yes</property>
-                                <property name="use_underline">yes</property>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">no</property>
-                                <property name="fill">no</property>
-                              </packing>
-                            </child>
-
-                            <child>
-                              <widget class="GtkEntry" id="help_custom_command_entry">
-                                <property name="can_focus">yes</property>
-                                <property name="editable">yes</property>
-                                <property name="text" translatable="yes"></property>
-                                <property name="max-length">0</property>
-                                <property name="visibility">yes</property>
-                                <property name="visible">yes</property>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">yes</property>
-                                <property name="fill">yes</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">yes</property>
-                            <property name="fill">yes</property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkCheckButton" id="help_custom_terminal_toggle">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">Start in T_erminal</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="use_underline">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">no</property>
-                            <property name="fill">no</property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkCheckButton" id="help_custom_url_toggle">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">Acce_pts URLs</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="use_underline">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">no</property>
-                            <property name="fill">no</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options">fill</property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkAlignment" id="alignment3">
-                        <property name="xalign">0.5</property>
-                        <property name="yalign">0</property>
-                        <property name="xscale">1</property>
-                        <property name="yscale">0</property>
-                        <property name="visible">yes</property>
-
-                        <child>
-                          <widget class="GtkRadioButton" id="help_custom_radio">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">C_ustom Help Browser:</property>
-			    <property name="use_underline">yes</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="group">help_select_radio</property>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="right_attach">1</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options">fill</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-
-            <child>
-              <widget class="GtkLabel" id="label3">
-                <property name="label" translatable="yes">He_lp Browser</property>
-                <property name="justify">GTK_JUSTIFY_CENTER</property>
-                <property name="wrap">no</property>
-                <property name="xalign">0.5</property>
-                <property name="yalign">0.5</property>
-                <property name="xpad">0</property>
-                <property name="ypad">0</property>
-                <property name="visible">yes</property>
-                <property name="use_underline">yes</property>
-              </widget>
-              <packing>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-
-            <child>
-              <widget class="GtkFrame" id="frame5">
-                <property name="border_width">4</property>
-                <property name="label" translatable="yes">Default Terminal</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow">GTK_SHADOW_ETCHED_IN</property>
-                <property name="visible">yes</property>
-
-                <child>
-                  <widget class="GtkTable" id="table4">
-                    <property name="border_width">4</property>
-                    <property name="homogeneous">no</property>
-                    <property name="row_spacing">16</property>
-                    <property name="column_spacing">4</property>
-                    <property name="n-rows">2</property>
-                    <property name="n-columns">2</property>
-                    <property name="visible">yes</property>
-
-                    <child>
-                      <widget class="GtkRadioButton" id="terminal_select_radio">
-                        <property name="can_focus">yes</property>
-                        <property name="label" translatable="yes">_Select a Terminal:</property>
-			<property name="use_underline">yes</property>
-                        <property name="active">no</property>
-                        <property name="draw_indicator">yes</property>
-                        <property name="visible">yes</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="right_attach">1</property>
-                        <property name="top_attach">0</property>
-                        <property name="bottom_attach">1</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkCombo" id="terminal_select_combo">
-                        <property name="sensitive">no</property>
-                        <property name="value_in_list">no</property>
-                        <property name="case_sensitive">no</property>
-                        <property name="enable_arrow_keys">yes</property>
-                        <property name="enable_arrows_always">no</property>
-                        <property name="allow_empty">yes</property>
-                        <property name="visible">yes</property>
-
-                        <child internal-child="entry">
-                          <widget class="GtkEntry" id="terminal_select_combo_entry">
-                            <property name="can_focus">yes</property>
-                            <property name="editable">no</property>
-                            <property name="text" translatable="yes"></property>
-                            <property name="max-length">0</property>
-                            <property name="visibility">yes</property>
-                            <property name="visible">yes</property>
-                          </widget>
-                        </child>
-
-                        <child internal-child="list">
-                          <widget class="GtkList" id="convertwidget10">
-                            <property name="visible">yes</property>
-
-                            <child>
-                              <widget class="GtkListItem" id="convertwidget11">
-                                <property name="visible">yes</property>
-
-                                <child>
-                                  <widget class="GtkLabel" id="convertwidget12">
-                                    <property name="label" translatable="yes"></property>
-                                    <property name="xalign">0.0</property>
-                                    <property name="visible">yes</property>
-                                  </widget>
-                                </child>
-                              </widget>
-                            </child>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">0</property>
-                        <property name="bottom_attach">1</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">expand|fill</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkAlignment" id="alignment4">
-                        <property name="xalign">0.5</property>
-                        <property name="yalign">0</property>
-                        <property name="xscale">1</property>
-                        <property name="yscale">0</property>
-                        <property name="visible">yes</property>
-
-                        <child>
-                          <widget class="GtkRadioButton" id="terminal_custom_radio">
-                            <property name="can_focus">yes</property>
-                            <property name="label" translatable="yes">C_ustom Terminal:</property>
-			    <property name="use_underline">yes</property>
-                            <property name="active">no</property>
-                            <property name="draw_indicator">yes</property>
-                            <property name="visible">yes</property>
-                            <property name="group">terminal_select_radio</property>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="right_attach">1</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options">fill</property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkTable" id="terminal_custom_table">
-                        <property name="homogeneous">no</property>
-                        <property name="sensitive">no</property>
-                        <property name="row_spacing">4</property>
-                        <property name="column_spacing">4</property>
-                        <property name="n-rows">2</property>
-                        <property name="n-columns">2</property>
-                        <property name="visible">yes</property>
-
-                        <child>
-                          <widget class="GtkEntry" id="terminal_custom_command_entry">
-                            <property name="can_focus">yes</property>
-                            <property name="editable">yes</property>
-                            <property name="text" translatable="yes"></property>
-                            <property name="max-length">0</property>
-                            <property name="visibility">yes</property>
-                            <property name="visible">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
-                            <property name="top_attach">0</property>
-                            <property name="bottom_attach">1</property>
-                            <property name="x_padding">0</property>
-                            <property name="y_padding">0</property>
-                            <property name="x_options">expand|fill</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkEntry" id="terminal_custom_exec_entry">
-                            <property name="can_focus">yes</property>
-                            <property name="editable">yes</property>
-                            <property name="text" translatable="yes"></property>
-                            <property name="max-length">0</property>
-                            <property name="visibility">yes</property>
-                            <property name="visible">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="x_padding">0</property>
-                            <property name="y_padding">0</property>
-                            <property name="x_options">expand|fill</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkLabel" id="label13">
-                            <property name="label" translatable="yes">Co_mmand:</property>
-                            <property name="justify">GTK_JUSTIFY_CENTER</property>
-                            <property name="wrap">no</property>
-                            <property name="xalign">0</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="mnemonic_widget">terminal_custom_command_entry</property>
-                            <property name="visible">yes</property>
-                            <property name="use_underline">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="right_attach">1</property>
-                            <property name="top_attach">0</property>
-                            <property name="bottom_attach">1</property>
-                            <property name="x_padding">0</property>
-                            <property name="y_padding">0</property>
-                            <property name="x_options">expand|fill</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkLabel" id="label14">
-                            <property name="label" translatable="yes">E_xec Flag:</property>
-                            <property name="justify">GTK_JUSTIFY_CENTER</property>
-                            <property name="wrap">no</property>
-                            <property name="xalign">0</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="mnemonic_widget">terminal_custom_exec_entry</property>
-                            <property name="visible">yes</property>
-                            <property name="use_underline">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="right_attach">1</property>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="x_padding">0</property>
-                            <property name="y_padding">0</property>
-                            <property name="x_options">expand|fill</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_padding">0</property>
-                        <property name="y_padding">0</property>
-                        <property name="x_options">fill</property>
-                        <property name="y_options">fill</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-
-            <child>
-              <widget class="GtkLabel" id="label4">
-                <property name="label" translatable="yes">Te_rminal</property>
-                <property name="justify">GTK_JUSTIFY_CENTER</property>
-                <property name="wrap">no</property>
-                <property name="xalign">0.5</property>
-                <property name="yalign">0.5</property>
-                <property name="xpad">0</property>
-                <property name="ypad">0</property>
-                <property name="visible">yes</property>
-                <property name="use_underline">yes</property>
-              </widget>
-              <packing>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-
-            <child>
-              <widget class="GtkFrame" id="frame2">
-                <property name="border_width">4</property>
-                <property name="label" translatable="yes">Default Window Manager</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow">GTK_SHADOW_ETCHED_IN</property>
-                <property name="visible">yes</property>
-
-                <child>
-                  <widget class="GtkVBox" id="vbox2">
-                    <property name="border_width">4</property>
-                    <property name="homogeneous">no</property>
-                    <property name="spacing">8</property>
-                    <property name="visible">yes</property>
-
-                    <child>
-                      <widget class="GtkHBox" id="hbox2">
-                        <property name="homogeneous">no</property>
-                        <property name="spacing">4</property>
-                        <property name="visible">yes</property>
-
-			<child>
-			  <widget class="GtkFrame" id="frame2">
-			    <property name="shadow">GTK_SHADOW_IN</property>
-			    <property name="visible">yes</property>
-			    <child>
-			      <widget class="GtkScrolledWindow" id="wm_swindow">
-				<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-				<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-				<property name="visible">yes</property>
-				
-				<child>
-				  <widget class="GtkTreeView" id="wm_tree_view">
-				    <property name="visible">yes</property>
-				  </widget>
-				</child>
-				
-				<child internal-child="hscrollbar">
-				  <widget class="GtkHScrollbar" id="convertwidget13">
-				    <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
-				    <property name="visible">yes</property>
-                              </widget>
-				</child>
-				
-				<child internal-child="vscrollbar">
-				  <widget class="GtkVScrollbar" id="convertwidget14">
-				    <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
-				    <property name="visible">yes</property>
-				  </widget>
-				</child>
-			      </widget>
-			    </child>
-			  </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">yes</property>
-                            <property name="fill">yes</property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <widget class="GtkVBox" id="vbox3">
-                            <property name="homogeneous">no</property>
-                            <property name="spacing">4</property>
-                            <property name="visible">yes</property>
-
-                            <child>
-                              <widget class="GtkButton" id="wm_add_button">
-                                <property name="can_focus">yes</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="visible">yes</property>
-
-                                <child>
-                                  <widget class="GtkLabel" id="label8">
-                                    <property name="label" translatable="yes">_Add...</property>
-                                    <property name="justify">GTK_JUSTIFY_CENTER</property>
-                                    <property name="wrap">no</property>
-                                    <property name="xalign">0</property>
-                                    <property name="yalign">0.5</property>
-                                    <property name="xpad">0</property>
-                                    <property name="ypad">0</property>
-                                    <property name="visible">yes</property>
-                                    <property name="use_underline">yes</property>
-                                  </widget>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">no</property>
-                                <property name="fill">no</property>
-                              </packing>
-                            </child>
-
-                            <child>
-                              <widget class="GtkButton" id="wm_edit_button">
-                                <property name="can_focus">yes</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="visible">yes</property>
-
-                                <child>
-                                  <widget class="GtkLabel" id="label9">
-                                    <property name="label" translatable="yes">_Edit...</property>
-                                    <property name="justify">GTK_JUSTIFY_CENTER</property>
-                                    <property name="wrap">no</property>
-                                    <property name="xalign">0</property>
-                                    <property name="yalign">0.5</property>
-                                    <property name="xpad">0</property>
-                                    <property name="ypad">0</property>
-                                    <property name="visible">yes</property>
-                                    <property name="use_underline">yes</property>
-                                  </widget>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">no</property>
-                                <property name="fill">no</property>
-                              </packing>
-                            </child>
-
-                            <child>
-                              <widget class="GtkButton" id="wm_delete_button">
-                                <property name="can_focus">yes</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="visible">yes</property>
-
-                                <child>
-                                  <widget class="GtkLabel" id="label10">
-                                    <property name="label" translatable="yes">_Delete</property>
-                                    <property name="justify">GTK_JUSTIFY_CENTER</property>
-                                    <property name="wrap">no</property>
-                                    <property name="xalign">0</property>
-                                    <property name="yalign">0.5</property>
-                                    <property name="xpad">0</property>
-                                    <property name="ypad">0</property>
-                                    <property name="visible">yes</property>
-                                    <property name="use_underline">yes</property>
-                                  </widget>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">no</property>
-                                <property name="fill">no</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">no</property>
-                            <property name="fill">yes</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="padding">0</property>
-                        <property name="expand">yes</property>
-                        <property name="fill">yes</property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkHSeparator" id="hseparator1">
-                        <property name="visible">yes</property>
-                      </widget>
-                      <packing>
-                        <property name="padding">0</property>
-                        <property name="expand">no</property>
-                        <property name="fill">no</property>
-                      </packing>
-                    </child>
-
-                    <child>
-                      <widget class="GtkHBox" id="hbox3">
-                        <property name="homogeneous">no</property>
-                        <property name="spacing">4</property>
-                        <property name="visible">yes</property>
-
-                        <child>
-                          <widget class="GtkLabel" id="label7">
-                            <property name="label" translatable="yes">Select the window manager you want.  You will need to hit apply, wave the magic wand, and do a magic dance for it to work.</property>
-                            <property name="justify">GTK_JUSTIFY_LEFT</property>
-                            <property name="wrap">yes</property>
-                            <property name="xalign">0</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="visible">yes</property>
-                          </widget>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">no</property>
-                            <property name="fill">no</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="padding">0</property>
-                        <property name="expand">no</property>
-                        <property name="fill">yes</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-
-            <child>
-              <widget class="GtkLabel" id="label6">
-                <property name="label" translatable="yes">_Window Manager</property>
-                <property name="justify">GTK_JUSTIFY_CENTER</property>
-                <property name="wrap">no</property>
-                <property name="xalign">0.5</property>
-                <property name="yalign">0.5</property>
-                <property name="xpad">0</property>
-                <property name="ypad">0</property>
-                <property name="visible">yes</property>
-                <property name="use_underline">yes</property>
-              </widget>
-              <packing>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="padding">0</property>
-            <property name="expand">yes</property>
-            <property name="fill">yes</property>
-          </packing>
-        </child>
-      </widget>
-      <packing>
-        <property name="padding">4</property>
-        <property name="expand">yes</property>
-        <property name="fill">yes</property>
-      </packing>
-    </child>
-  </widget>
+
+<widget class="GtkDialog" id="default_applications_dialog">
+  <property name="title" translatable="yes">Preferred Applications</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="has_separator">False</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox1">
+      <property name="border_width">2</property>
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">8</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area1">
+	  <property name="border_width">5</property>
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+	  <property name="spacing">10</property>
+
+	  <child>
+	    <widget class="GtkButton" id="button5">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-close</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="response_id">2</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkNotebook" id="notebook">
+	  <property name="visible">True</property>
+	  <property name="can_focus">True</property>
+	  <property name="show_tabs">True</property>
+	  <property name="show_border">True</property>
+	  <property name="tab_pos">GTK_POS_TOP</property>
+	  <property name="scrollable">False</property>
+	  <property name="tab_hborder">2</property>
+	  <property name="tab_vborder">2</property>
+	  <property name="enable_popup">False</property>
+
+	  <child>
+	    <widget class="GtkFrame" id="frame3">
+	      <property name="border_width">4</property>
+	      <property name="visible">True</property>
+	      <property name="label_xalign">0</property>
+	      <property name="label_yalign">0.5</property>
+	      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+
+	      <child>
+		<widget class="GtkTable" id="table2">
+		  <property name="border_width">4</property>
+		  <property name="visible">True</property>
+		  <property name="n_rows">2</property>
+		  <property name="n_columns">2</property>
+		  <property name="homogeneous">False</property>
+		  <property name="row_spacing">16</property>
+		  <property name="column_spacing">4</property>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="web_select_radio">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Select a Web Browser:</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCombo" id="web_select_combo">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="value_in_list">False</property>
+		      <property name="allow_empty">True</property>
+		      <property name="case_sensitive">False</property>
+		      <property name="enable_arrow_keys">True</property>
+		      <property name="enable_arrows_always">False</property>
+
+		      <child internal-child="entry">
+			<widget class="GtkEntry" id="web_select_combo_entry">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">False</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+		      </child>
+
+		      <child internal-child="list">
+			<widget class="GtkList" id="convertwidget4">
+			  <property name="visible">True</property>
+			  <property name="selection_mode">GTK_SELECTION_BROWSE</property>
+
+			  <child>
+			    <widget class="GtkListItem" id="convertwidget5">
+			      <property name="visible">True</property>
+
+			      <child>
+				<widget class="GtkLabel" id="convertwidget6">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes"></property>
+				  <property name="use_underline">False</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkVBox" id="web_custom_vbox">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">4</property>
+
+		      <child>
+			<widget class="GtkHBox" id="hbox4">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">4</property>
+
+			  <child>
+			    <widget class="GtkLabel" id="label11">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Co_mmand:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">web_custom_command_entry</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkEntry" id="web_custom_command_entry">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="editable">True</property>
+			      <property name="visibility">True</property>
+			      <property name="max_length">0</property>
+			      <property name="text" translatable="yes"></property>
+			      <property name="has_frame">True</property>
+			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="activates_default">False</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkCheckButton" id="web_custom_terminal_toggle">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Start in T_erminal</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkCheckButton" id="web_custom_remote_toggle">
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Understands _Netscape Remote Control</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment2">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">0</property>
+
+		      <child>
+			<widget class="GtkRadioButton" id="web_custom_radio">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">C_ustom Web Browser:</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			  <property name="group">web_select_radio</property>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label6">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Default Web Browser</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="type">label_item</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label2">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Web Browser</property>
+	      <property name="use_underline">True</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_CENTER</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkFrame" id="frame1">
+	      <property name="border_width">4</property>
+	      <property name="visible">True</property>
+	      <property name="label_xalign">0</property>
+	      <property name="label_yalign">0.5</property>
+	      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+
+	      <child>
+		<widget class="GtkTable" id="table1">
+		  <property name="border_width">4</property>
+		  <property name="visible">True</property>
+		  <property name="n_rows">3</property>
+		  <property name="n_columns">2</property>
+		  <property name="homogeneous">False</property>
+		  <property name="row_spacing">16</property>
+		  <property name="column_spacing">4</property>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="text_select_radio">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Select an Editor:</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCombo" id="text_select_combo">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="value_in_list">False</property>
+		      <property name="allow_empty">True</property>
+		      <property name="case_sensitive">False</property>
+		      <property name="enable_arrow_keys">True</property>
+		      <property name="enable_arrows_always">False</property>
+
+		      <child internal-child="entry">
+			<widget class="GtkEntry" id="text_select_combo_entry">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">False</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+		      </child>
+
+		      <child internal-child="list">
+			<widget class="GtkList" id="convertwidget1">
+			  <property name="visible">True</property>
+			  <property name="selection_mode">GTK_SELECTION_BROWSE</property>
+
+			  <child>
+			    <widget class="GtkListItem" id="convertwidget2">
+			      <property name="visible">True</property>
+
+			      <child>
+				<widget class="GtkLabel" id="convertwidget3">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes"></property>
+				  <property name="use_underline">False</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment1">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">0</property>
+
+		      <child>
+			<widget class="GtkRadioButton" id="text_custom_radio">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">C_ustom Editor</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			  <property name="group">text_select_radio</property>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkHBox" id="text_custom_hbox">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">8</property>
+
+		      <child>
+			<widget class="GtkButton" id="text_custom_properties">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">_Properties...</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCheckButton" id="text_default_viewer_toggle">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Use this _editor to open text files in the file manager</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">2</property>
+		      <property name="bottom_attach">3</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label1">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Default Text Editor</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="type">label_item</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label1">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Text Editor</property>
+	      <property name="use_underline">True</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_CENTER</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkFrame" id="help_frame">
+	      <property name="border_width">4</property>
+	      <property name="label_xalign">0</property>
+	      <property name="label_yalign">0.5</property>
+	      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+
+	      <child>
+		<widget class="GtkTable" id="table3">
+		  <property name="border_width">4</property>
+		  <property name="visible">True</property>
+		  <property name="n_rows">2</property>
+		  <property name="n_columns">2</property>
+		  <property name="homogeneous">False</property>
+		  <property name="row_spacing">16</property>
+		  <property name="column_spacing">4</property>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="help_select_radio">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Select a Help Browser:</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCombo" id="help_select_combo">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="value_in_list">False</property>
+		      <property name="allow_empty">True</property>
+		      <property name="case_sensitive">False</property>
+		      <property name="enable_arrow_keys">True</property>
+		      <property name="enable_arrows_always">False</property>
+
+		      <child internal-child="entry">
+			<widget class="GtkEntry" id="help_select_combo_entry">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">False</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+		      </child>
+
+		      <child internal-child="list">
+			<widget class="GtkList" id="convertwidget7">
+			  <property name="visible">True</property>
+			  <property name="selection_mode">GTK_SELECTION_BROWSE</property>
+
+			  <child>
+			    <widget class="GtkListItem" id="convertwidget8">
+			      <property name="visible">True</property>
+
+			      <child>
+				<widget class="GtkLabel" id="convertwidget9">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes"></property>
+				  <property name="use_underline">False</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkVBox" id="help_custom_vbox">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">4</property>
+
+		      <child>
+			<widget class="GtkHBox" id="hbox5">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">4</property>
+
+			  <child>
+			    <widget class="GtkLabel" id="label12">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Co_mmand:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">help_custom_command_entry</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkEntry" id="help_custom_command_entry">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="editable">True</property>
+			      <property name="visibility">True</property>
+			      <property name="max_length">0</property>
+			      <property name="text" translatable="yes"></property>
+			      <property name="has_frame">True</property>
+			      <property name="invisible_char" translatable="yes">*</property>
+			      <property name="activates_default">False</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkCheckButton" id="help_custom_terminal_toggle">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Start in T_erminal</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkCheckButton" id="help_custom_url_toggle">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Acce_pts URLs</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment3">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">0</property>
+
+		      <child>
+			<widget class="GtkRadioButton" id="help_custom_radio">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">C_ustom Help Browser:</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			  <property name="group">help_select_radio</property>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label12">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Default Help Browser</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="type">label_item</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label3">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Help Browser</property>
+	      <property name="use_underline">True</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_CENTER</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkFrame" id="frame5">
+	      <property name="border_width">4</property>
+	      <property name="visible">True</property>
+	      <property name="label_xalign">0</property>
+	      <property name="label_yalign">0.5</property>
+	      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+
+	      <child>
+		<widget class="GtkTable" id="table4">
+		  <property name="border_width">4</property>
+		  <property name="visible">True</property>
+		  <property name="n_rows">2</property>
+		  <property name="n_columns">2</property>
+		  <property name="homogeneous">False</property>
+		  <property name="row_spacing">16</property>
+		  <property name="column_spacing">4</property>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="terminal_select_radio">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Select a Terminal:</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCombo" id="terminal_select_combo">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="value_in_list">False</property>
+		      <property name="allow_empty">True</property>
+		      <property name="case_sensitive">False</property>
+		      <property name="enable_arrow_keys">True</property>
+		      <property name="enable_arrows_always">False</property>
+
+		      <child internal-child="entry">
+			<widget class="GtkEntry" id="terminal_select_combo_entry">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">False</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+		      </child>
+
+		      <child internal-child="list">
+			<widget class="GtkList" id="convertwidget10">
+			  <property name="visible">True</property>
+			  <property name="selection_mode">GTK_SELECTION_BROWSE</property>
+
+			  <child>
+			    <widget class="GtkListItem" id="convertwidget11">
+			      <property name="visible">True</property>
+
+			      <child>
+				<widget class="GtkLabel" id="convertwidget12">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes"></property>
+				  <property name="use_underline">False</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment4">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">0</property>
+
+		      <child>
+			<widget class="GtkRadioButton" id="terminal_custom_radio">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">C_ustom Terminal:</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			  <property name="group">terminal_select_radio</property>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkTable" id="terminal_custom_table">
+		      <property name="visible">True</property>
+		      <property name="sensitive">False</property>
+		      <property name="n_rows">2</property>
+		      <property name="n_columns">2</property>
+		      <property name="homogeneous">False</property>
+		      <property name="row_spacing">4</property>
+		      <property name="column_spacing">4</property>
+
+		      <child>
+			<widget class="GtkEntry" id="terminal_custom_command_entry">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">True</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkEntry" id="terminal_custom_exec_entry">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">True</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label13">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Co_mmand:</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_CENTER</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="mnemonic_widget">terminal_custom_command_entry</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label14">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">E_xec Flag:</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_CENTER</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="mnemonic_widget">terminal_custom_exec_entry</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label13">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Default Terminal</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="type">label_item</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label4">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Terminal</property>
+	      <property name="use_underline">True</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_CENTER</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkFrame" id="wm_frame">
+	      <property name="border_width">4</property>
+	      <property name="label_xalign">0</property>
+	      <property name="label_yalign">0.5</property>
+	      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox2">
+		  <property name="border_width">4</property>
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">8</property>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox2">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">4</property>
+
+		      <child>
+			<widget class="GtkScrolledWindow" id="scrolledwindow1">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+			  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+			  <property name="shadow_type">GTK_SHADOW_NONE</property>
+			  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+			  <child>
+			    <widget class="GtkTreeView" id="treeview1">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="headers_visible">True</property>
+			      <property name="rules_hint">False</property>
+			      <property name="reorderable">False</property>
+			      <property name="enable_search">True</property>
+			    </widget>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox3">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">4</property>
+
+			  <child>
+			    <widget class="GtkButton" id="wm_add_button">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Add...</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkButton" id="wm_edit_button">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Edit...</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkButton" id="wm_delete_button">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Delete</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkHSeparator" id="hseparator1">
+		      <property name="visible">True</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox3">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">4</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label7">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Select the window manager you want.  You will need to hit apply, wave the magic wand, and do a magic dance for it to work.</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">True</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label15">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Default Window Manager</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="type">label_item</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label6">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Window Manager</property>
+	      <property name="use_underline">True</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_CENTER</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="custom_editor_dialog">
+  <property name="title" translatable="yes">Custom Editor Properties</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="has_separator">False</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox2">
+      <property name="border_width">2</property>
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area2">
+	  <property name="border_width">5</property>
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+	  <property name="spacing">10</property>
+
+	  <child>
+	    <widget class="GtkButton" id="button8">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="response_id">-6</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="button9">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="has_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="response_id">-5</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkTable" id="table5">
+	  <property name="border_width">16</property>
+	  <property name="visible">True</property>
+	  <property name="n_rows">5</property>
+	  <property name="n_columns">2</property>
+	  <property name="homogeneous">False</property>
+	  <property name="row_spacing">6</property>
+	  <property name="column_spacing">6</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="label16">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">_Name:</property>
+	      <property name="use_underline">True</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="mnemonic_widget">text_custom_name_entry</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label5">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Co_mmand:</property>
+	      <property name="use_underline">True</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="mnemonic_widget">text_custom_command_entry</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkCheckButton" id="text_custom_terminal_toggle">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">This application needs to be run in a _shell</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="active">False</property>
+	      <property name="inconsistent">False</property>
+	      <property name="draw_indicator">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">4</property>
+	      <property name="bottom_attach">5</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkCheckButton" id="text_custom_uri_toggle">
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">This application can open _URIs</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="active">False</property>
+	      <property name="inconsistent">False</property>
+	      <property name="draw_indicator">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkCheckButton" id="text_custom_multi_toggle">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">This application can open _multiple files</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="active">False</property>
+	      <property name="inconsistent">False</property>
+	      <property name="draw_indicator">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkEntry" id="text_custom_command_entry">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="editable">True</property>
+	      <property name="visibility">True</property>
+	      <property name="max_length">0</property>
+	      <property name="text" translatable="yes"></property>
+	      <property name="has_frame">True</property>
+	      <property name="invisible_char" translatable="yes">*</property>
+	      <property name="activates_default">False</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkEntry" id="text_custom_name_entry">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="editable">True</property>
+	      <property name="visibility">True</property>
+	      <property name="max_length">0</property>
+	      <property name="text" translatable="yes"></property>
+	      <property name="has_frame">True</property>
+	      <property name="invisible_char" translatable="yes">*</property>
+	      <property name="activates_default">False</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>
Index: gnome-control-center/gnome-settings-daemon/Makefile.am
===================================================================
RCS file: /cvs/gnome/gnome-control-center/gnome-settings-daemon/Makefile.am,v
retrieving revision 1.18
diff -u -r1.18 Makefile.am
--- gnome-control-center/gnome-settings-daemon/Makefile.am	30 Apr 2002 09:45:05 -0000	1.18
+++ gnome-control-center/gnome-settings-daemon/Makefile.am	16 May 2002 19:39:15 -0000
@@ -26,6 +26,8 @@
 	gnome-settings-accessibility-keyboard.c	\
 	gnome-settings-screensaver.h	\
 	gnome-settings-screensaver.c	\
+	gnome-settings-default-editor.c	\
+	gnome-settings-default-editor.h	\
 	xsettings-common.c		\
 	xsettings-manager.c		\
 	xsettings-common.h		\
Index: gnome-control-center/gnome-settings-daemon/gnome-settings-daemon.c
===================================================================
RCS file: /cvs/gnome/gnome-control-center/gnome-settings-daemon/gnome-settings-daemon.c,v
retrieving revision 1.22
diff -u -r1.22 gnome-settings-daemon.c
--- gnome-control-center/gnome-settings-daemon/gnome-settings-daemon.c	14 May 2002 18:52:34 -0000	1.22
+++ gnome-control-center/gnome-settings-daemon/gnome-settings-daemon.c	16 May 2002 19:39:15 -0000
@@ -44,6 +44,7 @@
 #include "gnome-settings-wm.h"
 #include "gnome-settings-accessibility-keyboard.h"
 #include "gnome-settings-screensaver.h"
+#include "gnome-settings-default-editor.h"
 
 #include "GNOME_SettingsDaemon.h"
 
@@ -237,6 +238,7 @@
   gnome_settings_wm_init (client);
   gnome_settings_accessibility_keyboard_init (client);
   gnome_settings_screensaver_init (client);
+  gnome_settings_default_editor_init (client);
 
   for (list = directories; list; list = list->next)
     {
@@ -274,6 +276,7 @@
   gnome_settings_wm_load (client);
   gnome_settings_accessibility_keyboard_load (client);
   gnome_settings_screensaver_load (client);
-  
+  gnome_settings_default_editor_load (client);
+
   return G_OBJECT (daemon);
 }
Index: gnome-control-center/gnome-settings-daemon/gnome-settings-default-editor.c
===================================================================
RCS file: gnome-control-center/gnome-settings-daemon/gnome-settings-default-editor.c
diff -N gnome-control-center/gnome-settings-daemon/gnome-settings-default-editor.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnome-control-center/gnome-settings-daemon/gnome-settings-default-editor.c	16 May 2002 19:39:15 -0000
@@ -0,0 +1,125 @@
+/*
+ * gnome-settings-default-editor.h: sync default editor changes to mime database
+ *
+ * Copyright 2002 Sun Microsystems, Inc.
+ *
+ * Author: jacob berkman  <jacob@ximian.com>
+ *
+ */
+
+/*
+ * WARNING: This is a hack.
+ *
+ * All it does is keep the "text/*" and "text/plain" mime type
+ * handlers in sync with each other.  The reason we do this is because
+ * there is no UI for editing the text/* handler, and this is probably
+ * what the user actually wants to do.
+ */
+
+#include <config.h>
+
+#include "gnome-settings-daemon.h"
+#include "gnome-settings-default-editor.h"
+
+#include <libgnomevfs/gnome-vfs-mime-handlers.h>
+#include <libgnomevfs/gnome-vfs-mime-monitor.h>
+
+#include <string.h>
+
+/* #define DE_DEBUG */
+
+#define SYNC_CHANGES_KEY "/apps/gnome_settings_daemon/default_editor/sync_text_types"
+
+static gboolean sync_changes;
+
+#if DE_DEBUG
+static void
+print_mime_app (const char *mime_type)
+{
+	GnomeVFSMimeApplication *mime_app;
+
+	mime_app = gnome_vfs_mime_get_default_application (mime_type);
+
+	g_message ("Default info for %s (%p):\n"
+		   "\t        id: %s\n"
+		   "\t      name: %s\n"
+		   "\t   command: %s\n"
+		   "\tneeds term: %s\n",
+		   mime_type, mime_app,
+		   mime_app->id, 
+		   mime_app->name, 
+		   mime_app->command,
+		   mime_app->requires_terminal ? "Yes" : "No");
+}
+
+static void
+print_state (void)
+{
+	if (sync_changes)
+		g_message ("Synching changes.");
+	else
+		g_message ("Not synching changes.");
+
+	print_mime_app ("text/*");
+	print_mime_app ("text/plain");
+}
+#define PRINT_STATE print_state()
+#else
+#define PRINT_STATE
+#endif
+
+static void
+sync_changes_cb (GConfEntry *entry)
+{
+	GConfValue *value = gconf_entry_get_value (entry);
+	sync_changes = gconf_value_get_bool (value);
+
+	PRINT_STATE;
+}
+
+static void
+vfs_change_cb (GnomeVFSMIMEMonitor *monitor, GConfClient *client)
+{
+	GnomeVFSMimeApplication *star_app, *plain_app;
+	GnomeVFSMimeActionType action;
+
+	PRINT_STATE;
+
+	if (!sync_changes_cb)
+		return;
+
+	
+	star_app  = gnome_vfs_mime_get_default_application ("text/*");
+	plain_app = gnome_vfs_mime_get_default_application ("text/plain");
+
+	if (!strcmp (star_app->id, plain_app->id))
+		return;
+
+#if DE_DEBUG
+	g_message ("Synching text/plain to text/*...");
+#endif
+
+	action = gnome_vfs_mime_get_default_action_type ("text/plain");
+
+	gnome_vfs_mime_set_default_application ("text/*", plain_app->id);
+	gnome_vfs_mime_set_default_action_type ("text/*", action);
+
+	PRINT_STATE;
+}
+
+void
+gnome_settings_default_editor_init (GConfClient *client)
+{
+	sync_changes = gconf_client_get_bool (client, SYNC_CHANGES_KEY, NULL);
+
+	gnome_settings_daemon_register_callback (SYNC_CHANGES_KEY, sync_changes_cb);
+
+	g_signal_connect (gnome_vfs_mime_monitor_get (), "data_changed",
+			  G_CALLBACK (vfs_change_cb), client);			  
+}
+
+void
+gnome_settings_default_editor_load (GConfClient *client)
+{
+	vfs_change_cb (NULL, client);
+}
Index: gnome-control-center/gnome-settings-daemon/gnome-settings-default-editor.h
===================================================================
RCS file: gnome-control-center/gnome-settings-daemon/gnome-settings-default-editor.h
diff -N gnome-control-center/gnome-settings-daemon/gnome-settings-default-editor.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnome-control-center/gnome-settings-daemon/gnome-settings-default-editor.h	16 May 2002 19:39:15 -0000
@@ -0,0 +1,18 @@
+/*
+ * gnome-settings-default-editor.h: sync default editor changes to mime database
+ *
+ * Copyright 2002 Sun Microsystems, Inc.
+ *
+ * Author: jacob berkman  <jacob@ximian.com>
+ *
+ */
+
+#ifndef GNOME_SETTINGS_DEFAULT_EDITOR_H
+#define GNOME_SETTINGS_DEFAULT_EDITOR_H
+
+#include <gconf/gconf-client.h>
+
+void gnome_settings_default_editor_init (GConfClient *client);
+void gnome_settings_default_editor_load (GConfClient *client);
+
+#endif /* GNOME_SETTINGS_DEFAULT_EDITOR_H */
