Le vendredi 22 janvier 2010 à 00:23 +0100, Christoph Wickert a écrit :
> > the real way we should go is to support plymouth
> > lxdm now plymouth, here is my way to do it
> > 
> > first, modify the /etc/X11/prefdm to support lxdm
> > elif [ "$DISPLAYMANAGER" = XDM ]; then
> >                 preferred=/usr/bin/xdm
> > elif [ "$DISPLAYMANAGER" = LXDM ]; then
> >                 preferred=/usr/bin/lxdm
> >                 quit_arg="--retain-splash"
> 
> We requested that a while back for Xfce, but it was rejected. See
> https://bugzilla.redhat.com/show_bug.cgi?id=142260#c6 for more info.
> For now, the solution is to add
> DISPLAYMANAGER=/usr/bin/lxdm
> to /etc/sysconfig/desktop

I'm not expert on plymouth, but on Ubuntu I enabled the plymouth support
with the patch included. It's working, still not perfect, but I don't
know where it could be improved (in plymouth or lxdm). The plymouth
implementation on Ubuntu is still young.

Regards,
Julien Lavergne

Index: lxdm/src/lxdm.c
===================================================================
--- lxdm.orig/src/lxdm.c	2010-01-28 00:59:06.000000000 +0100
+++ lxdm/src/lxdm.c	2010-01-28 00:59:24.000000000 +0100
@@ -83,6 +83,26 @@
 static char mcookie[33];
 static int old_tty=1,tty = 7;
 
+/* Plymouth support from GIT integration branch Ray Strode <[email protected]> */
+static gboolean
+plymouth_is_running (void)
+{
+        int      status;
+        gboolean res;
+        GError  *error;
+
+        error = NULL;
+        res = g_spawn_command_line_sync ("/bin/plymouth --ping",
+                                         NULL, NULL, &status, &error);
+        if (! res) {
+                g_debug ("Could not ping plymouth: %s", error->message);
+                g_error_free (error);
+                return FALSE;
+        }
+
+        return WIFEXITED (status) && WEXITSTATUS (status) == 0;
+}
+
 static int get_active_vt(void)
 {
     int console_fd;
@@ -123,7 +143,9 @@
     int len;
     int gotvtarg = 0;
     int nr = 0;
+    gboolean ply = FALSE;
 
+    ply = plymouth_is_running ();
     old_tty=get_active_vt();
     if( !s ) s = g_strdup("/usr/bin/X");
     g_shell_parse_argv(s, &arc, &arg, 0);
@@ -141,11 +163,10 @@
     if( !gotvtarg )
     {
         /* support plymouth */
-        nr = g_file_test("/var/spool/gdm/force-display-on-active-vt", G_FILE_TEST_EXISTS);
-        if( nr || g_key_file_get_integer(config, "server", "active_vt", 0) )
-            /* use the active vt */
+        if( ply)
+        {
             tty = old_tty;
-        if( nr ) unlink("/var/spool/gdm/force-display-on-active-vt");
+        }
     }
     arg = g_renew(char *, arg, len + 10);
     if( !gotvtarg )
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Lxde-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lxde-list

Reply via email to