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);