+#include <cfg.h>
+#include <graph.h>
+#include <pio.h>
+#include <plog.h>
+
+/* Properties of each sensor */
+static const char *ATT_SENSOR_ALARM_ENABLED = "alarm_enabled";
+static const char *ATT_SENSOR_ALARM_HIGH_THRESHOLD = "alarm_high_threshold";
+static const char *ATT_SENSOR_ALARM_LOW_THRESHOLD = "alarm_low_threshold";
+static const char *ATT_SENSOR_COLOR = "color";
+static const char *ATT_SENSOR_GRAPH_ENABLED = "graph_enabled";
+static const char *ATT_SENSOR_NAME = "name";
+static const char *ATT_SENSOR_APPINDICATOR_MENU_DISABLED
+= "appindicator_menu_disabled";
+static const char *ATT_SENSOR_APPINDICATOR_LABEL_ENABLED
+= "appindicator_label_enabled";
+static const char *ATT_SENSOR_POSITION = "position";
+static const char *ATT_SENSOR_HIDE = "hide";
+
+/* Update interval of the measures of the sensors */
+static const char *KEY_SENSOR_UPDATE_INTERVAL
+= "sensor-update-interval";
+
+/* Graph settings */
+static const char *KEY_GRAPH_UPDATE_INTERVAL = "graph-update-interval";
+static const char *KEY_GRAPH_MONITORING_DURATION = "graph-monitoring-duration";
+static const char *KEY_GRAPH_BACKGROUND_COLOR = "graph-background-color";
+static const char *DEFAULT_GRAPH_BACKGROUND_COLOR = "#e8f4e8f4a8f5";
+static const char *KEY_GRAPH_BACKGROUND_ALPHA = "graph-background-alpha";
+static const char *KEY_GRAPH_FOREGROUND_COLOR
+= "graph-foreground-color";
+static const char *KEY_GRAPH_SMOOTH_CURVES_ENABLED
+= "graph-smooth-curves-enabled";
+
+static const char *DEFAULT_GRAPH_FOREGROUND_COLOR = "#000000000000";
+
+static const char *KEY_ALPHA_CHANNEL_ENABLED = "graph-alpha-channel-enabled";
+
+/* Inteface settings */
+static const char *KEY_INTERFACE_SENSORLIST_POSITION
+= "interface-sensorlist-position";
+
+static const char *KEY_INTERFACE_WINDOW_DECORATION_DISABLED
+= "interface-window-decoration-disabled";
+
+static const char *KEY_INTERFACE_WINDOW_KEEP_BELOW_ENABLED
+= "interface-window-keep-below-enabled";
+
+static const char *KEY_INTERFACE_MENU_BAR_DISABLED
+= "interface-menu-bar-disabled";
+
+static const char *KEY_INTERFACE_UNITY_LAUNCHER_COUNT_DISABLED
+= "interface-unity-launcher-count-disabled";
+
+static const char *KEY_INTERFACE_HIDE_ON_STARTUP
+= "interface-hide-on-startup";
+
+static const char *KEY_INTERFACE_WINDOW_RESTORE_ENABLED
+= "interface-window-restore-enabled";
+
+static const char *KEY_INTERFACE_WINDOW_X = "interface-window-x";
+static const char *KEY_INTERFACE_WINDOW_Y = "interface-window-y";
+static const char *KEY_INTERFACE_WINDOW_W = "interface-window-w";
+static const char *KEY_INTERFACE_WINDOW_H = "interface-window-h";
+
+static const char *KEY_INTERFACE_WINDOW_DIVIDER_POS
+= "interface-window-divider-pos";
+
+static const char *KEY_INTERFACE_TEMPERATURE_UNIT
+= "interface-temperature-unit";
+
+/* Sensor logging settings */
+static const char *KEY_SLOG_ENABLED = "slog-enabled";
+static const char *KEY_SLOG_INTERVAL = "slog-interval";
+
+/* Path to the script called when a notification is raised */
+static const char *KEY_NOTIFICATION_SCRIPT = "notif-script";
+
+/* Provider settings */
+static const char *KEY_PROVIDER_LMSENSORS_ENABLED
+= "provider-lmsensors-enabled";
+static const char *KEY_PROVIDER_ATIADLSDK_ENABLED
+= "provider-atiadlsdk-enabled";
+static const char *KEY_PROVIDER_GTOP2_ENABLED = "provider-gtop2-enabled";
+static const char *KEY_PROVIDER_HDDTEMP_ENABLED = "provider-hddtemp-enabled";
+static const char *KEY_PROVIDER_LIBATASMART_ENABLED
+= "provider-libatasmart-enabled";
+static const char *KEY_PROVIDER_NVCTRL_ENABLED = "provider-nvctrl-enabled";
+static const char *KEY_PROVIDER_UDISKS2_ENABLED = "provider-udisks2-enabled";
+
+static GSettings *settings;
+
+static char *user_dir;
+
+static GKeyFile *key_file;