On 11/01/2011 02:09 PM, Tim Flink wrote:
* (746693) Can't login via gdm when `metacity` pkg is not installed (tflink, 17:45:22) * LINK:http://bugzilla.redhat.com/show_bug.cgi?id=746693 (tflink, 17:45:26)
I took a look at the GDM source and it is hard coded to call metacity. An easy, patchable[1] workaround is to create a call for xfwm4 (or whatever other window manager). At one time though, wasn't there generic support for window managers that was switch-able through /etc? Why is GDM hard coded like this?
[1] Crude patch is attached.
--- a/gdm-3.2.1/gui/simple-chooser/gdm-chooser-session.c 2011-10-18 21:07:00.000000000 -0500 +++ b/gdm-3.2.1/gui/simple-chooser/gdm-chooser-session.c 2011-11-01 13:00:10.468364266 -0500 @@ -55,6 +55,32 @@ static gpointer session_object = NULL; static gboolean +launch_xfce (GdmChooserSession *session) +{ + GError *error; + gboolean ret; + + g_debug ("GdmChooserSession: Launching xfce"); + + ret = FALSE; + + error = NULL; + g_spawn_command_line_async ("xfwm4", &error); + if (error != NULL) { + g_warning ("Error starting WM: %s", error->message); + g_error_free (error); + goto out; + } + + ret = TRUE; + + /* FIXME: should try to detect if it actually works */ + + out: + return ret; +} + +static gboolean launch_compiz (GdmChooserSession *session) { GError *error; @@ -115,9 +141,17 @@ static void start_window_manager (GdmChooserSession *session) { - if (! launch_metacity (session)) { - launch_compiz (session); + gboolean ret; + + ret = launch_metacity (session); + if (ret) { + return; + } + ret = launch_xfce (session); + if (ret) { + return; } + launch_compiz (session); } static gboolean
-- test mailing list test@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe: https://admin.fedoraproject.org/mailman/listinfo/test