diff -Naur a/data/apps_gnome_settings_daemon_screensaver.schemas.in b/data/apps_gnome_settings_daemon_screensaver.schemas.in
--- a/data/apps_gnome_settings_daemon_screensaver.schemas.in 2008-12-22 12:56:29.000000000 +0100
+++ b/data/apps_gnome_settings_daemon_screensaver.schemas.in 2009-04-27 01:41:32.032742681 +0200
@@ -12,6 +12,17 @@
Set to True to run the screensaver at login.
+
+ /schemas/apps/gnome_settings_daemon/screensaver/start_screensaver_timeout
+ /apps/gnome_settings_daemon/screensaver/start_screensaver_timeout
+ gnome
+ int
+ 30
+
+ Timeout to start screensaver
+ Set the timeout to start screensaver at login.
+
+
/schemas/apps/gnome_settings_daemon/screensaver/show_startup_errors
/apps/gnome_settings_daemon/screensaver/show_startup_errors
diff -Naur a/plugins/screensaver/gsd-screensaver-manager.c b/plugins/screensaver/gsd-screensaver-manager.c
--- a/plugins/screensaver/gsd-screensaver-manager.c 2008-12-28 20:52:31.000000000 +0100
+++ b/plugins/screensaver/gsd-screensaver-manager.c 2009-04-27 01:39:59.065745767 +0200
@@ -41,6 +41,7 @@
#include "gsd-screensaver-manager.h"
#define START_SCREENSAVER_KEY "/apps/gnome_settings_daemon/screensaver/start_screensaver"
+#define START_SCREENSAVER_TIMEOUT_KEY "/apps/gnome_settings_daemon/screensaver/start_screensaver_timeout"
#define SHOW_STARTUP_ERRORS_KEY "/apps/gnome_settings_daemon/screensaver/show_startup_errors"
#define GSD_SCREENSAVER_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_SCREENSAVER_MANAGER, GsdScreensaverManagerPrivate))
@@ -176,14 +177,19 @@
gsd_screensaver_manager_start (GsdScreensaverManager *manager,
GError **error)
{
+ GConfClient *client;
+ gint timeout;
+
g_debug ("Starting screensaver manager");
gnome_settings_profile_start (NULL);
+ client = gconf_client_get_default ();
+ timeout = gconf_client_get_int (client, START_SCREENSAVER_TIMEOUT_KEY, NULL);
/*
* We'll start the screensaver after a delay so it doesn't
* compete with other processes while the session is starting
*/
- g_timeout_add_seconds (30, (GSourceFunc) start_screensaver_cb, manager);
+ g_timeout_add_seconds (timeout, (GSourceFunc) start_screensaver_cb, manager);
gnome_settings_profile_end (NULL);