[gnome-power-manager] Port to GSettings



commit 632c95b59e09cef742446ef752f2c1f24ffcd68d
Author: Richard Hughes <richard hughsie com>
Date:   Fri Jun 4 14:53:20 2010 +0100

    Port to GSettings

 configure.ac                                 |   27 +-
 data/.gitignore                              |    2 +-
 data/Makefile.am                             |   29 +-
 data/gnome-power-manager.schemas.in          |  741 --------------------------
 data/gpm-prefs.ui                            |   10 +-
 data/org.gnome.power-manager.gschema.migrate |   64 +++
 data/org.gnome.power-manager.gschema.xml     |  318 +++++++++++
 po/POTFILES.in                               |    2 +-
 policy/.gitignore                            |    8 -
 src/gpm-backlight.c                          |   77 ++--
 src/gpm-common.h                             |  157 +++---
 src/gpm-control.c                            |   29 +-
 src/gpm-engine.c                             |   50 +-
 src/gpm-manager.c                            |  126 ++---
 src/gpm-phone.c                              |    1 -
 src/gpm-prefs-core.c                         |  261 +++-------
 src/gpm-screensaver.c                        |    2 +-
 src/gpm-statistics.c                         |   42 +-
 src/gpm-tray-icon.c                          |   30 +-
 19 files changed, 699 insertions(+), 1277 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 31111e0..92a8de8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -103,14 +103,16 @@ AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE(GETTEXT_PACKAGE, "AC_PACKAGE_NAME", [foo])
 
 AM_GLIB_GNU_GETTEXT
+GLIB_GSETTINGS
 
 dnl ---------------------------------------------------------------------------
 dnl - Library dependencies
 dnl ---------------------------------------------------------------------------
 GLIB_REQUIRED=2.13.0
+GIO_REQUIRED=2.25.0
 GTK_REQUIRED=2.17.7
 GDK_REQUIRED=2.11.0
-GCONF_REQUIRED=2.10.0
+GCONF_REQUIRED=2.31.1
 GNOME_KEYRING_REQUIRED=0.6.0
 DBUS_REQUIRED=1.0
 DBUS_GLIB_REQUIRED=0.70
@@ -126,7 +128,7 @@ UPOWER_REQUIRED=0.9.1
 dnl ---------------------------------------------------------------------------
 dnl - Check library dependencies
 dnl ---------------------------------------------------------------------------
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0)
+PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 gio-2.0 >= $GIO_REQUIRED)
 
 PKG_CHECK_MODULES(CANBERRA, libcanberra-gtk >= $CANBERRA_REQUIRED)
 
@@ -162,9 +164,6 @@ PKG_CHECK_MODULES(UNIQUE, unique-1.0 >= $UNIQUE_REQUIRED)
 
 PKG_CHECK_MODULES(UPOWER, upower-glib >= $UPOWER_REQUIRED)
 
-AC_PATH_PROG(GCONFTOOL, gconftool-2)
-AM_GCONF_SOURCE_2
-
 dnl ---------------------------------------------------------------------------
 dnl - Check XF86XK_Keys
 dnl ---------------------------------------------------------------------------
@@ -215,21 +214,6 @@ fi
 AM_CONDITIONAL([HAVE_TESTS], [test $have_tests = yes])
 
 dnl ---------------------------------------------------------------------------
-dnl - Build gconf default button?
-dnl ---------------------------------------------------------------------------
-AC_ARG_ENABLE(gconf-defaults,
-              AS_HELP_STRING([--disable-gconf-defaults],
-                             [Allow setting gconf default settings]),
-              have_gconfdefaults=$enableval,have_gconfdefaults=yes)
-
-AC_MSG_CHECKING([whether to support gconf defaults])
-if test x$have_gconfdefaults = xyes ; then
-    AC_DEFINE(HAVE_GCONF_DEFAULTS, 1, [Define if have gconf defaults])
-fi
-AC_MSG_RESULT([$have_gconfdefaults])
-AM_CONDITIONAL([HAVE_GCONF_DEFAULTS], [test $have_gconfdefaults = yes])
-
-dnl ---------------------------------------------------------------------------
 dnl - Build applets
 dnl ---------------------------------------------------------------------------
 AC_ARG_ENABLE(applets,
@@ -346,7 +330,6 @@ data/icons/scalable/actions/Makefile
 data/icons/scalable/apps/Makefile
 data/icons/scalable/status/Makefile
 ])
-
 AC_OUTPUT
 
 dnl ==========================================================================
@@ -360,11 +343,9 @@ echo "
         cflags:                    ${CFLAGS}
         Building extra applets:    ${enable_applets}
         Self test support:         ${have_tests}
-        GConf default support:     ${have_gconfdefaults}
         Docbook support:           ${enable_docbook_docs}
         documentation dir:         $DOCDIR
         dbus-1 services dir:       $DBUS_SERVICES_DIR
-        gconf-schema dir:          $GCONF_SCHEMA_FILE_DIR
 "
 if [[ "${prefix}" != "/usr" ]] ; then
 	echo '
diff --git a/data/.gitignore b/data/.gitignore
index 1558039..0b257e7 100644
--- a/data/.gitignore
+++ b/data/.gitignore
@@ -7,4 +7,4 @@ gnome-power-preferences.desktop
 gnome-power-preferences.desktop.in
 gnome-power-statistics.desktop
 gnome-power-statistics.desktop.in
-
+*.valid
diff --git a/data/Makefile.am b/data/Makefile.am
index 99df812..8c4a5b7 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,9 +1,7 @@
 SUBDIRS = icons
 
- INTLTOOL_SCHEMAS_RULE@
-schemadir = $(sysconfdir)/gconf/schemas
-schema_in_files = gnome-power-manager.schemas.in
-schema_DATA = $(schema_in_files:.schemas.in=.schemas)
+migrationdir = $(datadir)/GConf/gsettings
+dist_migration_DATA = org.gnome.power-manager.gschema.migrate
 
 @INTLTOOL_DESKTOP_RULE@
 desktopdir = $(datadir)/applications
@@ -23,6 +21,9 @@ service_DATA     = $(service_in_files:.service.in=.service)
 $(service_DATA): $(service_in_files) Makefile
 	@sed -e "s|\ servicedir\@|$(bindir)|" $< > $@
 
+ GSETTINGS_RULES@
+gsettings_SCHEMAS = org.gnome.power-manager.gschema.xml
+
 pkgdata_DATA =						\
 	gpm-statistics.ui				\
 	gpm-feedback-widget.ui				\
@@ -30,25 +31,12 @@ pkgdata_DATA =						\
 	acme.ui
 
 EXTRA_DIST =						\
-	gnome-power-manager.schemas.in			\
-	$(schema_in_files)				\
-	$(desktop_in_files)				\
-	$(autostart_in_files)				\
+	$(gsettings_SCHEMAS)				\
 	$(service_in_files)				\
+	$(autostart_in_files)				\
+	$(desktop_in_files)				\
 	$(pkgdata_DATA)
 
-if GCONF_SCHEMAS_INSTALL
-install-data-local:
-	-GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
-	$(GCONFTOOL) --makefile-install-rule $(schema_DATA)
-endif
-
-if GCONF_SCHEMAS_INSTALL
-uninstall-local:
-	-GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
-	$(GCONFTOOL) --makefile-uninstall-rule $(schema_DATA)
-endif
-
 clean-local :
 	rm -f *~
 
@@ -56,5 +44,4 @@ DISTCLEANFILES =					\
 	gnome-power-manager.desktop			\
 	gnome-power-preferences.desktop			\
 	gnome-power-statistics.desktop			\
-	gnome-power-manager.schemas			\
 	gnome-power-manager.service
diff --git a/data/gpm-prefs.ui b/data/gpm-prefs.ui
index b4e3f18..e3c3071 100644
--- a/data/gpm-prefs.ui
+++ b/data/gpm-prefs.ui
@@ -17,10 +17,10 @@
     <property name="page_increment">5</property>
   </object>
   <object class="GtkAdjustment" id="adjustment3">
-    <property name="value">41</property>
-    <property name="upper">100</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">5</property>
+    <property name="value">0.5</property>
+    <property name="upper">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.050000000000000003</property>
   </object>
   <object class="GtkAdjustment" id="adjustment4">
     <property name="value">1</property>
@@ -271,7 +271,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="adjustment">adjustment3</property>
-                                    <property name="digits">0</property>
+                                    <property name="digits">2</property>
                                     <property name="value_pos">bottom</property>
                                   </object>
                                   <packing>
diff --git a/data/org.gnome.power-manager.gschema.migrate b/data/org.gnome.power-manager.gschema.migrate
new file mode 100644
index 0000000..670f789
--- /dev/null
+++ b/data/org.gnome.power-manager.gschema.migrate
@@ -0,0 +1,64 @@
+[org.gnome.power-manager]
+action-sleep-type-battery = /apps/gnome-power-manager/actions/sleep_type_battery
+action-critical-battery = /apps/gnome-power-manager/actions/critical_battery
+event-when-closed-battery = /apps/gnome-power-manager/actions/event_when_closed_battery
+action-sleep-type-ac = /apps/gnome-power-manager/actions/sleep_type_ac
+action-critical-ups = /apps/gnome-power-manager/actions/critical_ups
+action-low-ups = /apps/gnome-power-manager/actions/low_ups
+backlight-enable = /apps/gnome-power-manager/backlight/enable
+backlight-battery-reduce = /apps/gnome-power-manager/backlight/battery_reduce
+idle-brightness = /apps/gnome-power-manager/backlight/idle_brightness
+idle-dim-battery = /apps/gnome-power-manager/backlight/idle_dim_battery
+idle-dim-time = /apps/gnome-power-manager/backlight/idle_dim_time
+brightness-dim-battery = /apps/gnome-power-manager/backlight/brightness_dim_battery
+idle-dim-ac = /apps/gnome-power-manager/backlight/idle_dim_ac
+dpms-method-ac = /apps/gnome-power-manager/backlight/dpms_method_ac
+dpms-method-battery = /apps/gnome-power-manager/backlight/dpms_method_battery
+brightness-ac" type="d"> = /apps/gnome-power-manager/backlight/brightness_ac
+button-suspend = /apps/gnome-power-manager/buttons/suspend
+button-hibernate = /apps/gnome-power-manager/buttons/hibernate
+button-power = /apps/gnome-power-manager/buttons/power
+button-lid-battery = /apps/gnome-power-manager/buttons/lid_battery
+button-lid-ac = /apps/gnome-power-manager/buttons/lid_ac
+schema-version = /apps/gnome-power-manager/general/installed_schema
+use-profile-time = /apps/gnome-power-manager/general/use_profile_time
+use-time-for-policy = /apps/gnome-power-manager/general/use_time_for_policy
+check-type-cpu = /apps/gnome-power-manager/general/check_type_cpu
+network-sleep = /apps/gnome-power-manager/general/network_sleep
+lock-use-screensaver = /apps/gnome-power-manager/lock/use_screensaver_settings
+lock-blank-screen = /apps/gnome-power-manager/lock/blank_screen
+lock-suspend = /apps/gnome-power-manager/lock/suspend
+lock-hibernate = /apps/gnome-power-manager/lock/hibernate
+lock-keyring-suspend = /apps/gnome-power-manager/lock/gnome_keyring_suspend
+lock-keyring-hibernate = /apps/gnome-power-manager/lock/gnome_keyring_hibernate
+spindown-enable-ac = /apps/gnome-power-manager/disks/spindown_enable_ac
+spindown-enable-battery = /apps/gnome-power-manager/disks/spindown_enable_battery
+spindown-timeout-ac = /apps/gnome-power-manager/disks/spindown_timeout_ac
+spindown-timeout-battery = /apps/gnome-power-manager/disks/spindown_timeout_battery
+notify-perhaps-recall = /apps/gnome-power-manager/notify/perhaps_recall
+notify-low-capacity = /apps/gnome-power-manager/notify/low_capacity
+notify-discharging = /apps/gnome-power-manager/notify/discharging
+notify-fully-charged = /apps/gnome-power-manager/notify/fully_charged
+notify-sleep-failed = /apps/gnome-power-manager/notify/sleep_failed
+notify-sleep-failed-uri = /apps/gnome-power-manager/notify/sleep_failed_uri
+notify-low-power = /apps/gnome-power-manager/notify/low_power
+statistics-show-axis-labels = /apps/gnome-power-manager/statistics/show_axis_labels
+statistics-show-events = /apps/gnome-power-manager/statistics/show_events
+statistics-smooth-data = /apps/gnome-power-manager/statistics/smooth_data
+statistics-graph-type = /apps/gnome-power-manager/statistics/graph_type
+statistics-data-max-time = /apps/gnome-power-manager/statistics/data_max_time
+percentage-low = /apps/gnome-power-manager/thresholds/percentage_low
+percentage-critical = /apps/gnome-power-manager/thresholds/percentage_critical
+percentage-action = /apps/gnome-power-manager/thresholds/percentage_action
+time-low = /apps/gnome-power-manager/thresholds/time_low
+time-critical = /apps/gnome-power-manager/thresholds/time_critical
+time-action = /apps/gnome-power-manager/thresholds/time_action
+sleep-computer-battery = /apps/gnome-power-manager/timeout/sleep_computer_battery
+sleep-computer-ac = /apps/gnome-power-manager/timeout/sleep_computer_ac
+sleep-computer-ups = /apps/gnome-power-manager/timeout/sleep_computer_ups
+sleep-display-ac = /apps/gnome-power-manager/timeout/sleep_display_ac
+sleep-display-battery = /apps/gnome-power-manager/timeout/sleep_display_battery
+sleep-display-ups = /apps/gnome-power-manager/timeout/sleep_display_ups
+enable-sound = /apps/gnome-power-manager/ui/enable_sound
+show-actions = /apps/gnome-power-manager/ui/show_actions
+icon-policy = /apps/gnome-power-manager/ui/icon_policy
diff --git a/data/org.gnome.power-manager.gschema.xml b/data/org.gnome.power-manager.gschema.xml
new file mode 100644
index 0000000..f71ce5d
--- /dev/null
+++ b/data/org.gnome.power-manager.gschema.xml
@@ -0,0 +1,318 @@
+<schemalist>
+  <schema id="org.gnome.power-manager" path="/apps/gnome-power-manager/">
+    <key name="action-sleep-type-battery" type="s">
+      <default>'hibernate'</default>
+      <summary>Whether to hibernate, suspend or do nothing when inactive</summary>
+      <description>The type of sleeping that should be performed when the computer is inactive. Possible values are "hibernate", "suspend" and "nothing".</description>
+    </key>
+    <key name="action-critical-battery" type="s">
+      <default>'hibernate'</default>
+      <summary>Battery critical low action</summary>
+      <description>The action to take when the battery is critically low. Possible values are "hibernate", "suspend", "shutdown" and "nothing".</description>
+    </key>
+    <key name="event-when-closed-battery" type="b">
+      <default>true</default>
+      <summary>If the battery event should occur when the lid is shut and the power disconnected</summary>
+      <description>If the battery lid close event should occur (for example 'Suspend when lid closed on battery') when the lid is previously shut and the AC power disconnected at a later time.</description>
+    </key>
+    <key name="action-sleep-type-ac" type="s">
+      <default>'suspend'</default>
+      <summary>Whether to hibernate, suspend or do nothing when inactive</summary>
+      <description>The type of sleeping that should be performed when the computer is inactive. Possible values are "hibernate", "suspend" and "nothing".</description>
+    </key>
+    <key name="action-critical-ups" type="s">
+      <default>'shutdown'</default>
+      <summary>UPS critical low action</summary>
+      <description>The action to take when the UPS is critically low. Possible values are "hibernate", "suspend", "shutdown" and "nothing".</description>
+    </key>
+    <key name="action-low-ups" type="s">
+      <default>'hibernate'</default>
+      <summary>UPS low power action</summary>
+      <description>The action to take when the UPS is low. Possible values are "hibernate", "suspend", "shutdown" and "nothing".</description>
+    </key>
+    <key name="backlight-enable" type="b">
+      <default>true</default>
+      <summary>Allow backlight brightness adjustment</summary>
+      <description>If the screen brightness should be changed when switching between AC and battery power.</description>
+    </key>
+    <key name="backlight-battery-reduce" type="b">
+      <default>true</default>
+      <summary>Reduce the backlight brightness when on battery power</summary>
+      <description>If the screen should be reduced in brightness when the computer is on battery power.</description>
+    </key>
+    <key name="idle-brightness" type="i">
+      <default>30</default>
+      <summary>The brightness of the screen when idle</summary>
+      <description>This is the laptop panel screen brightness used when the session is idle. Only valid when use-time-for-policy is true.</description>
+    </key>
+    <key name="idle-dim-battery" type="b">
+      <default>true</default>
+      <summary>Dim the screen after a period of inactivity when on battery power</summary>
+      <description>If the screen should be dimmed to save power when the computer is idle when on battery power.</description>
+    </key>
+    <key name="idle-dim-time" type="i">
+      <default>10</default>
+      <summary>The default amount of time to dim the screen after idle</summary>
+      <description>The default amount of time to dim the screen after idle.</description>
+    </key>
+    <key name="brightness-dim-battery" type="i">
+      <default>50</default>
+      <summary>LCD dimming amount when on battery</summary>
+      <description>The amount to dim the brightness of the display when on battery power. Possible values are between 0 and 100.</description>
+    </key>
+    <key name="idle-dim-ac" type="b">
+      <default>false</default>
+      <summary>Dim the screen after a period of inactivity when on AC power</summary>
+      <description>If the screen should be dimmed to save power when the computer is idle when on AC power.</description>
+    </key>
+    <key name="dpms-method-ac" type="s">
+      <default>'off'</default>
+      <summary>Method used to blank screen on AC</summary>
+      <description>The DPMS method used to blank the screen when on AC power. Possible values are "standby", "suspend" and "off".</description>
+    </key>
+    <key name="dpms-method-battery" type="s">
+      <default>'off'</default>
+      <summary>Method used to blank screen on battery</summary>
+      <description>The DPMS method used to blank the screen when on battery power. Possible values are "standby", "suspend" and "off".</description>
+    </key>
+    <key name="brightness-ac" type="d">
+      <default>1.0</default>
+      <summary>LCD brightness when on AC</summary>
+      <description>The brightness of the display when on AC power. Possible values are between 0.0 and 1.0.</description>
+    </key>
+    <key name="button-suspend" type="s">
+      <default>'suspend'</default>
+      <summary>Suspend button action</summary>
+      <description>The action to take when the system suspend button is pressed. Possible values are "suspend", "hibernate", "interactive", "shutdown" and "nothing".</description>
+    </key>
+    <key name="button-hibernate" type="s">
+      <default>'hibernate'</default>
+      <summary>Hibernate button action</summary>
+      <description>The action to take when the system hibernate button is pressed. Possible values are "suspend", "hibernate", "interactive", "shutdown" and "nothing".</description>
+    </key>
+    <key name="button-power" type="s">
+      <default>'interactive'</default>
+      <summary>Power button action</summary>
+      <description>The action to take when the system power button is pressed. Possible values are "suspend", "hibernate", "interactive", "shutdown" and "nothing".</description>
+    </key>
+    <key name="button-lid-battery" type="s">
+      <default>'suspend'</default>
+      <summary>Laptop lid close action on battery</summary>
+      <description>The action to take when the laptop lid is closed and the laptop is on battery power. Possible values are "suspend", "hibernate", "blank", and "nothing".</description>
+    </key>
+    <key name="button-lid-ac" type="s">
+      <default>'suspend'</default>
+      <summary>Laptop lid close action when on AC</summary>
+      <description>The action to take when the laptop lid is closed and the laptop is on AC power. Possible values are "suspend", "hibernate", "blank" and "nothing".</description>
+    </key>
+    <key name="schema-version" type="i">
+      <default>3</default>
+      <summary>The default configuration version.</summary>
+      <description>The version of the installed version of the schema. Do not edit this value, it is used so that configure changes between versions can be detected.</description>
+    </key>
+    <key name="use-profile-time" type="b">
+      <default>true</default>
+      <summary>If the learnt profile should be used to calculate the time remaining</summary>
+      <description>If the learnt profile should be used to calculate the time remaining. Only turn this off for debugging.</description>
+    </key>
+    <key name="use-time-for-policy" type="b">
+      <default>true</default>
+      <summary>Whether to use time-based notifications</summary>
+      <description>If time based notifications should be used. If set to false, then the percentage change is used instead, which may fix a broken ACPI BIOS.</description>
+    </key>
+    <key name="check-type-cpu" type="b">
+      <default>false</default>
+      <summary>Check CPU load before sleeping</summary>
+      <description>If the CPU load should be checked before doing the idle action.</description>
+    </key>
+    <key name="network-sleep" type="b">
+      <default>false</default>
+      <summary>Whether NetworkManager should be connected and disconnected on sleep.</summary>
+      <description>Whether NetworkManager should disconnect before suspending or hibernating and connect on resume.</description>
+    </key>
+    <key name="lock-use-screensaver" type="b">
+      <default>true</default>
+      <summary>Use gnome-screensaver lock setting</summary>
+      <description>Whether to use the screen lock setting of gnome-screensaver to decide if the screen is locked after a hibernate, suspend or blank screen.</description>
+    </key>
+    <key name="lock-blank-screen" type="b">
+      <default>true</default>
+      <summary>Lock screen when blanked</summary>
+      <description>Whether the screen is locked when the screen is turned off. Only used if lock-use-screensaver is false.</description>
+    </key>
+    <key name="lock-suspend" type="b">
+      <default>true</default>
+      <summary>Lock screen on suspend</summary>
+      <description>Whether the screen is locked when the computer wakes up from a suspend. Only used if lock-use-screensaver is false.</description>
+    </key>
+    <key name="lock-hibernate" type="b">
+      <default>true</default>
+      <summary>Lock screen on hibernate</summary>
+      <description>Whether the screen is locked when the computer wakes up from a hibernate. Only used if lock-use-screensaver is false.</description>
+    </key>
+    <key name="lock-keyring-suspend" type="b">
+      <default>false</default>
+      <summary>Lock GNOME keyring on sleep</summary>
+      <description>Whether the GNOME keyring is locked before the computer enters suspend. This means the keyring will have to be unlocked on resume.</description>
+    </key>
+    <key name="lock-keyring-hibernate" type="b">
+      <default>true</default>
+      <summary>Lock GNOME keyring on sleep</summary>
+      <description>Whether the GNOME keyring is locked before the computer enters hibernate. This means the keyring will have to be unlocked on resume.</description>
+    </key>
+    <key name="spindown-enable-ac" type="b">
+      <default>false</default>
+      <summary>If the low-power mode should be enabled when on AC</summary>
+      <description>If the system low-power mode should be enabled when on AC power.</description>
+    </key>
+    <key name="spindown-enable-battery" type="b">
+      <default>true</default>
+      <summary>If the low-power mode should be enabled when on battery</summary>
+      <description>If the system low-power mode should be enabled when on laptop battery power.</description>
+    </key>
+    <key name="spindown-timeout-ac" type="i">
+      <default>600</default>
+      <summary>Seconds of inactivity to spin down when on AC</summary>
+      <description>The number of seconds of inactivity to spin down the disks when on AC power.</description>
+    </key>
+    <key name="spindown-timeout-battery" type="i">
+      <default>60</default>
+      <summary>Seconds of inactivity to spin down when on battery</summary>
+      <description>The number of seconds of inactivity to spin down the disks when on battery power.</description>
+    </key>
+    <key name="notify-perhaps-recall" type="b">
+      <default>true</default>
+      <summary>If we should show the recalled battery warning for a broken battery</summary>
+      <description>If we should show the recalled battery warning for a broken battery. Set this to false only if you know your battery is okay.</description>
+    </key>
+    <key name="notify-low-capacity" type="b">
+      <default>true</default>
+      <summary>If we should show the low capacity warning for a broken battery</summary>
+      <description>If we should show the low capacity warning for a broken battery.</description>
+    </key>
+    <key name="notify-discharging" type="b">
+      <default>true</default>
+      <summary>Notify when AC adapter is disconnected</summary>
+      <description>If the user should be notified when the AC adapter is disconnected.</description>
+    </key>
+    <key name="notify-fully-charged" type="b">
+      <default>false</default>
+      <summary>Notify when fully charged</summary>
+      <description>If a notification message should be displayed when the battery is fully charged.</description>
+    </key>
+    <key name="notify-sleep-failed" type="b">
+      <default>true</default>
+      <summary>Notify on a sleep failure</summary>
+      <description>If a notification message should be displayed after suspend or hibernate failed.</description>
+    </key>
+    <key name="notify-sleep-failed-uri" type="s">
+      <default>''</default>
+      <summary>The URI to show to the user on sleep failure</summary>
+      <description>When sleep fails we can show the user a button to help fix the situation. Leave this blank if the button should not be shown.</description>
+    </key>
+    <key name="notify-low-power" type="b">
+      <default>true</default>
+      <summary>Notify on a low power</summary>
+      <description>If a notification message should be displayed when the battery is getting low.</description>
+    </key>
+    <key name="statistics-show-axis-labels" type="b">
+      <default>true</default>
+      <summary>Whether we should show the axis labels in the statistics window</summary>
+      <description>Whether we should show the axis labels in the statistics window.</description>
+    </key>
+    <key name="statistics-show-events" type="b">
+      <default>true</default>
+      <summary>Whether we should show the events in the statistics window</summary>
+      <description>Whether we should show the events in the statistics window.</description>
+    </key>
+    <key name="statistics-smooth-data" type="b">
+      <default>true</default>
+      <summary>Whether we should smooth the data in the graph</summary>
+      <description>Whether we should smooth the data in the graph.</description>
+    </key>
+    <key name="statistics-graph-type" type="s">
+      <default>'power'</default>
+      <summary>The default graph type to show in the statistics window</summary>
+      <description>The default graph type to show in the statistics window.</description>
+    </key>
+    <key name="statistics-data-max-time" type="i">
+      <default>21600</default>
+      <summary>The maximum time displayed on the graph</summary>
+      <description>The maximum duration of time displayed on the x-axis of the graph.</description>
+    </key>
+    <key name="percentage-low" type="i">
+      <default>10</default>
+      <summary>Percentage considered low</summary>
+      <description>The percentage of the battery when it is considered low. Only valid when use-time-for-policy is false.</description>
+    </key>
+    <key name="percentage-critical" type="i">
+      <default>3</default>
+      <summary>Percentage considered critical</summary>
+      <description>The percentage of the battery when it is considered critical. Only valid when use-time-for-policy is false.</description>
+    </key>
+    <key name="percentage-action" type="i">
+      <default>2</default>
+      <summary>Percentage action is taken</summary>
+      <description>The percentage of the battery when the critical action is performed. Only valid when use-time-for-policy is false.</description>
+    </key>
+    <key name="time-low" type="i">
+      <default>1200</default>
+      <summary>The time remaining when low</summary>
+      <description>The time remaining in seconds of the battery when it is considered low. Only valid when use-time-for-policy is true.</description>
+    </key>
+    <key name="time-critical" type="i">
+      <default>300</default>
+      <summary>The time remaining when critical</summary>
+      <description>The time remaining in seconds of the battery when it is considered critical. Only valid when use-time-for-policy is true.</description>
+    </key>
+    <key name="time-action" type="i">
+      <default>120</default>
+      <summary>The time remaining when action is taken</summary>
+      <description>The time remaining in seconds of the battery when critical action is taken. Only valid when use-time-for-policy is true.</description>
+    </key>
+    <key name="sleep-computer-battery" type="i">
+      <default>0</default>
+      <summary>Sleep timeout computer when on battery</summary>
+      <description>The amount of time in seconds the computer on battery power needs to be inactive before it goes to sleep.</description>
+    </key>
+    <key name="sleep-computer-ac" type="i">
+      <default>0</default>
+      <summary>Sleep timeout computer when on AC</summary>
+      <description>The amount of time in seconds the computer on AC power needs to be inactive before it goes to sleep.</description>
+    </key>
+    <key name="sleep-computer-ups" type="i">
+      <default>0</default>
+      <summary>Sleep timeout computer when on UPS</summary>
+      <description>The amount of time in seconds the computer on UPS power needs to be inactive before it goes to sleep.</description>
+    </key>
+    <key name="sleep-display-ac" type="i">
+      <default>1800</default>
+      <summary>Sleep timeout display when on AC</summary>
+      <description>The amount of time in seconds before the display goes to sleep when the computer is on AC power.</description>
+    </key>
+    <key name="sleep-display-battery" type="i">
+      <default>600</default>
+      <summary>Sleep timeout display when on battery</summary>
+      <description>The amount of time in seconds the computer on battery power needs to be inactive before the display goes to sleep.</description>
+    </key>
+    <key name="sleep-display-ups" type="i">
+      <default>600</default>
+      <summary>Sleep timeout display when on UPS</summary>
+      <description>The amount of time in seconds the computer on UPS power needs to be inactive before the display goes to sleep.</description>
+    </key>
+    <key name="enable-sound" type="b">
+      <default>true</default>
+      <summary>If sounds should be used</summary>
+      <description>If sounds should be used when the power is critically low, or inhibit requests have stopped the policy action.</description>
+    </key>
+    <key name="show-actions" type="b">
+      <default>true</default>
+      <summary>If preferences and statistics items should be shown in the context menu</summary>
+    </key>
+    <key name="icon-policy" type="s">
+      <default>'present'</default>
+      <summary>When to show the notification icon</summary>
+      <description>Display options for the notification icon. Valid options are "never", "low", "critical", "charge", and "present".</description>
+    </key>
+  </schema>
+</schemalist>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0afea66..90d6d45 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -6,7 +6,7 @@ applets/brightness/GNOME_BrightnessApplet.server.in.in
 applets/inhibit/inhibit-applet.c
 applets/inhibit/GNOME_InhibitApplet.server.in.in
 data/gnome-power-manager.desktop.in.in
-data/gnome-power-manager.schemas.in
+data/org.gnome.power-manager.gschema.xml
 data/gnome-power-preferences.desktop.in.in
 data/gnome-power-statistics.desktop.in.in
 [type: gettext/glade]data/gpm-feedback-widget.ui
diff --git a/src/gpm-backlight.c b/src/gpm-backlight.c
index 9a293fd..1a88981 100644
--- a/src/gpm-backlight.c
+++ b/src/gpm-backlight.c
@@ -39,7 +39,6 @@
 
 #include <glib/gi18n.h>
 #include <dbus/dbus-glib.h>
-#include <gconf/gconf-client.h>
 #include <libupower-glib/upower.h>
 
 #include "gpm-button.h"
@@ -62,7 +61,7 @@ struct GpmBacklightPrivate
 	UpClient		*client;
 	GpmBrightness		*brightness;
 	GpmButton		*button;
-	GConfClient		*conf;
+	GSettings		*settings;
 	GtkWidget		*popup;
 	GpmControl		*control;
 	GpmDpms			*dpms;
@@ -288,7 +287,7 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
 		return FALSE;
 	}
 
-	do_laptop_lcd = gconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_ENABLE, NULL);
+	do_laptop_lcd = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_BACKLIGHT_ENABLE);
 	if (do_laptop_lcd == FALSE) {
 		egg_warning ("policy is no dimming");
 		return FALSE;
@@ -304,9 +303,9 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
 		      NULL);
 
 	/* reduce if on battery power if we should */
-	battery_reduce = gconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_BATTERY_REDUCE, NULL);
+	battery_reduce = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_BACKLIGHT_BATTERY_REDUCE);
 	if (on_battery && battery_reduce) {
-		value = gconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT, NULL);
+		value = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_BRIGHTNESS_DIM_BATT);
 		if (value > 100) {
 			egg_warning ("cannot use battery brightness value %i, correcting to 50", value);
 			value = 50;
@@ -320,11 +319,11 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
 
 	/* reduce if system is momentarily idle */
 	if (!on_battery)
-		enable_action = gconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_DIM_AC, NULL);
+		enable_action = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_IDLE_DIM_AC);
 	else
-		enable_action = gconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_DIM_BATT, NULL);
+		enable_action = g_settings_get_boolean (backlight->priv->settings, GPM_SETTINGS_IDLE_DIM_BATT);
 	if (enable_action && backlight->priv->system_is_idle) {
-		value = gconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_BRIGHTNESS, NULL);
+		value = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_IDLE_BRIGHTNESS);
 		if (value > 100) {
 			egg_warning ("cannot use idle brightness value %i, correcting to 50", value);
 			value = 50;
@@ -364,44 +363,39 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
 }
 
 /**
- * gpm_conf_gconf_key_changed_cb:
+ * gpm_settings_key_changed_cb:
  *
- * We might have to do things when the gconf keys change; do them here.
+ * We might have to do things when the keys change; do them here.
  **/
 static void
-gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *entry, GpmBacklight *backlight)
+gpm_settings_key_changed_cb (GSettings *settings, const gchar *key, GpmBacklight *backlight)
 {
-	GConfValue *value;
 	gboolean on_battery;
 
-	value = gconf_entry_get_value (entry);
-	if (value == NULL)
-		return;
-
 	/* get battery status */
 	g_object_get (backlight->priv->client,
 		      "on-battery", &on_battery,
 		      NULL);
 
-	if (!on_battery && strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC) == 0) {
-		backlight->priv->master_percentage = gconf_value_get_int (value);
+	if (!on_battery && g_strcmp0 (key, GPM_SETTINGS_BRIGHTNESS_AC) == 0) {
+		backlight->priv->master_percentage = g_settings_get_double (settings, key) * 100.0f;
 		gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
 
-	} else if (on_battery && strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT) == 0) {
+	} else if (on_battery && g_strcmp0 (key, GPM_SETTINGS_BRIGHTNESS_DIM_BATT) == 0) {
 		gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
 
-	} else if (strcmp (entry->key, GPM_CONF_BACKLIGHT_IDLE_DIM_AC) == 0 ||
-	         strcmp (entry->key, GPM_CONF_BACKLIGHT_ENABLE) == 0 ||
-	         strcmp (entry->key, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT) == 0 ||
-	         strcmp (entry->key, GPM_CONF_BACKLIGHT_BATTERY_REDUCE) == 0 ||
-	         strcmp (entry->key, GPM_CONF_BACKLIGHT_IDLE_BRIGHTNESS) == 0) {
+	} else if (g_strcmp0 (key, GPM_SETTINGS_IDLE_DIM_AC) == 0 ||
+	           g_strcmp0 (key, GPM_SETTINGS_BACKLIGHT_ENABLE) == 0 ||
+	           g_strcmp0 (key, GPM_SETTINGS_SLEEP_DISPLAY_BATT) == 0 ||
+	           g_strcmp0 (key, GPM_SETTINGS_BACKLIGHT_BATTERY_REDUCE) == 0 ||
+	           g_strcmp0 (key, GPM_SETTINGS_IDLE_BRIGHTNESS) == 0) {
 		gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
 
-	} else if (strcmp (entry->key, GPM_CONF_BACKLIGHT_IDLE_DIM_TIME) == 0) {
-		backlight->priv->idle_dim_timeout = gconf_value_get_int (value);
+	} else if (g_strcmp0 (key, GPM_SETTINGS_IDLE_DIM_TIME) == 0) {
+		backlight->priv->idle_dim_timeout = g_settings_get_int (settings, key);
 		gpm_idle_set_timeout_dim (backlight->priv->idle, backlight->priv->idle_dim_timeout);
 	} else {
-		egg_debug ("unknown key %s", entry->key);
+		egg_debug ("unknown key %s", key);
 	}
 }
 
@@ -434,7 +428,7 @@ gpm_backlight_button_pressed_cb (GpmButton *button, const gchar *type, GpmBackli
 	gboolean hw_changed;
 	egg_debug ("Button press event type=%s", type);
 
-	if (strcmp (type, GPM_BUTTON_BRIGHT_UP) == 0) {
+	if (g_strcmp0 (type, GPM_BUTTON_BRIGHT_UP) == 0) {
 		/* go up one step */
 		ret = gpm_brightness_up (backlight->priv->brightness, &hw_changed);
 
@@ -453,7 +447,7 @@ gpm_backlight_button_pressed_cb (GpmButton *button, const gchar *type, GpmBackli
 			egg_debug ("emitting brightness-changed : %i", percentage);
 			g_signal_emit (backlight, signals [BRIGHTNESS_CHANGED], 0, percentage);
 		}
-	} else if (strcmp (type, GPM_BUTTON_BRIGHT_DOWN) == 0) {
+	} else if (g_strcmp0 (type, GPM_BUTTON_BRIGHT_DOWN) == 0) {
 		/* go up down step */
 		ret = gpm_brightness_down (backlight->priv->brightness, &hw_changed);
 
@@ -472,7 +466,7 @@ gpm_backlight_button_pressed_cb (GpmButton *button, const gchar *type, GpmBackli
 			egg_debug ("emitting brightness-changed : %i", percentage);
 			g_signal_emit (backlight, signals [BRIGHTNESS_CHANGED], 0, percentage);
 		}
-	} else if (strcmp (type, GPM_BUTTON_LID_OPEN) == 0) {
+	} else if (g_strcmp0 (type, GPM_BUTTON_LID_OPEN) == 0) {
 		/* make sure we undim when we lift the lid */
 		gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
 
@@ -520,8 +514,8 @@ gpm_backlight_notify_system_idle_changed (GpmBacklight *backlight, gboolean is_i
 		if (elapsed > 2*60) {
 			/* reset back to our default dimming */
 			backlight->priv->idle_dim_timeout =
-				gconf_client_get_int (backlight->priv->conf,
-					   GPM_CONF_BACKLIGHT_IDLE_DIM_TIME, NULL);
+				g_settings_get_int (backlight->priv->settings,
+					   GPM_SETTINGS_IDLE_DIM_TIME);
 			egg_debug ("resetting idle dim time to %is", backlight->priv->idle_dim_timeout);
 			gpm_idle_set_timeout_dim (backlight->priv->idle, backlight->priv->idle_dim_timeout);
 		}
@@ -600,9 +594,9 @@ idle_changed_cb (GpmIdle *idle, GpmIdleMode mode, GpmBacklight *backlight)
 			      "on-battery", &on_battery,
 			      NULL);
 		if (!on_battery)
-			dpms_method = gconf_client_get_string (backlight->priv->conf, GPM_CONF_BACKLIGHT_DPMS_METHOD_AC, NULL);
+			dpms_method = g_settings_get_string (backlight->priv->settings, GPM_SETTINGS_DPMS_METHOD_AC);
 		else
-			dpms_method = gconf_client_get_string (backlight->priv->conf, GPM_CONF_BACKLIGHT_DPMS_METHOD_BATT, NULL);
+			dpms_method = g_settings_get_string (backlight->priv->settings, GPM_SETTINGS_DPMS_METHOD_BATT);
 
 		/* convert the string types to standard types */
 		dpms_mode = gpm_dpms_mode_from_string (dpms_method);
@@ -680,7 +674,7 @@ gpm_backlight_finalize (GObject *object)
 
 	g_object_unref (backlight->priv->dpms);
 	g_object_unref (backlight->priv->control);
-	g_object_unref (backlight->priv->conf);
+	g_object_unref (backlight->priv->settings);
 	g_object_unref (backlight->priv->client);
 	g_object_unref (backlight->priv->button);
 	g_object_unref (backlight->priv->idle);
@@ -742,17 +736,12 @@ gpm_backlight_init (GpmBacklight *backlight)
 	backlight->priv->can_dim = gpm_brightness_has_hw (backlight->priv->brightness);
 
 	/* watch for dim value changes */
-	backlight->priv->conf = gconf_client_get_default ();
-
-	/* watch gnome-power-manager keys */
-	gconf_client_add_dir (backlight->priv->conf, GPM_CONF_DIR, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
-	gconf_client_notify_add (backlight->priv->conf, GPM_CONF_DIR,
-				 (GConfClientNotifyFunc) gpm_conf_gconf_key_changed_cb,
-				 backlight, NULL, NULL);
+	backlight->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+	g_signal_connect (backlight->priv->settings, "changed", G_CALLBACK (gpm_settings_key_changed_cb), backlight);
 
 	/* set the main brightness, this is designed to be updated if the user changes the
 	 * brightness so we can undim to the 'correct' value */
-	backlight->priv->master_percentage = gconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC, NULL);
+	backlight->priv->master_percentage = g_settings_get_double (backlight->priv->settings, GPM_SETTINGS_BRIGHTNESS_AC) * 100.0f;
 
 	/* watch for brightness up and down buttons and also check lid state */
 	backlight->priv->button = gpm_button_new ();
@@ -766,7 +755,7 @@ gpm_backlight_init (GpmBacklight *backlight)
 
 	/* assumption */
 	backlight->priv->system_is_idle = FALSE;
-	backlight->priv->idle_dim_timeout = gconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_DIM_TIME, NULL);
+	backlight->priv->idle_dim_timeout = g_settings_get_int (backlight->priv->settings, GPM_SETTINGS_IDLE_DIM_TIME);
 	gpm_idle_set_timeout_dim (backlight->priv->idle, backlight->priv->idle_dim_timeout);
 
 	/* use a visual widget */
diff --git a/src/gpm-common.h b/src/gpm-common.h
index 5198490..ec09cac 100644
--- a/src/gpm-common.h
+++ b/src/gpm-common.h
@@ -42,113 +42,108 @@ G_BEGIN_DECLS
 #define GPM_FAQ_URL			"http://live.gnome.org/GnomePowerManager/Faq";
 
 /* change general/installed_schema whenever adding or moving keys */
-#define GPM_CONF_SCHEMA_ID	3
-
-#define GPM_CONF_DIR 				"/apps/gnome-power-manager"
+#define GPM_SETTINGS_SCHEMA_ID				3
+#define GPM_SETTINGS_SCHEMA				"org.gnome.power-manager"
 
 /* actions */
-#define GPM_CONF_ACTIONS_CRITICAL_UPS		GPM_CONF_DIR "/actions/critical_ups"
-#define GPM_CONF_ACTIONS_CRITICAL_BATT		GPM_CONF_DIR "/actions/critical_battery"
-#define GPM_CONF_ACTIONS_LOW_UPS		GPM_CONF_DIR "/actions/low_ups"
-#define GPM_CONF_ACTIONS_SLEEP_TYPE_AC		GPM_CONF_DIR "/actions/sleep_type_ac"
-#define GPM_CONF_ACTIONS_SLEEP_TYPE_BATT	GPM_CONF_DIR "/actions/sleep_type_battery"
-#define GPM_CONF_ACTIONS_SLEEP_WHEN_CLOSED	GPM_CONF_DIR "/actions/event_when_closed_battery"
+#define GPM_SETTINGS_ACTION_CRITICAL_UPS		"action-critical-ups"
+#define GPM_SETTINGS_ACTION_CRITICAL_BATT		"action-critical-battery"
+#define GPM_SETTINGS_ACTION_LOW_UPS			"action-low-ups"
+#define GPM_SETTINGS_ACTION_SLEEP_TYPE_AC		"action-sleep-type-ac"
+#define GPM_SETTINGS_ACTION_SLEEP_TYPE_BATT		"action-sleep-type-battery"
+#define GPM_SETTINGS_SLEEP_WHEN_CLOSED			"event-when-closed-battery"
 
 /* backlight stuff */
-#define GPM_CONF_BACKLIGHT_ENABLE		GPM_CONF_DIR "/backlight/enable"
-#define GPM_CONF_BACKLIGHT_BATTERY_REDUCE	GPM_CONF_DIR "/backlight/battery_reduce"
-#define GPM_CONF_BACKLIGHT_DPMS_METHOD_AC	GPM_CONF_DIR "/backlight/dpms_method_ac"
-#define GPM_CONF_BACKLIGHT_DPMS_METHOD_BATT	GPM_CONF_DIR "/backlight/dpms_method_battery"
-#define GPM_CONF_BACKLIGHT_IDLE_BRIGHTNESS	GPM_CONF_DIR "/backlight/idle_brightness"
-#define GPM_CONF_BACKLIGHT_IDLE_DIM_AC		GPM_CONF_DIR "/backlight/idle_dim_ac"
-#define GPM_CONF_BACKLIGHT_IDLE_DIM_BATT	GPM_CONF_DIR "/backlight/idle_dim_battery"
-#define GPM_CONF_BACKLIGHT_IDLE_DIM_TIME	GPM_CONF_DIR "/backlight/idle_dim_time"
-#define GPM_CONF_BACKLIGHT_BRIGHTNESS_AC	GPM_CONF_DIR "/backlight/brightness_ac"
-#define GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT	GPM_CONF_DIR "/backlight/brightness_dim_battery"
+#define GPM_SETTINGS_BACKLIGHT_ENABLE			"backlight-enable"
+#define GPM_SETTINGS_BACKLIGHT_BATTERY_REDUCE		"backlight-battery-reduce"
+#define GPM_SETTINGS_DPMS_METHOD_AC			"dpms-method-ac"
+#define GPM_SETTINGS_DPMS_METHOD_BATT			"dpms-method-battery"
+#define GPM_SETTINGS_IDLE_BRIGHTNESS			"idle-brightness"
+#define GPM_SETTINGS_IDLE_DIM_AC			"idle-dim-ac"
+#define GPM_SETTINGS_IDLE_DIM_BATT			"idle-dim-battery"
+#define GPM_SETTINGS_IDLE_DIM_TIME			"idle-dim-time"
+#define GPM_SETTINGS_BRIGHTNESS_AC			"brightness-ac"
+#define GPM_SETTINGS_BRIGHTNESS_DIM_BATT		"brightness-dim-battery"
 
 /* buttons */
-#define GPM_CONF_BUTTON_LID_AC			GPM_CONF_DIR "/buttons/lid_ac"
-#define GPM_CONF_BUTTON_LID_BATT		GPM_CONF_DIR "/buttons/lid_battery"
-#define GPM_CONF_BUTTON_SUSPEND			GPM_CONF_DIR "/buttons/suspend"
-#define GPM_CONF_BUTTON_HIBERNATE		GPM_CONF_DIR "/buttons/hibernate"
-#define GPM_CONF_BUTTON_POWER			GPM_CONF_DIR "/buttons/power"
+#define GPM_SETTINGS_BUTTON_LID_AC			"button-lid-ac"
+#define GPM_SETTINGS_BUTTON_LID_BATT			"button-lid-battery"
+#define GPM_SETTINGS_BUTTON_SUSPEND			"button-suspend"
+#define GPM_SETTINGS_BUTTON_HIBERNATE			"button-hibernate"
+#define GPM_SETTINGS_BUTTON_POWER			"button-power"
 
 /* general */
-#define GPM_CONF_SCHEMA_VERSION			GPM_CONF_DIR "/general/installed_schema"
-#define GPM_CONF_USE_TIME_POLICY		GPM_CONF_DIR "/general/use_time_for_policy"
-#define GPM_CONF_USE_PROFILE_TIME		GPM_CONF_DIR "/general/use_profile_time"
-#define GPM_CONF_NETWORKMANAGER_SLEEP		GPM_CONF_DIR "/general/network_sleep"
-#define GPM_CONF_IDLE_CHECK_CPU			GPM_CONF_DIR "/general/check_type_cpu"
-#define GPM_CONF_LAPTOP_USES_EXT_MON		GPM_CONF_DIR "/general/using_external_monitor"
+#define GPM_SETTINGS_SCHEMA_VERSION			"schema-version"
+#define GPM_SETTINGS_USE_TIME_POLICY			"use-time-for-policy"
+#define GPM_SETTINGS_USE_PROFILE_TIME			"use-profile-time"
+#define GPM_SETTINGS_NETWORKMANAGER_SLEEP		"network-sleep"
+#define GPM_SETTINGS_IDLE_CHECK_CPU			"check-type-cpu"
 
 /* lock */
-#define GPM_CONF_LOCK_USE_SCREENSAVER		GPM_CONF_DIR "/lock/use_screensaver_settings"
-#define GPM_CONF_LOCK_ON_BLANK_SCREEN		GPM_CONF_DIR "/lock/blank_screen"
-#define GPM_CONF_LOCK_ON_SUSPEND		GPM_CONF_DIR "/lock/suspend"
-#define GPM_CONF_LOCK_ON_HIBERNATE		GPM_CONF_DIR "/lock/hibernate"
-#define GPM_CONF_LOCK_GNOME_KEYRING_SUSPEND	GPM_CONF_DIR "/lock/gnome_keyring_suspend"
-#define GPM_CONF_LOCK_GNOME_KEYRING_HIBERNATE	GPM_CONF_DIR "/lock/gnome_keyring_hibernate"
+#define GPM_SETTINGS_LOCK_USE_SCREENSAVER		"lock-use-screensaver"
+#define GPM_SETTINGS_LOCK_ON_BLANK_SCREEN		"lock-blank-screen"
+#define GPM_SETTINGS_LOCK_ON_SUSPEND			"lock-suspend"
+#define GPM_SETTINGS_LOCK_ON_HIBERNATE			"lock-hibernate"
+#define GPM_SETTINGS_LOCK_KEYRING_SUSPEND		"lock-keyring-suspend"
+#define GPM_SETTINGS_LOCK_KEYRING_HIBERNATE		"lock-keyring-hibernate"
 
 /* disks */
-#define GPM_CONF_DISKS_SPINDOWN_ENABLE_AC	GPM_CONF_DIR "/disks/spindown_enable_ac"
-#define GPM_CONF_DISKS_SPINDOWN_ENABLE_BATT	GPM_CONF_DIR "/disks/spindown_enable_battery"
-#define GPM_CONF_DISKS_SPINDOWN_TIMEOUT_AC	GPM_CONF_DIR "/disks/spindown_timeout_ac"
-#define GPM_CONF_DISKS_SPINDOWN_TIMEOUT_BATT	GPM_CONF_DIR "/disks/spindown_timeout_battery"
+#define GPM_SETTINGS_SPINDOWN_ENABLE_AC			"spindown-enable-ac"
+#define GPM_SETTINGS_SPINDOWN_ENABLE_BATT		"spindown-enable-battery"
+#define GPM_SETTINGS_SPINDOWN_TIMEOUT_AC		"spindown-timeout-ac"
+#define GPM_SETTINGS_SPINDOWN_TIMEOUT_BATT		"spindown-timeout-battery"
 
 /* notify */
-#define GPM_CONF_NOTIFY_PERHAPS_RECALL		GPM_CONF_DIR "/notify/perhaps_recall"
-#define GPM_CONF_NOTIFY_LOW_CAPACITY		GPM_CONF_DIR "/notify/low_capacity"
-#define GPM_CONF_NOTIFY_DISCHARGING		GPM_CONF_DIR "/notify/discharging"
-#define GPM_CONF_NOTIFY_FULLY_CHARGED		GPM_CONF_DIR "/notify/fully_charged"
-#define GPM_CONF_NOTIFY_SLEEP_FAILED		GPM_CONF_DIR "/notify/sleep_failed"
-#define GPM_CONF_NOTIFY_SLEEP_FAILED_URI	GPM_CONF_DIR "/notify/sleep_failed_uri"
-#define GPM_CONF_NOTIFY_LOW_POWER		GPM_CONF_DIR "/notify/low_power"
+#define GPM_SETTINGS_NOTIFY_PERHAPS_RECALL		"notify-perhaps-recall"
+#define GPM_SETTINGS_NOTIFY_LOW_CAPACITY		"notify-low-capacity"
+#define GPM_SETTINGS_NOTIFY_DISCHARGING			"notify-discharging"
+#define GPM_SETTINGS_NOTIFY_FULLY_CHARGED		"notify-fully-charged"
+#define GPM_SETTINGS_NOTIFY_SLEEP_FAILED		"notify-sleep-failed"
+#define GPM_SETTINGS_NOTIFY_SLEEP_FAILED_URI		"notify-sleep-failed-uri"
+#define GPM_SETTINGS_NOTIFY_LOW_POWER			"notify-low-power"
 
 /* statistics */
-#define GPM_CONF_STATS_SHOW_AXIS_LABELS		GPM_CONF_DIR "/statistics/show_axis_labels"
-#define GPM_CONF_STATS_SHOW_EVENTS		GPM_CONF_DIR "/statistics/show_events"
-#define GPM_CONF_STATS_SMOOTH_DATA		GPM_CONF_DIR "/statistics/smooth_data"
-#define GPM_CONF_STATS_GRAPH_TYPE		GPM_CONF_DIR "/statistics/graph_type"
-#define GPM_CONF_STATS_MAX_TIME			GPM_CONF_DIR "/statistics/data_max_time"
+#define GPM_SETTINGS_STATS_SHOW_AXIS_LABELS		"statistics-show-axis-labels"
+#define GPM_SETTINGS_STATS_SHOW_EVENTS			"statistics-show-events"
+#define GPM_SETTINGS_STATS_SMOOTH_DATA			"statistics-smooth-data"
+#define GPM_SETTINGS_STATS_GRAPH_TYPE			"statistics-graph-type"
+#define GPM_SETTINGS_STATS_MAX_TIME			"statistics-data-max-time"
 
 /* thresholds */
-#define GPM_CONF_THRESH_PERCENTAGE_LOW		GPM_CONF_DIR "/thresholds/percentage_low"
-#define GPM_CONF_THRESH_PERCENTAGE_CRITICAL	GPM_CONF_DIR "/thresholds/percentage_critical"
-#define GPM_CONF_THRESH_PERCENTAGE_ACTION	GPM_CONF_DIR "/thresholds/percentage_action"
-#define GPM_CONF_THRESH_TIME_LOW		GPM_CONF_DIR "/thresholds/time_low"
-#define GPM_CONF_THRESH_TIME_CRITICAL		GPM_CONF_DIR "/thresholds/time_critical"
-#define GPM_CONF_THRESH_TIME_ACTION		GPM_CONF_DIR "/thresholds/time_action"
+#define GPM_SETTINGS_PERCENTAGE_LOW			"percentage-low"
+#define GPM_SETTINGS_PERCENTAGE_CRITICAL		"percentage-critical"
+#define GPM_SETTINGS_PERCENTAGE_ACTION			"percentage-action"
+#define GPM_SETTINGS_TIME_LOW				"time-low"
+#define GPM_SETTINGS_TIME_CRITICAL			"time-critical"
+#define GPM_SETTINGS_TIME_ACTION			"time-action"
 
 /* timeout */
-#define GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC	GPM_CONF_DIR "/timeout/sleep_computer_ac"
-#define GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT	GPM_CONF_DIR "/timeout/sleep_computer_battery"
-#define GPM_CONF_TIMEOUT_SLEEP_COMPUTER_UPS	GPM_CONF_DIR "/timeout/sleep_computer_ups"
-#define GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC	GPM_CONF_DIR "/timeout/sleep_display_ac"
-#define GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT	GPM_CONF_DIR "/timeout/sleep_display_battery"
-#define GPM_CONF_TIMEOUT_SLEEP_DISPLAY_UPS	GPM_CONF_DIR "/timeout/sleep_display_ups"
+#define GPM_SETTINGS_SLEEP_COMPUTER_AC			"sleep-computer-ac"
+#define GPM_SETTINGS_SLEEP_COMPUTER_BATT		"sleep-computer-battery"
+#define GPM_SETTINGS_SLEEP_COMPUTER_UPS			"sleep-computer-ups"
+#define GPM_SETTINGS_SLEEP_DISPLAY_AC			"sleep-display-ac"
+#define GPM_SETTINGS_SLEEP_DISPLAY_BATT			"sleep-display-battery"
+#define GPM_SETTINGS_SLEEP_DISPLAY_UPS			"sleep-display-ups"
 
 /* ui */
-#define GPM_CONF_UI_ICON_POLICY			GPM_CONF_DIR "/ui/icon_policy"
-#define GPM_CONF_UI_ENABLE_SOUND		GPM_CONF_DIR "/ui/enable_sound"
-#define GPM_CONF_UI_SHOW_ACTIONS		GPM_CONF_DIR "/ui/show_actions"
+#define GPM_SETTINGS_ICON_POLICY			"icon-policy"
+#define GPM_SETTINGS_ENABLE_SOUND			"enable-sound"
+#define GPM_SETTINGS_SHOW_ACTIONS			"show-actions"
 
 /* new info binary */
-#define GPM_CONF_INFO_HISTORY_TIME		"/apps/gnome-power-manager/info/history_time"
-#define GPM_CONF_INFO_HISTORY_TYPE		"/apps/gnome-power-manager/info/history_type"
-#define GPM_CONF_INFO_HISTORY_GRAPH_SMOOTH	"/apps/gnome-power-manager/info/history_graph_smooth"
-#define GPM_CONF_INFO_HISTORY_GRAPH_POINTS	"/apps/gnome-power-manager/info/history_graph_points"
-#define GPM_CONF_INFO_STATS_TYPE		"/apps/gnome-power-manager/info/stats_type"
-#define GPM_CONF_INFO_STATS_GRAPH_SMOOTH	"/apps/gnome-power-manager/info/stats_graph_smooth"
-#define GPM_CONF_INFO_STATS_GRAPH_POINTS	"/apps/gnome-power-manager/info/stats_graph_points"
-#define GPM_CONF_INFO_PAGE_NUMBER		"/apps/gnome-power-manager/info/page_number"
-#define GPM_CONF_INFO_LAST_DEVICE		"/apps/gnome-power-manager/info/last_device"
+#define GPM_SETTINGS_INFO_HISTORY_TIME			"info-history-time"
+#define GPM_SETTINGS_INFO_HISTORY_TYPE			"info-history-type"
+#define GPM_SETTINGS_INFO_HISTORY_GRAPH_SMOOTH		"info-history-graph-smooth"
+#define GPM_SETTINGS_INFO_HISTORY_GRAPH_POINTS		"info-history-graph-points"
+#define GPM_SETTINGS_INFO_STATS_TYPE			"info-stats-type"
+#define GPM_SETTINGS_INFO_STATS_GRAPH_SMOOTH		"info-stats-graph-smooth"
+#define GPM_SETTINGS_INFO_STATS_GRAPH_POINTS		"info-stats-graph-points"
+#define GPM_SETTINGS_INFO_PAGE_NUMBER			"info-page-number"
+#define GPM_SETTINGS_INFO_LAST_DEVICE			"info-last-device"
 
 /* gnome-screensaver */
-#define GS_CONF_DIR				"/apps/gnome-screensaver"
-#define GS_PREF_LOCK_ENABLED			GS_CONF_DIR "/lock_enabled"
-
-/* gnome-session */
-#define GPM_CONF_IDLE_DELAY			"/desktop/gnome/session/idle_delay"
+#define GS_CONF_DIR					"/apps/gnome-screensaver"
+#define GS_CONF_PREF_LOCK_ENABLED			GS_CONF_DIR "/lock_enabled"
 
 typedef enum {
 	GPM_ICON_POLICY_PRESENT,
diff --git a/src/gpm-control.c b/src/gpm-control.c
index 825b164..91857c4 100644
--- a/src/gpm-control.c
+++ b/src/gpm-control.c
@@ -56,6 +56,7 @@
 struct GpmControlPrivate
 {
 	GConfClient		*conf;
+	GSettings		*settings;
 	UpClient		*client;
 };
 
@@ -103,7 +104,7 @@ gpm_control_shutdown (GpmControl *control, GError **error)
 /**
  * gpm_control_get_lock_policy:
  * @control: This class instance
- * @policy: The policy gconf string.
+ * @policy: The policy string.
  *
  * This function finds out if we should lock the screen when we do an
  * action. It is required as we can either use the gnome-screensaver policy
@@ -116,15 +117,15 @@ gpm_control_get_lock_policy (GpmControl *control, const gchar *policy)
 {
 	gboolean do_lock;
 	gboolean use_ss_setting;
-	/* This allows us to over-ride the custom lock settings set in gconf
+	/* This allows us to over-ride the custom lock settings set
 	   with a system default set in gnome-screensaver.
 	   See bug #331164 for all the juicy details. :-) */
-	use_ss_setting = gconf_client_get_bool (control->priv->conf, GPM_CONF_LOCK_USE_SCREENSAVER, NULL);
+	use_ss_setting = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_USE_SCREENSAVER);
 	if (use_ss_setting) {
-		do_lock = gconf_client_get_bool (control->priv->conf, GS_PREF_LOCK_ENABLED, NULL);
+		do_lock = gconf_client_get_bool (control->priv->conf, GS_CONF_PREF_LOCK_ENABLED, NULL);
 		egg_debug ("Using ScreenSaver settings (%i)", do_lock);
 	} else {
-		do_lock = gconf_client_get_bool (control->priv->conf, policy, NULL);
+		do_lock = g_settings_get_boolean (control->priv->settings, policy);
 		egg_debug ("Using custom locking settings (%i)", do_lock);
 	}
 	return do_lock;
@@ -157,20 +158,20 @@ gpm_control_suspend (GpmControl *control, GError **error)
 	}
 
 	/* we should perhaps lock keyrings when sleeping #375681 */
-	lock_gnome_keyring = gconf_client_get_bool (control->priv->conf, GPM_CONF_LOCK_GNOME_KEYRING_SUSPEND, NULL);
+	lock_gnome_keyring = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_SUSPEND);
 	if (lock_gnome_keyring) {
 		keyres = gnome_keyring_lock_all_sync ();
 		if (keyres != GNOME_KEYRING_RESULT_OK)
 			egg_warning ("could not lock keyring");
 	}
 
-	do_lock = gpm_control_get_lock_policy (control, GPM_CONF_LOCK_ON_SUSPEND);
+	do_lock = gpm_control_get_lock_policy (control, GPM_SETTINGS_LOCK_ON_SUSPEND);
 	if (do_lock) {
 		throttle_cookie = gpm_screensaver_add_throttle (screensaver, "suspend");
 		gpm_screensaver_lock (screensaver);
 	}
 
-	nm_sleep = gconf_client_get_bool (control->priv->conf, GPM_CONF_NETWORKMANAGER_SLEEP, NULL);
+	nm_sleep = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_NETWORKMANAGER_SLEEP);
 	if (nm_sleep)
 		gpm_networkmanager_sleep ();
 
@@ -189,7 +190,7 @@ gpm_control_suspend (GpmControl *control, GError **error)
 			gpm_screensaver_remove_throttle (screensaver, throttle_cookie);
 	}
 
-	nm_sleep = gconf_client_get_bool (control->priv->conf, GPM_CONF_NETWORKMANAGER_SLEEP, NULL);
+	nm_sleep = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_NETWORKMANAGER_SLEEP);
 	if (nm_sleep)
 		gpm_networkmanager_wake ();
 
@@ -225,7 +226,7 @@ gpm_control_hibernate (GpmControl *control, GError **error)
 	}
 
 	/* we should perhaps lock keyrings when sleeping #375681 */
-	lock_gnome_keyring = gconf_client_get_bool (control->priv->conf, GPM_CONF_LOCK_GNOME_KEYRING_HIBERNATE, NULL);
+	lock_gnome_keyring = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_HIBERNATE);
 	if (lock_gnome_keyring) {
 		keyres = gnome_keyring_lock_all_sync ();
 		if (keyres != GNOME_KEYRING_RESULT_OK) {
@@ -233,13 +234,13 @@ gpm_control_hibernate (GpmControl *control, GError **error)
 		}
 	}
 
-	do_lock = gpm_control_get_lock_policy (control, GPM_CONF_LOCK_ON_HIBERNATE);
+	do_lock = gpm_control_get_lock_policy (control, GPM_SETTINGS_LOCK_ON_HIBERNATE);
 	if (do_lock) {
 		throttle_cookie = gpm_screensaver_add_throttle (screensaver, "hibernate");
 		gpm_screensaver_lock (screensaver);
 	}
 
-	nm_sleep = gconf_client_get_bool (control->priv->conf, GPM_CONF_NETWORKMANAGER_SLEEP, NULL);
+	nm_sleep = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_NETWORKMANAGER_SLEEP);
 	if (nm_sleep)
 		gpm_networkmanager_sleep ();
 
@@ -257,7 +258,7 @@ gpm_control_hibernate (GpmControl *control, GError **error)
 			gpm_screensaver_remove_throttle (screensaver, throttle_cookie);
 	}
 
-	nm_sleep = gconf_client_get_bool (control->priv->conf, GPM_CONF_NETWORKMANAGER_SLEEP, NULL);
+	nm_sleep = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_NETWORKMANAGER_SLEEP);
 	if (nm_sleep)
 		gpm_networkmanager_wake ();
 
@@ -279,6 +280,7 @@ gpm_control_finalize (GObject *object)
 	control = GPM_CONTROL (object);
 
 	g_object_unref (control->priv->conf);
+	g_object_unref (control->priv->settings);
 	g_object_unref (control->priv->client);
 
 	g_return_if_fail (control->priv != NULL);
@@ -326,6 +328,7 @@ gpm_control_init (GpmControl *control)
 	control->priv = GPM_CONTROL_GET_PRIVATE (control);
 
 	control->priv->client = up_client_new ();
+	control->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
 	control->priv->conf = gconf_client_get_default ();
 }
 
diff --git a/src/gpm-engine.c b/src/gpm-engine.c
index 558e9db..6c3c4f2 100644
--- a/src/gpm-engine.c
+++ b/src/gpm-engine.c
@@ -24,7 +24,6 @@
 #include <string.h>
 #include <glib.h>
 #include <glib/gi18n.h>
-#include <gconf/gconf-client.h>
 #include <libupower-glib/upower.h>
 
 #include "egg-debug.h"
@@ -44,7 +43,7 @@ static void     gpm_engine_finalize   (GObject	  *object);
 
 struct GpmEnginePrivate
 {
-	GConfClient		*conf;
+	GSettings		*settings;
 	UpClient		*client;
 	UpDevice		*battery_composite;
 	GPtrArray		*array;
@@ -509,28 +508,20 @@ gpm_engine_recalculate_state (GpmEngine *engine)
 }
 
 /**
- * gpm_engine_conf_key_changed_cb:
+ * gpm_engine_settings_key_changed_cb:
  **/
 static void
-gpm_engine_conf_key_changed_cb (GConfClient *conf, guint cnxn_id, GConfEntry *entry, GpmEngine *engine)
+gpm_engine_settings_key_changed_cb (GSettings *settings, const gchar *key, GpmEngine *engine)
 {
-	GConfValue *value;
 	gchar *icon_policy;
 
-	if (entry == NULL)
-		return;
-	value = gconf_entry_get_value (entry);
-	if (value == NULL)
-		return;
-
-	if (strcmp (entry->key, GPM_CONF_USE_TIME_POLICY) == 0) {
-
-		engine->priv->use_time_primary = gconf_value_get_bool (value);
+	if (g_strcmp0 (key, GPM_SETTINGS_USE_TIME_POLICY) == 0) {
+		engine->priv->use_time_primary = g_settings_get_boolean (settings, key);
 
-	} else if (strcmp (entry->key, GPM_CONF_UI_ICON_POLICY) == 0) {
+	} else if (g_strcmp0 (key, GPM_SETTINGS_ICON_POLICY) == 0) {
 
 		/* do we want to display the icon in the tray */
-		icon_policy = gconf_client_get_string (conf, GPM_CONF_UI_ICON_POLICY, NULL);
+		icon_policy = g_settings_get_string (settings, key);
 		engine->priv->icon_policy = gpm_icon_policy_from_string (icon_policy);
 		g_free (icon_policy);
 
@@ -567,8 +558,8 @@ gpm_engine_device_check_capacity (GpmEngine *engine, UpDevice *device)
 	if (capacity < 1.0f)
 		return FALSE;
 
-	/* only emit this if specified in gconf */
-	ret = gconf_client_get_bool (engine->priv->conf, GPM_CONF_NOTIFY_LOW_CAPACITY, NULL);
+	/* only emit this if specified in the settings */
+	ret = g_settings_get_boolean (engine->priv->settings, GPM_SETTINGS_NOTIFY_LOW_CAPACITY);
 	if (ret) {
 		egg_debug ("** EMIT: low-capacity");
 		g_signal_emit (engine, signals [LOW_CAPACITY], 0, device);
@@ -1123,10 +1114,9 @@ gpm_engine_init (GpmEngine *engine)
 	g_signal_connect (engine->priv->client, "device-changed",
 			  G_CALLBACK (gpm_engine_device_changed_cb), engine);
 
-	engine->priv->conf = gconf_client_get_default ();
-	gconf_client_notify_add (engine->priv->conf, GPM_CONF_DIR,
-				 (GConfClientNotifyFunc) gpm_engine_conf_key_changed_cb,
-				 engine, NULL, NULL);
+	engine->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+	g_signal_connect (engine->priv->settings, "changed",
+			  G_CALLBACK (gpm_engine_settings_key_changed_cb), engine);
 
 	engine->priv->phone = gpm_phone_new ();
 	g_signal_connect (engine->priv->phone, "device-added",
@@ -1150,22 +1140,22 @@ gpm_engine_init (GpmEngine *engine)
 	engine->priv->previous_summary = NULL;
 
 	/* do we want to display the icon in the tray */
-	icon_policy = gconf_client_get_string (engine->priv->conf, GPM_CONF_UI_ICON_POLICY, NULL);
+	icon_policy = g_settings_get_string (engine->priv->settings, GPM_SETTINGS_ICON_POLICY);
 	engine->priv->icon_policy = gpm_icon_policy_from_string (icon_policy);
 	g_free (icon_policy);
 
 	/* get percentage policy */
-	engine->priv->low_percentage = gconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_PERCENTAGE_LOW, NULL);
-	engine->priv->critical_percentage = gconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_PERCENTAGE_CRITICAL, NULL);
-	engine->priv->action_percentage = gconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_PERCENTAGE_ACTION, NULL);
+	engine->priv->low_percentage = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_PERCENTAGE_LOW);
+	engine->priv->critical_percentage = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_PERCENTAGE_CRITICAL);
+	engine->priv->action_percentage = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_PERCENTAGE_ACTION);
 
 	/* get time policy */
-	engine->priv->low_time = gconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_TIME_LOW, NULL);
-	engine->priv->critical_time = gconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_TIME_CRITICAL, NULL);
-	engine->priv->action_time = gconf_client_get_int (engine->priv->conf, GPM_CONF_THRESH_TIME_ACTION, NULL);
+	engine->priv->low_time = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_TIME_LOW);
+	engine->priv->critical_time = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_TIME_CRITICAL);
+	engine->priv->action_time = g_settings_get_int (engine->priv->settings, GPM_SETTINGS_TIME_ACTION);
 
 	/* we can disable this if the time remaining is inaccurate or just plain wrong */
-	engine->priv->use_time_primary = gconf_client_get_bool (engine->priv->conf, GPM_CONF_USE_TIME_POLICY, NULL);
+	engine->priv->use_time_primary = g_settings_get_boolean (engine->priv->settings, GPM_SETTINGS_USE_TIME_POLICY);
 	if (engine->priv->use_time_primary)
 		egg_debug ("Using per-time notification policy");
 	else
diff --git a/src/gpm-manager.c b/src/gpm-manager.c
index d6b5eef..e75afd5 100644
--- a/src/gpm-manager.c
+++ b/src/gpm-manager.c
@@ -38,7 +38,6 @@
 #include <gtk/gtk.h>
 #include <dbus/dbus-glib.h>
 #include <dbus/dbus-glib-lowlevel.h>
-#include <gconf/gconf-client.h>
 #include <canberra-gtk.h>
 #include <libupower-glib/upower.h>
 #include <libnotify/notify.h>
@@ -76,7 +75,7 @@ static void     gpm_manager_finalize	(GObject	 *object);
 struct GpmManagerPrivate
 {
 	GpmButton		*button;
-	GConfClient		*conf;
+	GSettings		*settings;
 	GpmDisks		*disks;
 	GpmDpms			*dpms;
 	GpmIdle			*idle;
@@ -196,7 +195,7 @@ gpm_manager_play_loop_start (GpmManager *manager, GpmManagerSound action, gboole
 	gboolean ret;
 	gint retval;
 
-	ret = gconf_client_get_bool (manager->priv->conf, GPM_CONF_UI_ENABLE_SOUND, NULL);
+	ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_ENABLE_SOUND);
 	if (!ret && !force) {
 		egg_debug ("ignoring sound due to policy");
 		return FALSE;
@@ -255,7 +254,7 @@ gpm_manager_play (GpmManager *manager, GpmManagerSound action, gboolean force)
 	gboolean ret;
 	gint retval;
 
-	ret = gconf_client_get_bool (manager->priv->conf, GPM_CONF_UI_ENABLE_SOUND, NULL);
+	ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_ENABLE_SOUND);
 	if (!ret && !force) {
 		egg_debug ("ignoring sound due to policy");
 		return FALSE;
@@ -349,11 +348,11 @@ gpm_manager_sync_policy_sleep (GpmManager *manager)
 	guint sleep_computer;
 
 	if (!manager->priv->on_battery) {
-		sleep_computer = gconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC, NULL);
-		sleep_display = gconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC, NULL);
+		sleep_computer = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SLEEP_COMPUTER_AC);
+		sleep_display = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SLEEP_DISPLAY_AC);
 	} else {
-		sleep_computer = gconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT, NULL);
-		sleep_display = gconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT, NULL);
+		sleep_computer = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SLEEP_COMPUTER_BATT);
+		sleep_display = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SLEEP_DISPLAY_BATT);
 	}
 
 	/* set the new sleep (inactivity) value */
@@ -380,7 +379,7 @@ gpm_manager_blank_screen (GpmManager *manager, GError **noerror)
 	GError *error = NULL;
 
 	do_lock = gpm_control_get_lock_policy (manager->priv->control,
-					       GPM_CONF_LOCK_ON_BLANK_SCREEN);
+					       GPM_SETTINGS_LOCK_ON_BLANK_SCREEN);
 	if (do_lock) {
 		if (!gpm_screensaver_lock (manager->priv->screensaver))
 			egg_debug ("Could not lock screen via gnome-screensaver");
@@ -416,7 +415,7 @@ gpm_manager_unblank_screen (GpmManager *manager, GError **noerror)
 		ret = FALSE;
 	}
 
-	do_lock = gpm_control_get_lock_policy (manager->priv->control, GPM_CONF_LOCK_ON_BLANK_SCREEN);
+	do_lock = gpm_control_get_lock_policy (manager->priv->control, GPM_SETTINGS_LOCK_ON_BLANK_SCREEN);
 	if (do_lock)
 		gpm_screensaver_poke (manager->priv->screensaver);
 	return ret;
@@ -547,7 +546,7 @@ gpm_manager_sleep_failure_response_cb (GtkDialog *dialog, gint response_id, GpmM
 
 	/* user clicked the help button */
 	if (response_id == GTK_RESPONSE_HELP) {
-		uri = gconf_client_get_string (manager->priv->conf, GPM_CONF_NOTIFY_SLEEP_FAILED_URI, NULL);
+		uri = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_NOTIFY_SLEEP_FAILED_URI);
 		screen = gdk_screen_get_default();
 		ret = gtk_show_uri (screen, uri, gtk_get_current_event_time (), &error);
 		if (!ret) {
@@ -575,8 +574,8 @@ gpm_manager_sleep_failure (GpmManager *manager, gboolean is_suspend, const gchar
 	const gchar *icon;
 	GtkWidget *dialog;
 
-	/* only show this if specified in gconf */
-	show_sleep_failed = gconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_SLEEP_FAILED, NULL);
+	/* only show this if specified in settings */
+	show_sleep_failed = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_SLEEP_FAILED);
 
 	egg_debug ("sleep failed");
 	gpm_manager_play (manager, GPM_MANAGER_SOUND_SUSPEND_ERROR, TRUE);
@@ -612,7 +611,7 @@ gpm_manager_sleep_failure (GpmManager *manager, gboolean is_suspend, const gchar
 	gtk_window_set_icon_name (GTK_WINDOW(dialog), icon);
 
 	/* show a button? */
-	uri = gconf_client_get_string (manager->priv->conf, GPM_CONF_NOTIFY_SLEEP_FAILED_URI, NULL);
+	uri = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_NOTIFY_SLEEP_FAILED_URI);
 	if (uri != NULL && uri[0] != '\0') {
 		/* TRANSLATORS: button text, visit the suspend help website */
 		gtk_dialog_add_button (GTK_DIALOG (dialog), _("Visit help page"), GTK_RESPONSE_HELP);
@@ -678,7 +677,7 @@ gpm_manager_action_hibernate (GpmManager *manager, const gchar *reason)
  * @policy: The policy that we should do, e.g. "suspend"
  * @reason: The reason we are performing the policy action, e.g. "battery critical"
  *
- * Does one of the policy actions specified in gconf.
+ * Does one of the policy actions specified in the settings.
  **/
 static gboolean
 gpm_manager_perform_policy (GpmManager  *manager, const gchar *policy_key, const gchar *reason)
@@ -690,7 +689,7 @@ gpm_manager_perform_policy (GpmManager  *manager, const gchar *policy_key, const
 	if (gpm_manager_is_inhibit_valid (manager, FALSE, "policy action") == FALSE)
 		return FALSE;
 
-	action = gconf_client_get_string (manager->priv->conf, policy_key, NULL);
+	action = g_settings_get_string (manager->priv->settings, policy_key);
 	egg_debug ("action: %s set to %s (%s)", policy_key, action, reason);
 	policy = gpm_action_policy_from_string (action);
 
@@ -728,7 +727,7 @@ gpm_manager_perform_policy (GpmManager  *manager, const gchar *policy_key, const
  * @manager: This class instance
  *
  * This callback is called when we want to sleep. Use the users
- * preference from gconf, but change it if we can't do the action.
+ * preference from the settings, but change it if we can't do the action.
  **/
 static void
 gpm_manager_idle_do_sleep (GpmManager *manager)
@@ -739,9 +738,9 @@ gpm_manager_idle_do_sleep (GpmManager *manager)
 	GpmActionPolicy policy;
 
 	if (!manager->priv->on_battery)
-		action = gconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_TYPE_AC, NULL);
+		action = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_ACTION_SLEEP_TYPE_AC);
 	else
-		action = gconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_TYPE_BATT, NULL);
+		action = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_ACTION_SLEEP_TYPE_BATT);
 	policy = gpm_action_policy_from_string (action);
 
 	if (policy == GPM_ACTION_POLICY_NOTHING) {
@@ -839,13 +838,13 @@ gpm_manager_lid_button_pressed (GpmManager *manager, gboolean pressed)
 
 	if (!manager->priv->on_battery) {
 		egg_debug ("Performing AC policy");
-		gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_LID_AC,
+		gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_LID_AC,
 					    "Lid closed on AC power.");
 		return;
 	}
 
 	egg_debug ("Performing battery policy");
-	gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_LID_BATT,
+	gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_LID_BATT,
 				    "Lid closed on battery power.");
 }
 
@@ -928,13 +927,13 @@ gpm_manager_button_pressed_cb (GpmButton *button, const gchar *type, GpmManager
 	}
 
 	if (g_strcmp0 (type, GPM_BUTTON_POWER) == 0) {
-		gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_POWER, "The power button has been pressed.");
+		gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_POWER, "The power button has been pressed.");
 	} else if (g_strcmp0 (type, GPM_BUTTON_SLEEP) == 0) {
-		gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_SUSPEND, "The suspend button has been pressed.");
+		gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_SUSPEND, "The suspend button has been pressed.");
 	} else if (g_strcmp0 (type, GPM_BUTTON_SUSPEND) == 0) {
-		gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_SUSPEND, "The suspend button has been pressed.");
+		gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_SUSPEND, "The suspend button has been pressed.");
 	} else if (g_strcmp0 (type, GPM_BUTTON_HIBERNATE) == 0) {
-		gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_HIBERNATE, "The hibernate button has been pressed.");
+		gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_HIBERNATE, "The hibernate button has been pressed.");
 	} else if (g_strcmp0 (type, GPM_BUTTON_LID_OPEN) == 0) {
 		gpm_manager_lid_button_pressed (manager, FALSE);
 	} else if (g_strcmp0 (type, GPM_BUTTON_LID_CLOSED) == 0) {
@@ -973,11 +972,11 @@ gpm_manager_get_spindown_timeout (GpmManager *manager)
 
 	/* get policy */
 	if (!manager->priv->on_battery) {
-		enabled = gconf_client_get_bool (manager->priv->conf, GPM_CONF_DISKS_SPINDOWN_ENABLE_AC, NULL);
-		timeout = gconf_client_get_int (manager->priv->conf, GPM_CONF_DISKS_SPINDOWN_TIMEOUT_AC, NULL);
+		enabled = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_SPINDOWN_ENABLE_AC);
+		timeout = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SPINDOWN_TIMEOUT_AC);
 	} else {
-		enabled = gconf_client_get_bool (manager->priv->conf, GPM_CONF_DISKS_SPINDOWN_ENABLE_BATT, NULL);
-		timeout = gconf_client_get_int (manager->priv->conf, GPM_CONF_DISKS_SPINDOWN_TIMEOUT_BATT, NULL);
+		enabled = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_SPINDOWN_ENABLE_BATT);
+		timeout = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SPINDOWN_TIMEOUT_BATT);
 	}
 	if (!enabled)
 		timeout = 0;
@@ -1048,15 +1047,15 @@ gpm_manager_client_changed_cb (UpClient *client, GpmManager *manager)
 
 	/* We do the lid close on battery action if the ac adapter is removed
 	   when the laptop is closed and on battery. Fixes #331655 */
-	event_when_closed = gconf_client_get_bool (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_WHEN_CLOSED, NULL);
+	event_when_closed = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_SLEEP_WHEN_CLOSED);
 
 	/* We keep track of the lid state so we can do the
 	   lid close on battery action if the ac adapter is removed when the laptop
 	   is closed. Fixes #331655 */
 	if (event_when_closed && on_battery && lid_is_closed) {
-		gpm_manager_perform_policy (manager, GPM_CONF_BUTTON_LID_BATT,
+		gpm_manager_perform_policy (manager, GPM_SETTINGS_BUTTON_LID_BATT,
 					    "The lid has been closed, and the ac adapter "
-					    "removed (and gconf is okay).");
+					    "removed (and GSettings is okay).");
 	}
 }
 
@@ -1076,7 +1075,7 @@ manager_critical_action_do (GpmManager *manager)
 	if (manager->priv->critical_alert_timeout_id)
 		gpm_manager_play_loop_stop (manager);
 
-	gpm_manager_perform_policy (manager, GPM_CONF_ACTIONS_CRITICAL_BATT, "Battery is critically low.");
+	gpm_manager_perform_policy (manager, GPM_SETTINGS_ACTION_CRITICAL_BATT, "Battery is critically low.");
 	return FALSE;
 }
 
@@ -1093,23 +1092,17 @@ gpm_manager_class_init (GpmManagerClass *klass)
 }
 
 /**
- * gpm_conf_gconf_key_changed_cb:
+ * gpm_manager_settings_changed_cb:
  *
- * We might have to do things when the gconf keys change; do them here.
+ * We might have to do things when the keys change; do them here.
  **/
 static void
-gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *entry, GpmManager *manager)
+gpm_manager_settings_changed_cb (GSettings *settings, const gchar *key, GpmManager *manager)
 {
-	GConfValue *value;
-
-	value = gconf_entry_get_value (entry);
-	if (value == NULL)
-		return;
-
-	if (g_strcmp0 (entry->key, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT) == 0 ||
-	    g_strcmp0 (entry->key, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC) == 0 ||
-	    g_strcmp0 (entry->key, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT) == 0 ||
-	    g_strcmp0 (entry->key, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC) == 0)
+	if (g_strcmp0 (key, GPM_SETTINGS_SLEEP_COMPUTER_BATT) == 0 ||
+	    g_strcmp0 (key, GPM_SETTINGS_SLEEP_COMPUTER_AC) == 0 ||
+	    g_strcmp0 (key, GPM_SETTINGS_SLEEP_DISPLAY_BATT) == 0 ||
+	    g_strcmp0 (key, GPM_SETTINGS_SLEEP_DISPLAY_AC) == 0)
 		gpm_manager_sync_policy_sleep (manager);
 }
 
@@ -1154,7 +1147,7 @@ gpm_manager_perhaps_recall_response_cb (GtkDialog *dialog, gint response_id, Gpm
 
 	/* don't show this again */
 	if (response_id == GTK_RESPONSE_CANCEL) {
-		gconf_client_set_bool (manager->priv->conf, GPM_CONF_NOTIFY_PERHAPS_RECALL, FALSE, NULL);
+		g_settings_set_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_PERHAPS_RECALL, FALSE);
 		goto out;
 	}
 
@@ -1232,9 +1225,9 @@ gpm_manager_engine_perhaps_recall_cb (GpmEngine *engine, UpDevice *device, gchar
 	}
 
 	/* already shown, and dismissed */
-	ret = gconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_PERHAPS_RECALL, NULL);
+	ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_PERHAPS_RECALL);
 	if (!ret) {
-		egg_debug ("GConf prevents notification: %s", GPM_CONF_NOTIFY_PERHAPS_RECALL);
+		egg_debug ("GConf prevents notification: %s", GPM_SETTINGS_NOTIFY_PERHAPS_RECALL);
 		return;
 	}
 
@@ -1312,8 +1305,8 @@ gpm_manager_engine_fully_charged_cb (GpmEngine *engine, UpDevice *device, GpmMan
 	guint plural = 1;
 	const gchar *title;
 
-	/* only action this if specified in gconf */
-	ret = gconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_FULLY_CHARGED, NULL);
+	/* only action this if specified in the setings */
+	ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_FULLY_CHARGED);
 	if (!ret) {
 		egg_debug ("no notification");
 		goto out;
@@ -1366,8 +1359,8 @@ gpm_manager_engine_discharging_cb (GpmEngine *engine, UpDevice *device, GpmManag
 	GIcon *icon = NULL;
 	const gchar *kind_desc;
 
-	/* only action this if specified in gconf */
-	ret = gconf_client_get_bool (manager->priv->conf, GPM_CONF_NOTIFY_DISCHARGING, NULL);
+	/* only action this if specified in the settings */
+	ret = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_NOTIFY_DISCHARGING);
 	if (!ret) {
 		egg_debug ("no notification");
 		goto out;
@@ -1614,7 +1607,7 @@ gpm_manager_engine_charge_critical_cb (GpmEngine *engine, UpDevice *device, GpmM
 		}
 
 		/* we have to do different warnings depending on the policy */
-		action = gconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_CRITICAL_BATT, NULL);
+		action = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_ACTION_CRITICAL_BATT);
 		policy = gpm_action_policy_from_string (action);
 
 		/* use different text for different actions */
@@ -1772,7 +1765,7 @@ gpm_manager_engine_charge_action_cb (GpmEngine *engine, UpDevice *device, GpmMan
 		title = _("Laptop battery critically low");
 
 		/* we have to do different warnings depending on the policy */
-		action = gconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_CRITICAL_BATT, NULL);
+		action = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_ACTION_CRITICAL_BATT);
 		policy = gpm_action_policy_from_string (action);
 
 		/* use different text for different actions */
@@ -1810,7 +1803,7 @@ gpm_manager_engine_charge_action_cb (GpmEngine *engine, UpDevice *device, GpmMan
 		title = _("UPS critically low");
 
 		/* we have to do different warnings depending on the policy */
-		action = gconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_CRITICAL_UPS, NULL);
+		action = g_settings_get_string (manager->priv->settings, GPM_SETTINGS_ACTION_CRITICAL_UPS);
 		policy = gpm_action_policy_from_string (action);
 
 		/* use different text for different actions */
@@ -1943,7 +1936,9 @@ gpm_manager_init (GpmManager *manager)
 	manager->priv->notification_discharging = NULL;
 	manager->priv->notification_fully_charged = NULL;
 	manager->priv->disks = gpm_disks_new ();
-	manager->priv->conf = gconf_client_get_default ();
+	manager->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+	g_signal_connect (manager->priv->settings, "changed",
+			  G_CALLBACK (gpm_manager_settings_changed_cb), manager);
 	manager->priv->client = up_client_new ();
 	g_signal_connect (manager->priv->client, "changed",
 			  G_CALLBACK (gpm_manager_client_changed_cb), manager);
@@ -1951,16 +1946,9 @@ gpm_manager_init (GpmManager *manager)
 	/* use libnotify */
 	notify_init (GPM_NAME);
 
-	/* watch gnome-power-manager keys */
-	gconf_client_add_dir (manager->priv->conf, GPM_CONF_DIR,
-			      GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
-	gconf_client_notify_add (manager->priv->conf, GPM_CONF_DIR,
-				 (GConfClientNotifyFunc) gpm_conf_gconf_key_changed_cb,
-				 manager, NULL, NULL);
-
 	/* check to see if the user has installed the schema properly */
-	version = gconf_client_get_int (manager->priv->conf, GPM_CONF_SCHEMA_VERSION, NULL);
-	if (version != GPM_CONF_SCHEMA_ID) {
+	version = g_settings_get_int (manager->priv->settings, GPM_SETTINGS_SCHEMA_VERSION);
+	if (version != GPM_SETTINGS_SCHEMA_ID) {
 		gpm_manager_notify (manager, &manager->priv->notification_general,
 				    /* TRANSLATORS: there was in install problem */
 				    _("Install problem!"),
@@ -1970,7 +1958,7 @@ gpm_manager_init (GpmManager *manager)
 				    GPM_MANAGER_NOTIFY_TIMEOUT_LONG,
 				    GTK_STOCK_DIALOG_WARNING,
 				    NOTIFY_URGENCY_NORMAL);
-		egg_error ("no gconf schema installed!");
+		egg_error ("no GSettings schema installed!");
 	}
 
 	/* coldplug so we are in the correct state at startup */
@@ -2004,7 +1992,7 @@ gpm_manager_init (GpmManager *manager)
 			  G_CALLBACK (gpm_manager_idle_changed_cb), manager);
 
 	/* set up the check_type_cpu, so we can disable the CPU load check */
-	check_type_cpu = gconf_client_get_bool (manager->priv->conf, GPM_CONF_IDLE_CHECK_CPU, NULL);
+	check_type_cpu = g_settings_get_boolean (manager->priv->settings, GPM_SETTINGS_IDLE_CHECK_CPU);
 	gpm_idle_set_check_cpu (manager->priv->idle, check_type_cpu);
 
 	manager->priv->dpms = gpm_dpms_new ();
@@ -2083,7 +2071,7 @@ gpm_manager_finalize (GObject *object)
 	if (manager->priv->critical_alert_timeout_id != 0)
 		g_source_remove (manager->priv->critical_alert_timeout_id);
 
-	g_object_unref (manager->priv->conf);
+	g_object_unref (manager->priv->settings);
 	g_object_unref (manager->priv->disks);
 	g_object_unref (manager->priv->dpms);
 	g_object_unref (manager->priv->idle);
diff --git a/src/gpm-phone.c b/src/gpm-phone.c
index bbe8583..5773f74 100644
--- a/src/gpm-phone.c
+++ b/src/gpm-phone.c
@@ -26,7 +26,6 @@
 #include <glib/gi18n.h>
 #include <dbus/dbus-glib.h>
 
-#include <gconf/gconf-client.h>
 #include "gpm-phone.h"
 #include "egg-debug.h"
 #include "gpm-marshal.h"
diff --git a/src/gpm-prefs-core.c b/src/gpm-prefs-core.c
index f08e8d6..f478482 100644
--- a/src/gpm-prefs-core.c
+++ b/src/gpm-prefs-core.c
@@ -30,7 +30,6 @@
 #include <dbus/dbus-glib.h>
 #include <math.h>
 #include <string.h>
-#include <gconf/gconf-client.h>
 #include <libupower-glib/upower.h>
 
 #include "egg-debug.h"
@@ -58,8 +57,7 @@ struct GpmPrefsPrivate
 	gboolean		 can_shutdown;
 	gboolean		 can_suspend;
 	gboolean		 can_hibernate;
-	guint			 idle_delay;
-	GConfClient		*conf;
+	GSettings		*settings;
 	EggConsoleKit		*console;
 };
 
@@ -142,8 +140,8 @@ gpm_prefs_icon_radio_cb (GtkWidget *widget, GpmPrefs *prefs)
 
 	policy = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "policy"));
 	str = gpm_icon_policy_to_string (policy);
-	egg_debug ("Changing %s to %s", GPM_CONF_UI_ICON_POLICY, str);
-	gconf_client_set_string (prefs->priv->conf, GPM_CONF_UI_ICON_POLICY, str, NULL);
+	egg_debug ("Changing %s to %s", GPM_SETTINGS_ICON_POLICY, str);
+	g_settings_set_string (prefs->priv->settings, GPM_SETTINGS_ICON_POLICY, str);
 }
 
 /**
@@ -154,59 +152,7 @@ gpm_prefs_icon_radio_cb (GtkWidget *widget, GpmPrefs *prefs)
 static gchar *
 gpm_prefs_format_percentage_cb (GtkScale *scale, gdouble value)
 {
-	return g_strdup_printf ("%.0f%%", value);
-}
-
-/**
- * gpm_prefs_brightness_slider_changed_cb:
- * @range: The GtkRange object
- * @gpm_pref_key: The GConf key for this preference setting.
- **/
-static void
-gpm_prefs_brightness_slider_changed_cb (GtkRange *range, GpmPrefs *prefs)
-{
-	gdouble value;
-	gchar *gpm_pref_key;
-
-	value = gtk_range_get_value (range);
-	gpm_pref_key = (char *) g_object_get_data (G_OBJECT (range), "conf_key");
-
-	g_object_set_data (G_OBJECT (range), "conf_key", (gpointer) gpm_pref_key);
-	egg_debug ("Changing %s to %i", gpm_pref_key, (int) value);
-	gconf_client_set_int (prefs->priv->conf, gpm_pref_key, (gint) value, NULL);
-}
-
-/**
- * gpm_prefs_setup_brightness_slider:
- * @prefs: This prefs class instance
- * @widget_name: The GtkWidget name
- * @gpm_pref_key: The GConf key for this preference setting.
- **/
-static GtkWidget *
-gpm_prefs_setup_brightness_slider (GpmPrefs *prefs, const gchar *widget_name, const gchar *gpm_pref_key)
-{
-	GtkWidget *widget;
-	int value;
-	gboolean is_writable;
-
-	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
-
-	g_signal_connect (G_OBJECT (widget), "format-value",
-			  G_CALLBACK (gpm_prefs_format_percentage_cb), NULL);
-
-	value = gconf_client_get_int (prefs->priv->conf, gpm_pref_key, NULL);
-	is_writable = gconf_client_key_is_writable (prefs->priv->conf, gpm_pref_key, NULL);
-
-	gtk_widget_set_sensitive (widget, is_writable);
-
-	gtk_range_set_value (GTK_RANGE (widget), value);
-
-	g_object_set_data (G_OBJECT (widget), "conf_key", (gpointer) gpm_pref_key);
-
-	g_signal_connect (G_OBJECT (widget), "value-changed",
-			  G_CALLBACK (gpm_prefs_brightness_slider_changed_cb),
-			  prefs);
-	return widget;
+	return g_strdup_printf ("%.0f%%", value * 100.0f);
 }
 
 /**
@@ -222,13 +168,13 @@ gpm_prefs_action_combo_changed_cb (GtkWidget *widget, GpmPrefs *prefs)
 	guint active;
 
 	actions = (const GpmActionPolicy *) g_object_get_data (G_OBJECT (widget), "actions");
-	gpm_pref_key = (const gchar *) g_object_get_data (G_OBJECT (widget), "conf_key");
+	gpm_pref_key = (const gchar *) g_object_get_data (G_OBJECT (widget), "settings_key");
 
 	active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
 	policy = actions[active];
 	action = gpm_action_policy_to_string (policy);
 	egg_debug ("Changing %s to %s", gpm_pref_key, action);
-	gconf_client_set_string (prefs->priv->conf, gpm_pref_key, action, NULL);
+	g_settings_set_string (prefs->priv->settings, gpm_pref_key, action);
 }
 
 /**
@@ -243,13 +189,13 @@ gpm_prefs_action_time_changed_cb (GtkWidget *widget, GpmPrefs *prefs)
 	guint active;
 
 	values = (const gint *) g_object_get_data (G_OBJECT (widget), "values");
-	gpm_pref_key = (const gchar *) g_object_get_data (G_OBJECT (widget), "conf_key");
+	gpm_pref_key = (const gchar *) g_object_get_data (G_OBJECT (widget), "settings_key");
 
 	active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
 	value = values[active];
 
 	egg_debug ("Changing %s to %i", gpm_pref_key, value);
-	gconf_client_set_int (prefs->priv->conf, gpm_pref_key, value, NULL);
+	g_settings_set_int (prefs->priv->settings, gpm_pref_key, value);
 }
 
 /**
@@ -304,14 +250,14 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
 	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
 	gpm_prefs_set_combo_simple_text (widget);
 
-	value_txt = gconf_client_get_string (prefs->priv->conf, gpm_pref_key, NULL);
-	is_writable = gconf_client_key_is_writable (prefs->priv->conf, gpm_pref_key, NULL);
+	value_txt = g_settings_get_string (prefs->priv->settings, gpm_pref_key);
+	is_writable = g_settings_is_writable (prefs->priv->settings, gpm_pref_key);
 	value = gpm_action_policy_from_string (value_txt);
 
 	gtk_widget_set_sensitive (widget, is_writable);
 
 	array = g_ptr_array_new ();
-	g_object_set_data (G_OBJECT (widget), "conf_key", (gpointer) gpm_pref_key);
+	g_object_set_data (G_OBJECT (widget), "settings_key", (gpointer) gpm_pref_key);
 	g_signal_connect (G_OBJECT (widget), "changed",
 			  G_CALLBACK (gpm_prefs_action_combo_changed_cb), prefs);
 
@@ -345,7 +291,7 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
 				g_ptr_array_add (array, GINT_TO_POINTER (policy));
 			}
 		} else {
-			egg_warning ("Unknown action read from conf: %i", policy);
+			egg_warning ("Unknown action read from settings: %i", policy);
 		}
 	}
 
@@ -389,11 +335,11 @@ gpm_prefs_setup_time_combo (GpmPrefs *prefs, const gchar *widget_name,
 	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
 	gpm_prefs_set_combo_simple_text (widget);
 
-	value = gconf_client_get_int (prefs->priv->conf, gpm_pref_key, NULL);
-	is_writable = gconf_client_key_is_writable (prefs->priv->conf, gpm_pref_key, NULL);
+	value = g_settings_get_int (prefs->priv->settings, gpm_pref_key);
+	is_writable = g_settings_is_writable (prefs->priv->settings, gpm_pref_key);
 	gtk_widget_set_sensitive (widget, is_writable);
 
-	g_object_set_data (G_OBJECT (widget), "conf_key", (gpointer) gpm_pref_key);
+	g_object_set_data (G_OBJECT (widget), "settings_key", (gpointer) gpm_pref_key);
 	g_object_set_data (G_OBJECT (widget), "values", (gpointer) values);
 
 	/* add each time */
@@ -419,55 +365,6 @@ gpm_prefs_setup_time_combo (GpmPrefs *prefs, const gchar *widget_name,
 }
 
 /**
- * gpm_prefs_checkbox_lock_cb:
- * @widget: The GtkWidget object
- * @gpm_pref_key: The GConf key for this preference setting.
- **/
-static void
-gpm_prefs_checkbox_lock_cb (GtkWidget *widget, GpmPrefs *prefs)
-{
-	gboolean checked;
-	gchar *gpm_pref_key;
-
-	checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-
-	gpm_pref_key = (char *) g_object_get_data (G_OBJECT (widget), "conf_key");
-	egg_debug ("Changing %s to %i", gpm_pref_key, checked);
-	gconf_client_set_bool (prefs->priv->conf, gpm_pref_key, checked, NULL);
-}
-
-/**
- * gpm_prefs_setup_checkbox:
- * @prefs: This prefs class instance
- * @widget_name: The GtkWidget name
- * @gpm_pref_key: The GConf key for this preference setting.
- **/
-static GtkWidget *
-gpm_prefs_setup_checkbox (GpmPrefs *prefs, const gchar *widget_name, const gchar *gpm_pref_key)
-{
-	gboolean checked;
-	GtkWidget *widget;
-
-	egg_debug ("Setting up %s", gpm_pref_key);
-
-	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
-
-	checked = gconf_client_get_bool (prefs->priv->conf, gpm_pref_key, NULL);
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
-
-	g_object_set_data (G_OBJECT (widget), "conf_key", (gpointer) gpm_pref_key);
-
-	/* manually do the callback in case we hide elements in the cb */
-	gpm_prefs_checkbox_lock_cb (widget, prefs);
-
-	/* setup after set */
-	g_signal_connect (widget, "clicked",
-			  G_CALLBACK (gpm_prefs_checkbox_lock_cb), prefs);
-
-	return widget;
-}
-
-/**
  * gpm_prefs_close_cb:
  * @widget: The GtkWidget object
  * @prefs: This prefs class instance
@@ -492,41 +389,6 @@ gpm_prefs_delete_event_cb (GtkWidget *widget, GdkEvent *event, GpmPrefs *prefs)
 	return FALSE;
 }
 
-/**
- * gpm_conf_gconf_key_changed_cb:
- *
- * We might have to do things when the gconf keys change; do them here.
- **/
-static void
-gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *entry, GpmPrefs *prefs)
-{
-	GConfValue *value;
-	gint brightness;
-	GtkWidget *widget;
-	gboolean enabled;
-
-	value = gconf_entry_get_value (entry);
-	if (value == NULL)
-		return;
-
-	if (g_strcmp0 (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC) == 0) {
-		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hscale_ac_brightness"));
-		brightness = gconf_value_get_int (value);
-		gtk_range_set_value (GTK_RANGE (widget), brightness);
-	}
-
-	if (g_strcmp0 (entry->key, GPM_CONF_DISKS_SPINDOWN_ENABLE_AC) == 0) {
-		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_ac_spindown"));
-		enabled = gconf_value_get_bool (value);
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), enabled);
-
-	} else if (g_strcmp0 (entry->key, GPM_CONF_DISKS_SPINDOWN_ENABLE_BATT) == 0) {
-		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_spindown"));
-		enabled = gconf_value_get_bool (value);
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), enabled);
-	}
-}
-
 /** setup the notification page */
 static void
 prefs_setup_notification (GpmPrefs *prefs)
@@ -539,7 +401,7 @@ prefs_setup_notification (GpmPrefs *prefs)
 	GtkWidget *radiobutton_icon_never;
 	gboolean is_writable;
 
-	icon_policy_str = gconf_client_get_string (prefs->priv->conf, GPM_CONF_UI_ICON_POLICY, NULL);
+	icon_policy_str = g_settings_get_string (prefs->priv->settings, GPM_SETTINGS_ICON_POLICY);
 	icon_policy = gpm_icon_policy_from_string (icon_policy_str);
 	g_free (icon_policy_str);
 
@@ -552,7 +414,7 @@ prefs_setup_notification (GpmPrefs *prefs)
 	radiobutton_icon_never = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder,
 					     "radiobutton_notification_never"));
 
-	is_writable = gconf_client_key_is_writable (prefs->priv->conf, GPM_CONF_UI_ICON_POLICY, NULL);
+	is_writable = g_settings_is_writable (prefs->priv->settings, GPM_SETTINGS_ICON_POLICY);
 	gtk_widget_set_sensitive (radiobutton_icon_present, is_writable);
 	gtk_widget_set_sensitive (radiobutton_icon_charge, is_writable);
 	gtk_widget_set_sensitive (radiobutton_icon_low, is_writable);
@@ -576,7 +438,7 @@ prefs_setup_notification (GpmPrefs *prefs)
 	g_object_set_data (G_OBJECT (radiobutton_icon_never), "policy",
 			   GINT_TO_POINTER (GPM_ICON_POLICY_NEVER));
 
-	/* only connect the callbacks after we set the value, else the conf
+	/* only connect the callbacks after we set the value, else the settings
 	 * keys gets written to (for a split second), and the icon flickers. */
 	g_signal_connect (radiobutton_icon_present, "clicked",
 			  G_CALLBACK (gpm_prefs_icon_radio_cb), prefs);
@@ -617,23 +479,33 @@ prefs_setup_ac (GpmPrefs *prefs)
 		 -1};
 
 	gpm_prefs_setup_time_combo (prefs, "combobox_ac_computer",
-				    GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC,
+				    GPM_SETTINGS_SLEEP_COMPUTER_AC,
 				    computer_times);
 	gpm_prefs_setup_time_combo (prefs, "combobox_ac_display",
-				    GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC,
+				    GPM_SETTINGS_SLEEP_DISPLAY_AC,
 				    display_times);
 
 	gpm_prefs_setup_action_combo (prefs, "combobox_ac_lid",
-				      GPM_CONF_BUTTON_LID_AC,
+				      GPM_SETTINGS_BUTTON_LID_AC,
 				      button_lid_actions);
 
-	gpm_prefs_setup_brightness_slider (prefs, "hscale_ac_brightness",
-					   GPM_CONF_BACKLIGHT_BRIGHTNESS_AC);
+	/* setup brightness slider */
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hscale_ac_brightness"));
+	g_settings_bind (prefs->priv->settings, GPM_SETTINGS_BRIGHTNESS_AC,
+			 widget, "fill-level",
+			 G_SETTINGS_BIND_DEFAULT);
+	g_signal_connect (G_OBJECT (widget), "format-value",
+			  G_CALLBACK (gpm_prefs_format_percentage_cb), NULL);
 
-	gpm_prefs_setup_checkbox (prefs, "checkbutton_ac_display_dim",
-				  GPM_CONF_BACKLIGHT_IDLE_DIM_AC);
-	gpm_prefs_setup_checkbox (prefs, "checkbutton_ac_spindown",
-				  GPM_CONF_DISKS_SPINDOWN_ENABLE_AC);
+	/* set up the checkboxes */
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_ac_display_dim"));
+	g_settings_bind (prefs->priv->settings, GPM_SETTINGS_IDLE_DIM_AC,
+			 widget, "active",
+			 G_SETTINGS_BIND_DEFAULT);
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_ac_spindown"));
+	g_settings_bind (prefs->priv->settings, GPM_SETTINGS_SPINDOWN_ENABLE_AC,
+			 widget, "active",
+			 G_SETTINGS_BIND_DEFAULT);
 
 	if (prefs->priv->has_button_lid == FALSE) {
 		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hbox_ac_lid"));
@@ -685,10 +557,10 @@ prefs_setup_battery (GpmPrefs *prefs)
 		 -1};
 
 	gpm_prefs_setup_time_combo (prefs, "combobox_battery_computer",
-				    GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT,
+				    GPM_SETTINGS_SLEEP_COMPUTER_BATT,
 				    computer_times);
 	gpm_prefs_setup_time_combo (prefs, "combobox_battery_display",
-				    GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT,
+				    GPM_SETTINGS_SLEEP_DISPLAY_BATT,
 				    display_times);
 
 	if (prefs->priv->has_batteries == FALSE) {
@@ -700,19 +572,25 @@ prefs_setup_battery (GpmPrefs *prefs)
 	}
 
 	gpm_prefs_setup_action_combo (prefs, "combobox_battery_lid",
-				      GPM_CONF_BUTTON_LID_BATT,
+				      GPM_SETTINGS_BUTTON_LID_BATT,
 				      button_lid_actions);
 	gpm_prefs_setup_action_combo (prefs, "combobox_battery_critical",
-				      GPM_CONF_ACTIONS_CRITICAL_BATT,
+				      GPM_SETTINGS_ACTION_CRITICAL_BATT,
 				      battery_critical_actions);
 
-	/* set up the battery reduce checkbox */
-	gpm_prefs_setup_checkbox (prefs, "checkbutton_battery_display_reduce",
-				  GPM_CONF_BACKLIGHT_BATTERY_REDUCE);
-	gpm_prefs_setup_checkbox (prefs, "checkbutton_battery_display_dim",
-				  GPM_CONF_BACKLIGHT_IDLE_DIM_BATT);
-	gpm_prefs_setup_checkbox (prefs, "checkbutton_battery_spindown",
-				  GPM_CONF_DISKS_SPINDOWN_ENABLE_BATT);
+	/* set up the checkboxes */
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_display_reduce"));
+	g_settings_bind (prefs->priv->settings, GPM_SETTINGS_BACKLIGHT_BATTERY_REDUCE,
+			 widget, "active",
+			 G_SETTINGS_BIND_DEFAULT);
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_display_dim"));
+	g_settings_bind (prefs->priv->settings, GPM_SETTINGS_IDLE_DIM_BATT,
+			 widget, "active",
+			 G_SETTINGS_BIND_DEFAULT);
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_spindown"));
+	g_settings_bind (prefs->priv->settings, GPM_SETTINGS_SPINDOWN_ENABLE_BATT,
+			 widget, "active",
+			 G_SETTINGS_BIND_DEFAULT);
 
 	if (prefs->priv->has_button_lid == FALSE) {
 		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hbox_battery_lid"));
@@ -754,10 +632,10 @@ prefs_setup_ups (GpmPrefs *prefs)
 		 -1};
 
 	gpm_prefs_setup_time_combo (prefs, "combobox_ups_computer",
-				    GPM_CONF_TIMEOUT_SLEEP_COMPUTER_UPS,
+				    GPM_SETTINGS_SLEEP_COMPUTER_UPS,
 				    computer_times);
 	gpm_prefs_setup_time_combo (prefs, "combobox_ups_display",
-				    GPM_CONF_TIMEOUT_SLEEP_DISPLAY_UPS,
+				    GPM_SETTINGS_SLEEP_DISPLAY_UPS,
 				    display_times);
 
 	if (prefs->priv->has_ups == FALSE) {
@@ -769,10 +647,10 @@ prefs_setup_ups (GpmPrefs *prefs)
 	}
 
 	gpm_prefs_setup_action_combo (prefs, "combobox_ups_low",
-				      GPM_CONF_ACTIONS_LOW_UPS,
+				      GPM_SETTINGS_ACTION_LOW_UPS,
 				      ups_low_actions);
 	gpm_prefs_setup_action_combo (prefs, "combobox_ups_critical",
-				      GPM_CONF_ACTIONS_CRITICAL_UPS,
+				      GPM_SETTINGS_ACTION_CRITICAL_UPS,
 				      ups_low_actions);
 }
 
@@ -793,10 +671,10 @@ prefs_setup_general (GpmPrefs *prefs)
 				 -1};
 
 	gpm_prefs_setup_action_combo (prefs, "combobox_general_power",
-				      GPM_CONF_BUTTON_POWER,
+				      GPM_SETTINGS_BUTTON_POWER,
 				      power_button_actions);
 	gpm_prefs_setup_action_combo (prefs, "combobox_general_suspend",
-				      GPM_CONF_BUTTON_SUSPEND,
+				      GPM_SETTINGS_BUTTON_SUSPEND,
 				      suspend_button_actions);
 
 	if (prefs->priv->has_button_suspend == FALSE) {
@@ -805,13 +683,13 @@ prefs_setup_general (GpmPrefs *prefs)
 	}
 }
 
+#ifdef HAVE_GCONF_DEFAULTS
 /**
  * gpm_prefs_set_defaults_cb:
  **/
 static void
 gpm_prefs_set_defaults_cb (GtkWidget *widget, GpmPrefs *prefs)
 {
-	GConfClient *client;
 	DBusGProxy *proxy;
 	DBusGConnection *connection;
 	GError *error = NULL;
@@ -839,9 +717,6 @@ gpm_prefs_set_defaults_cb (GtkWidget *widget, GpmPrefs *prefs)
 		return;
 	}
 
-	client = gconf_client_get_default ();
-	gconf_client_suggest_sync (client, NULL);
-	g_object_unref (client);
 	dbus_g_proxy_call (proxy, "SetSystem", &error,
 			   G_TYPE_STRV, keys,
 			   G_TYPE_STRV, NULL,
@@ -849,6 +724,7 @@ gpm_prefs_set_defaults_cb (GtkWidget *widget, GpmPrefs *prefs)
 
 	g_object_unref (proxy);
 }
+#endif
 
 /**
  * gpm_prefs_init:
@@ -872,16 +748,7 @@ gpm_prefs_init (GpmPrefs *prefs)
 
 	prefs->priv->client = up_client_new ();
 	prefs->priv->console = egg_console_kit_new ();
-	prefs->priv->conf = gconf_client_get_default ();
-	/* watch gnome-power-manager keys */
-	gconf_client_add_dir (prefs->priv->conf, GPM_CONF_DIR,
-			      GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
-	gconf_client_notify_add (prefs->priv->conf, GPM_CONF_DIR,
-				 (GConfClientNotifyFunc) gpm_conf_gconf_key_changed_cb,
-				 prefs, NULL, NULL);
-
-	/* get value of delay in gnome-session */
-	prefs->priv->idle_delay = gconf_client_get_int (prefs->priv->conf, GPM_CONF_IDLE_DELAY, NULL);
+	prefs->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
 
 	/* are we allowed to shutdown? */
 	prefs->priv->can_shutdown = TRUE;
@@ -981,7 +848,7 @@ gpm_prefs_finalize (GObject *object)
 	prefs = GPM_PREFS (object);
 	prefs->priv = GPM_PREFS_GET_PRIVATE (prefs);
 
-	g_object_unref (prefs->priv->conf);
+	g_object_unref (prefs->priv->settings);
 	g_object_unref (prefs->priv->client);
 	g_object_unref (prefs->priv->console);
 
diff --git a/src/gpm-screensaver.c b/src/gpm-screensaver.c
index d727b57..ab1cb47 100644
--- a/src/gpm-screensaver.c
+++ b/src/gpm-screensaver.c
@@ -137,7 +137,7 @@ gpm_screensaver_lock_enabled (GpmScreensaver *screensaver)
 {
 	gboolean enabled;
 	g_return_val_if_fail (GPM_IS_SCREENSAVER (screensaver), FALSE);
-	enabled = gconf_client_get_bool (screensaver->priv->conf, GS_PREF_LOCK_ENABLED, NULL);
+	enabled = gconf_client_get_bool (screensaver->priv->conf, GS_CONF_PREF_LOCK_ENABLED, NULL);
 	return enabled;
 }
 
diff --git a/src/gpm-statistics.c b/src/gpm-statistics.c
index b723e23..5815072 100644
--- a/src/gpm-statistics.c
+++ b/src/gpm-statistics.c
@@ -49,7 +49,7 @@ gchar *current_device = NULL;
 static const gchar *history_type;
 static const gchar *stats_type;
 static guint history_time;
-static GConfClient *gconf_client;
+static GSettings *settings;
 static gfloat sigma_smoothing = 0.0f;
 static UpWakeups *wakeups = NULL;
 static GtkWidget *graph_history = NULL;
@@ -1092,7 +1092,7 @@ gpm_stats_notebook_changed_cb (GtkNotebook *notebook, GtkNotebookPage *page, gin
 	gpm_stats_set_title (GTK_WINDOW (widget), page_num);
 
 	/* save page in gconf */
-	gconf_client_set_int (gconf_client, GPM_CONF_INFO_PAGE_NUMBER, page_num, NULL);
+	g_settings_set_int (settings, GPM_SETTINGS_INFO_PAGE_NUMBER, page_num);
 
 	if (current_device == NULL)
 		return;
@@ -1136,7 +1136,7 @@ gpm_stats_devices_treeview_clicked_cb (GtkTreeSelection *selection, gboolean dat
 		gtk_tree_model_get (model, &iter, GPM_DEVICES_COLUMN_ID, &current_device, -1);
 
 		/* save device in gconf */
-		gconf_client_set_string (gconf_client, GPM_CONF_INFO_LAST_DEVICE, current_device, NULL);
+		g_settings_set_string (settings, GPM_SETTINGS_INFO_LAST_DEVICE, current_device);
 
 		/* show transaction_id */
 		egg_debug ("selected row is: %s", current_device);
@@ -1311,7 +1311,7 @@ gpm_stats_history_type_combo_changed_cb (GtkWidget *widget, gpointer data)
 	g_free (value);
 
 	/* save to gconf */
-	gconf_client_set_string (gconf_client, GPM_CONF_INFO_HISTORY_TYPE, history_type, NULL);
+	g_settings_set_string (settings, GPM_SETTINGS_INFO_HISTORY_TYPE, history_type);
 }
 
 /**
@@ -1362,7 +1362,7 @@ gpm_stats_type_combo_changed_cb (GtkWidget *widget, gpointer data)
 	g_free (value);
 
 	/* save to gconf */
-	gconf_client_set_string (gconf_client, GPM_CONF_INFO_STATS_TYPE, stats_type, NULL);
+	g_settings_set_string (settings, GPM_SETTINGS_INFO_STATS_TYPE, stats_type);
 }
 
 /**
@@ -1387,7 +1387,7 @@ gpm_stats_range_combo_changed (GtkWidget *widget, gpointer data)
 		g_assert (FALSE);
 
 	/* save to gconf */
-	gconf_client_set_int (gconf_client, GPM_CONF_INFO_HISTORY_TIME, history_time, NULL);
+	g_settings_set_int (settings, GPM_SETTINGS_INFO_HISTORY_TIME, history_time);
 
 	gpm_stats_button_update_ui ();
 	g_free (value);
@@ -1402,7 +1402,7 @@ gpm_stats_smooth_checkbox_history_cb (GtkWidget *widget, gpointer data)
 {
 	gboolean checked;
 	checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	gconf_client_set_bool (gconf_client, GPM_CONF_INFO_HISTORY_GRAPH_SMOOTH, checked, NULL);
+	g_settings_set_boolean (settings, GPM_SETTINGS_INFO_HISTORY_GRAPH_SMOOTH, checked);
 	gpm_stats_button_update_ui ();
 }
 
@@ -1415,7 +1415,7 @@ gpm_stats_smooth_checkbox_stats_cb (GtkWidget *widget, gpointer data)
 {
 	gboolean checked;
 	checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	gconf_client_set_bool (gconf_client, GPM_CONF_INFO_STATS_GRAPH_SMOOTH, checked, NULL);
+	g_settings_set_boolean (settings, GPM_SETTINGS_INFO_STATS_GRAPH_SMOOTH, checked);
 	gpm_stats_button_update_ui ();
 }
 
@@ -1428,7 +1428,7 @@ gpm_stats_points_checkbox_history_cb (GtkWidget *widget, gpointer data)
 {
 	gboolean checked;
 	checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	gconf_client_set_bool (gconf_client, GPM_CONF_INFO_HISTORY_GRAPH_POINTS, checked, NULL);
+	g_settings_set_boolean (settings, GPM_SETTINGS_INFO_HISTORY_GRAPH_POINTS, checked);
 	gpm_stats_button_update_ui ();
 }
 
@@ -1441,7 +1441,7 @@ gpm_stats_points_checkbox_stats_cb (GtkWidget *widget, gpointer data)
 {
 	gboolean checked;
 	checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	gconf_client_set_bool (gconf_client, GPM_CONF_INFO_STATS_GRAPH_POINTS, checked, NULL);
+	g_settings_set_boolean (settings, GPM_SETTINGS_INFO_STATS_GRAPH_POINTS, checked);
 	gpm_stats_button_update_ui ();
 }
 
@@ -1570,7 +1570,7 @@ main (int argc, char *argv[])
                                            GPM_DATA G_DIR_SEPARATOR_S "icons");
 
 	/* get data from gconf */
-	gconf_client = gconf_client_get_default ();
+	settings = g_settings_new (GPM_SETTINGS_SCHEMA);
 
 	/* get UI */
 	builder = gtk_builder_new ();
@@ -1610,31 +1610,31 @@ main (int argc, char *argv[])
 			  G_CALLBACK (gpm_stats_button_help_cb), NULL);
 
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_smooth_history"));
-	checked = gconf_client_get_bool (gconf_client, GPM_CONF_INFO_HISTORY_GRAPH_SMOOTH, NULL);
+	checked = g_settings_get_boolean (settings, GPM_SETTINGS_INFO_HISTORY_GRAPH_SMOOTH);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_smooth_checkbox_history_cb), NULL);
 
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_smooth_stats"));
-	checked = gconf_client_get_bool (gconf_client, GPM_CONF_INFO_STATS_GRAPH_SMOOTH, NULL);
+	checked = g_settings_get_boolean (settings, GPM_SETTINGS_INFO_STATS_GRAPH_SMOOTH);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_smooth_checkbox_stats_cb), NULL);
 
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_points_history"));
-	checked = gconf_client_get_bool (gconf_client, GPM_CONF_INFO_HISTORY_GRAPH_POINTS, NULL);
+	checked = g_settings_get_boolean (settings, GPM_SETTINGS_INFO_HISTORY_GRAPH_POINTS);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_points_checkbox_history_cb), NULL);
 
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_points_stats"));
-	checked = gconf_client_get_bool (gconf_client, GPM_CONF_INFO_STATS_GRAPH_POINTS, NULL);
+	checked = g_settings_get_boolean (settings, GPM_SETTINGS_INFO_STATS_GRAPH_POINTS);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_points_checkbox_stats_cb), NULL);
 
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "notebook1"));
-	page = gconf_client_get_int (gconf_client, GPM_CONF_INFO_PAGE_NUMBER, NULL);
+	page = g_settings_get_int (settings, GPM_SETTINGS_INFO_PAGE_NUMBER);
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), page);
 	g_signal_connect (widget, "switch-page",
 			  G_CALLBACK (gpm_stats_notebook_changed_cb), NULL);
@@ -1676,14 +1676,14 @@ main (int argc, char *argv[])
 	gpm_stats_add_wakeups_columns (GTK_TREE_VIEW (widget));
 	gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget)); /* show */
 
-	history_type = gconf_client_get_string (gconf_client, GPM_CONF_INFO_HISTORY_TYPE, NULL);
-	history_time = gconf_client_get_int (gconf_client, GPM_CONF_INFO_HISTORY_TIME, NULL);
+	history_type = g_settings_get_string (settings, GPM_SETTINGS_INFO_HISTORY_TYPE);
+	history_time = g_settings_get_int (settings, GPM_SETTINGS_INFO_HISTORY_TIME);
 	if (history_type == NULL)
 		history_type = GPM_HISTORY_CHARGE_VALUE;
 	if (history_time == 0)
 		history_time = GPM_HISTORY_HOUR_VALUE;
 
-	stats_type = gconf_client_get_string (gconf_client, GPM_CONF_INFO_STATS_TYPE, NULL);
+	stats_type = g_settings_get_string (settings, GPM_SETTINGS_INFO_STATS_TYPE);
 	if (stats_type == NULL)
 		stats_type = GPM_STATS_CHARGE_DATA_VALUE;
 
@@ -1768,7 +1768,7 @@ main (int argc, char *argv[])
 	}
 
 	if (last_device == NULL)
-		last_device = gconf_client_get_string (gconf_client, GPM_CONF_INFO_LAST_DEVICE, NULL);
+		last_device = g_settings_get_string (settings, GPM_SETTINGS_INFO_LAST_DEVICE);
 
 	/* has capability to measure wakeups */
 	ret = up_wakeups_get_has_capability (wakeups);
@@ -1803,7 +1803,7 @@ main (int argc, char *argv[])
 	gtk_main ();
 
 out:
-	g_object_unref (gconf_client);
+	g_object_unref (settings);
 	g_object_unref (client);
 	g_object_unref (wakeups);
 	g_object_unref (builder);
diff --git a/src/gpm-tray-icon.c b/src/gpm-tray-icon.c
index e805413..0ec7dbe 100644
--- a/src/gpm-tray-icon.c
+++ b/src/gpm-tray-icon.c
@@ -38,7 +38,6 @@
 
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
-#include <gconf/gconf-client.h>
 #include <libupower-glib/upower.h>
 
 #include "egg-debug.h"
@@ -55,7 +54,7 @@ static void     gpm_tray_icon_finalize   (GObject	   *object);
 
 struct GpmTrayIconPrivate
 {
-	GConfClient		*conf;
+	GSettings		*settings;
 	GpmEngine		*engine;
 	GtkStatusIcon		*status_icon;
 	gboolean		 show_actions;
@@ -416,22 +415,17 @@ gpm_tray_icon_activate_cb (GtkStatusIcon *status_icon, GpmTrayIcon *icon)
 }
 
 /**
- * gpm_conf_gconf_key_changed_cb:
+ * gpm_tray_icon_settings_changed_cb:
  *
- * We might have to do things when the gconf keys change; do them here.
+ * We might have to do things when the settings change; do them here.
  **/
 static void
-gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *entry, GpmTrayIcon *icon)
+gpm_tray_icon_settings_changed_cb (GSettings *settings, const gchar *key, GpmTrayIcon *icon)
 {
-	GConfValue *value;
 	gboolean allowed_in_menu;
 
-	value = gconf_entry_get_value (entry);
-	if (value == NULL)
-		return;
-
-	if (strcmp (entry->key, GPM_CONF_UI_SHOW_ACTIONS) == 0) {
-		allowed_in_menu = gconf_value_get_bool (value);
+	if (g_strcmp0 (key, GPM_SETTINGS_SHOW_ACTIONS) == 0) {
+		allowed_in_menu = g_settings_get_boolean (settings, key);
 		gpm_tray_icon_enable_actions (icon, allowed_in_menu);
 	}
 }
@@ -450,13 +444,9 @@ gpm_tray_icon_init (GpmTrayIcon *icon)
 
 	icon->priv->engine = gpm_engine_new ();
 
-	icon->priv->conf = gconf_client_get_default ();
-	/* watch gnome-power-manager keys */
-	gconf_client_add_dir (icon->priv->conf, GPM_CONF_DIR,
-			      GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
-	gconf_client_notify_add (icon->priv->conf, GPM_CONF_DIR,
-				 (GConfClientNotifyFunc) gpm_conf_gconf_key_changed_cb,
-				 icon, NULL, NULL);
+	icon->priv->settings = g_settings_new (GPM_SETTINGS_SCHEMA);
+	g_signal_connect (icon->priv->settings, "changed",
+			  G_CALLBACK (gpm_tray_icon_settings_changed_cb), icon);
 
 	icon->priv->status_icon = gtk_status_icon_new ();
 	g_signal_connect_object (G_OBJECT (icon->priv->status_icon),
@@ -468,7 +458,7 @@ gpm_tray_icon_init (GpmTrayIcon *icon)
 				 G_CALLBACK (gpm_tray_icon_activate_cb),
 				 icon, 0);
 
-	allowed_in_menu = gconf_client_get_bool (icon->priv->conf, GPM_CONF_UI_SHOW_ACTIONS, NULL);
+	allowed_in_menu = g_settings_get_boolean (icon->priv->settings, GPM_SETTINGS_SHOW_ACTIONS);
 	gpm_tray_icon_enable_actions (icon, allowed_in_menu);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]