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