diff --git a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in index ec805d8a..cf0d6793 100644 --- a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in +++ b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in @@ -11,6 +11,11 @@ Activation of this plugin Whether this plugin would be activated by unity-settings-daemon or not + + false + Reset X DPMS values + Whether DPMS values will be adjusted by gnome-settings-daemon + 30 The brightness of the screen when idle diff --git a/plugins/power/gpm-common.c b/plugins/power/gpm-common.c index a7ca87fb..a56a7cdc 100644 --- a/plugins/power/gpm-common.c +++ b/plugins/power/gpm-common.c @@ -280,6 +280,18 @@ disable_builtin_screensaver (gpointer unused) return TRUE; } +gboolean +manage_dpms (void) +{ + GSettings *settings; + gboolean manage_dpms_defaults; + + settings = g_settings_new ("org.gnome.settings-daemon.plugins.power"); + manage_dpms_defaults = g_settings_get_boolean (settings, "manage-dpms-defaults"); + g_object_unref (settings); + return manage_dpms_defaults; +} + guint gsd_power_enable_screensaver_watchdog (void) { @@ -290,7 +302,7 @@ gsd_power_enable_screensaver_watchdog (void) * way. The defaults are now applied in Fedora 20 from * being "0" by default to being "600" by default */ gdk_x11_display_error_trap_push (gdk_display_get_default ()); - if (DPMSQueryExtension(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &dummy, &dummy)) + if (manage_dpms () && DPMSQueryExtension(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &dummy, &dummy)) DPMSSetTimeouts (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), 0, 0, 0); gdk_x11_display_error_trap_pop_ignored (gdk_display_get_default ()); id = g_timeout_add_seconds (XSCREENSAVER_WATCHDOG_TIMEOUT, diff --git a/plugins/power/gpm-common.h b/plugins/power/gpm-common.h index 88a8e00e..af106479 100644 --- a/plugins/power/gpm-common.h +++ b/plugins/power/gpm-common.h @@ -34,6 +34,7 @@ gchar *gpm_get_timestring (guint time); gboolean gsd_power_is_hardware_a_vm (void); guint gsd_power_enable_screensaver_watchdog (void); void reset_idletime (void); +gboolean manage_dpms (void); /* Backlight helpers */ diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c index c500fa38..445496ee 100644 --- a/plugins/power/gsd-power-manager.c +++ b/plugins/power/gsd-power-manager.c @@ -1033,6 +1033,9 @@ backlight_enable (GsdPowerManager *manager) gboolean ret; GError *error = NULL; + if (!(manage_dpms ())) + return; + iio_proxy_claim_light (manager, TRUE); ret = gnome_rr_screen_set_dpms_mode (manager->rr_screen, GNOME_RR_DPMS_ON, @@ -1052,6 +1055,9 @@ backlight_disable (GsdPowerManager *manager) gboolean ret; GError *error = NULL; + if (!(manage_dpms ())) + return; + iio_proxy_claim_light (manager, FALSE); ret = gnome_rr_screen_set_dpms_mode (manager->rr_screen, GNOME_RR_DPMS_OFF,