/* settings.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from settings.vala, do not modify */

/* 
 *      Copyright 2011 Julien Lavergne <gilir@ubuntu.com>
 *
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */
/* TODO Split correctly the settings for enable differents backends (.ini, gsettings ...) */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gio/gio.h>
#include <glib/gstdio.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define LXSESSION_TYPE_LXSESSION_CONFIG (lxsession_lxsession_config_get_type ())
#define LXSESSION_LXSESSION_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfig))
#define LXSESSION_LXSESSION_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfigClass))
#define LXSESSION_IS_LXSESSION_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_LXSESSION_CONFIG))
#define LXSESSION_IS_LXSESSION_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_LXSESSION_CONFIG))
#define LXSESSION_LXSESSION_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfigClass))

typedef struct _LxsessionLxsessionConfig LxsessionLxsessionConfig;
typedef struct _LxsessionLxsessionConfigClass LxsessionLxsessionConfigClass;
typedef struct _LxsessionLxsessionConfigPrivate LxsessionLxsessionConfigPrivate;
enum  {
	LXSESSION_LXSESSION_CONFIG_0_PROPERTY,
	LXSESSION_LXSESSION_CONFIG_SESSION_NAME_PROPERTY,
	LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME_PROPERTY,
	LXSESSION_LXSESSION_CONFIG_NUM_PROPERTIES
};
static GParamSpec* lxsession_lxsession_config_properties[LXSESSION_LXSESSION_CONFIG_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))

#define LXSESSION_TYPE_LX_SIGNALS (lxsession_lx_signals_get_type ())
#define LXSESSION_LX_SIGNALS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_LX_SIGNALS, LxsessionLxSignals))
#define LXSESSION_LX_SIGNALS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_LX_SIGNALS, LxsessionLxSignalsClass))
#define LXSESSION_IS_LX_SIGNALS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_LX_SIGNALS))
#define LXSESSION_IS_LX_SIGNALS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_LX_SIGNALS))
#define LXSESSION_LX_SIGNALS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_LX_SIGNALS, LxsessionLxSignalsClass))

typedef struct _LxsessionLxSignals LxsessionLxSignals;
typedef struct _LxsessionLxSignalsClass LxsessionLxSignalsClass;

#define LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE (lxsession_lxsession_config_key_file_get_type ())
#define LXSESSION_LXSESSION_CONFIG_KEY_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFile))
#define LXSESSION_LXSESSION_CONFIG_KEY_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFileClass))
#define LXSESSION_IS_LXSESSION_CONFIG_KEY_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE))
#define LXSESSION_IS_LXSESSION_CONFIG_KEY_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE))
#define LXSESSION_LXSESSION_CONFIG_KEY_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFileClass))

typedef struct _LxsessionLxsessionConfigKeyFile LxsessionLxsessionConfigKeyFile;
typedef struct _LxsessionLxsessionConfigKeyFileClass LxsessionLxsessionConfigKeyFileClass;
typedef struct _LxsessionLxsessionConfigKeyFilePrivate LxsessionLxsessionConfigKeyFilePrivate;
enum  {
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_0_PROPERTY,
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_PATH_PROPERTY,
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_HOME_PATH_PROPERTY,
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_NUM_PROPERTIES
};
static GParamSpec* lxsession_lxsession_config_key_file_properties[LXSESSION_LXSESSION_CONFIG_KEY_FILE_NUM_PROPERTIES];
#define _g_key_file_unref0(var) ((var == NULL) ? NULL : (var = (g_key_file_unref (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define LXSESSION_TYPE_XSETTINGS_OPTION (lxsession_xsettings_option_get_type ())
#define LXSESSION_XSETTINGS_OPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_XSETTINGS_OPTION, LxsessionXSettingsOption))
#define LXSESSION_XSETTINGS_OPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_XSETTINGS_OPTION, LxsessionXSettingsOptionClass))
#define LXSESSION_IS_XSETTINGS_OPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_XSETTINGS_OPTION))
#define LXSESSION_IS_XSETTINGS_OPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_XSETTINGS_OPTION))
#define LXSESSION_XSETTINGS_OPTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_XSETTINGS_OPTION, LxsessionXSettingsOptionClass))

typedef struct _LxsessionXSettingsOption LxsessionXSettingsOption;
typedef struct _LxsessionXSettingsOptionClass LxsessionXSettingsOptionClass;

#define LXSESSION_TYPE_RAZOR_QT_CONFIG_KEY_FILE (lxsession_razor_qt_config_key_file_get_type ())
#define LXSESSION_RAZOR_QT_CONFIG_KEY_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_RAZOR_QT_CONFIG_KEY_FILE, LxsessionRazorQtConfigKeyFile))
#define LXSESSION_RAZOR_QT_CONFIG_KEY_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_RAZOR_QT_CONFIG_KEY_FILE, LxsessionRazorQtConfigKeyFileClass))
#define LXSESSION_IS_RAZOR_QT_CONFIG_KEY_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_RAZOR_QT_CONFIG_KEY_FILE))
#define LXSESSION_IS_RAZOR_QT_CONFIG_KEY_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_RAZOR_QT_CONFIG_KEY_FILE))
#define LXSESSION_RAZOR_QT_CONFIG_KEY_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_RAZOR_QT_CONFIG_KEY_FILE, LxsessionRazorQtConfigKeyFileClass))

typedef struct _LxsessionRazorQtConfigKeyFile LxsessionRazorQtConfigKeyFile;
typedef struct _LxsessionRazorQtConfigKeyFileClass LxsessionRazorQtConfigKeyFileClass;
typedef struct _LxsessionRazorQtConfigKeyFilePrivate LxsessionRazorQtConfigKeyFilePrivate;
enum  {
	LXSESSION_RAZOR_QT_CONFIG_KEY_FILE_0_PROPERTY,
	LXSESSION_RAZOR_QT_CONFIG_KEY_FILE_NUM_PROPERTIES
};
static GParamSpec* lxsession_razor_qt_config_key_file_properties[LXSESSION_RAZOR_QT_CONFIG_KEY_FILE_NUM_PROPERTIES];

struct _LxsessionLxsessionConfig {
	GObject parent_instance;
	LxsessionLxsessionConfigPrivate * priv;
	GHashTable* config_item_db;
	GHashTable* session_support_item_db;
	GHashTable* xsettings_support_item_db;
	GHashTable* state_support_item_db;
	GHashTable* dbus_support_item_db;
	GHashTable* keymap_support_item_db;
	GHashTable* environment_support_item_db;
};

struct _LxsessionLxsessionConfigClass {
	GObjectClass parent_class;
	void (*on_update_string_set) (LxsessionLxsessionConfig* self, const gchar* dbus_arg, const gchar* kf_categorie, const gchar* kf_key1, const gchar* kf_key2);
	void (*on_update_string_list_set) (LxsessionLxsessionConfig* self, gchar** dbus_arg, gint dbus_arg_length1, const gchar* kf_categorie, const gchar* kf_key1, const gchar* kf_key2);
	void (*on_update_int_set) (LxsessionLxsessionConfig* self, gint dbus_arg, const gchar* kf_categorie, const gchar* kf_key1, const gchar* kf_key2);
};

struct _LxsessionLxsessionConfigPrivate {
	gchar* _session_name;
	gchar* _desktop_env_name;
};

struct _LxsessionLxsessionConfigKeyFile {
	LxsessionLxsessionConfig parent_instance;
	LxsessionLxsessionConfigKeyFilePrivate * priv;
	GKeyFile* kf;
	GFile* desktop_file;
	GFile* home_desktop_file;
	GFileMonitor* monitor_desktop_file;
	GFileMonitor* monitor_home_desktop_file;
	GCancellable* monitor_cancel;
};

struct _LxsessionLxsessionConfigKeyFileClass {
	LxsessionLxsessionConfigClass parent_class;
	void (*read_secondary_keyfile) (LxsessionLxsessionConfigKeyFile* self);
	void (*save_secondary_keyfile) (LxsessionLxsessionConfigKeyFile* self);
};

struct _LxsessionLxsessionConfigKeyFilePrivate {
	gchar* _desktop_config_path;
	gchar* _desktop_config_home_path;
};

struct _LxsessionRazorQtConfigKeyFile {
	LxsessionLxsessionConfigKeyFile parent_instance;
	LxsessionRazorQtConfigKeyFilePrivate * priv;
	GKeyFile* kf_session;
	gchar* session_razor_config_path;
	gchar* session_razor_config_home_path;
	GFile* session_razor_file;
	GFile* home_session_razor_file;
	GKeyFile* kf_conf;
	gchar* conf_razor_config_path;
	gchar* conf_razor_config_home_path;
	GFile* confrazor_file;
	GFile* home_conf_razor_file;
};

struct _LxsessionRazorQtConfigKeyFileClass {
	LxsessionLxsessionConfigKeyFileClass parent_class;
};

static gint LxsessionLxsessionConfig_private_offset;
static gpointer lxsession_lxsession_config_parent_class = NULL;
VALA_EXTERN LxsessionLxSignals* lxsession_global_sig;
static gint LxsessionLxsessionConfigKeyFile_private_offset;
static gpointer lxsession_lxsession_config_key_file_parent_class = NULL;
VALA_EXTERN LxsessionXSettingsOption* lxsession_global_xsettings_manager;
static gpointer lxsession_razor_qt_config_key_file_parent_class = NULL;

VALA_EXTERN GType lxsession_lxsession_config_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LxsessionLxsessionConfig, g_object_unref)
VALA_EXTERN void lxsession_lxsession_config_on_update_string_set (LxsessionLxsessionConfig* self,
                                                      const gchar* dbus_arg,
                                                      const gchar* kf_categorie,
                                                      const gchar* kf_key1,
                                                      const gchar* kf_key2);
VALA_EXTERN void lxsession_lxsession_config_on_update_string_list_set (LxsessionLxsessionConfig* self,
                                                           gchar** dbus_arg,
                                                           gint dbus_arg_length1,
                                                           const gchar* kf_categorie,
                                                           const gchar* kf_key1,
                                                           const gchar* kf_key2);
VALA_EXTERN void lxsession_lxsession_config_on_update_int_set (LxsessionLxsessionConfig* self,
                                                   gint dbus_arg,
                                                   const gchar* kf_categorie,
                                                   const gchar* kf_key1,
                                                   const gchar* kf_key2);
VALA_EXTERN LxsessionLxsessionConfig* lxsession_lxsession_config_new (void);
VALA_EXTERN LxsessionLxsessionConfig* lxsession_lxsession_config_construct (GType object_type);
static GHashTable* lxsession_lxsession_config_init_item_db (LxsessionLxsessionConfig* self);
static void _g_free0_ (gpointer var);
VALA_EXTERN void lxsession_lxsession_config_create_config_item (LxsessionLxsessionConfig* self,
                                                    const gchar* categorie,
                                                    const gchar* key1,
                                                    const gchar* key2,
                                                    const gchar* type,
                                                    const gchar* variable);
VALA_EXTERN void lxsession_lxsession_config_update_support_keys (LxsessionLxsessionConfig* self,
                                                     const gchar* categorie,
                                                     const gchar* key1,
                                                     const gchar* key2);
VALA_EXTERN void lxsession_lxsession_config_delete_config_item (LxsessionLxsessionConfig* self,
                                                    const gchar* categorie,
                                                    const gchar* key1,
                                                    const gchar* key2,
                                                    const gchar* type);
VALA_EXTERN void lxsession_lxsession_config_get_item (LxsessionLxsessionConfig* self,
                                          const gchar* categorie,
                                          const gchar* key1,
                                          const gchar* key2,
                                          gchar** variable,
                                          gchar** type);
VALA_EXTERN gchar* lxsession_lxsession_config_get_item_string (LxsessionLxsessionConfig* self,
                                                   const gchar* categorie,
                                                   const gchar* key1,
                                                   const gchar* key2);
VALA_EXTERN void lxsession_lxsession_config_set_config_item_value (LxsessionLxsessionConfig* self,
                                                       const gchar* categorie,
                                                       const gchar* key1,
                                                       const gchar* key2,
                                                       const gchar* type,
                                                       const gchar* dbus_arg);
VALA_EXTERN void lxsession_lxsession_config_on_update_generic (LxsessionLxsessionConfig* self,
                                                   const gchar* dbus_arg,
                                                   const gchar* categorie,
                                                   const gchar* key1,
                                                   const gchar* key2);
VALA_EXTERN void lxsession_lxsession_config_set_config_item_value_on_starting (LxsessionLxsessionConfig* self,
                                                                   const gchar* categorie,
                                                                   const gchar* key1,
                                                                   const gchar* key2,
                                                                   const gchar* type,
                                                                   const gchar* dbus_arg);
VALA_EXTERN GHashTable* lxsession_lxsession_config_get_support_db (LxsessionLxsessionConfig* self,
                                                       const gchar* categorie);
static gboolean _vala_string_array_contains (gchar* * stack,
                                      gssize stack_length,
                                      const gchar* needle);
VALA_EXTERN gchar* lxsession_lxsession_config_get_support (LxsessionLxsessionConfig* self,
                                               const gchar* categorie);
VALA_EXTERN gchar* lxsession_lxsession_config_get_support_key (LxsessionLxsessionConfig* self,
                                                   const gchar* categorie,
                                                   const gchar* key1);
VALA_EXTERN void lxsession_lxsession_config_init_signal (LxsessionLxsessionConfig* self);
VALA_EXTERN GType lxsession_lx_signals_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LxsessionLxSignals, g_object_unref)
static void _lxsession_lxsession_config_set_config_item_value_lxsession_lx_signals_generic_set_signal (LxsessionLxSignals* _sender,
                                                                                                const gchar* categorie,
                                                                                                const gchar* key1,
                                                                                                const gchar* key2,
                                                                                                const gchar* type,
                                                                                                const gchar* dbus_arg,
                                                                                                gpointer self);
VALA_EXTERN void lxsession_lxsession_config_guess_default (LxsessionLxsessionConfig* self);
VALA_EXTERN void lxsession_lxsession_config_set_generic_default (LxsessionLxsessionConfig* self,
                                                     const gchar* categorie,
                                                     const gchar* key1,
                                                     const gchar* key2,
                                                     const gchar* type,
                                                     const gchar* default_value);
VALA_EXTERN const gchar* lxsession_lxsession_config_get_session_name (LxsessionLxsessionConfig* self);
VALA_EXTERN const gchar* lxsession_lxsession_config_get_desktop_env_name (LxsessionLxsessionConfig* self);
static void lxsession_lxsession_config_real_on_update_string_set (LxsessionLxsessionConfig* self,
                                                           const gchar* dbus_arg,
                                                           const gchar* kf_categorie,
                                                           const gchar* kf_key1,
                                                           const gchar* kf_key2);
static void lxsession_lxsession_config_real_on_update_string_list_set (LxsessionLxsessionConfig* self,
                                                                gchar** dbus_arg,
                                                                gint dbus_arg_length1,
                                                                const gchar* kf_categorie,
                                                                const gchar* kf_key1,
                                                                const gchar* kf_key2);
static void lxsession_lxsession_config_real_on_update_int_set (LxsessionLxsessionConfig* self,
                                                        gint dbus_arg,
                                                        const gchar* kf_categorie,
                                                        const gchar* kf_key1,
                                                        const gchar* kf_key2);
VALA_EXTERN void lxsession_lxsession_config_set_session_name (LxsessionLxsessionConfig* self,
                                                  const gchar* value);
VALA_EXTERN void lxsession_lxsession_config_set_desktop_env_name (LxsessionLxsessionConfig* self,
                                                      const gchar* value);
static void lxsession_lxsession_config_finalize (GObject * obj);
static GType lxsession_lxsession_config_get_type_once (void);
static void _vala_lxsession_lxsession_config_get_property (GObject * object,
                                                    guint property_id,
                                                    GValue * value,
                                                    GParamSpec * pspec);
static void _vala_lxsession_lxsession_config_set_property (GObject * object,
                                                    guint property_id,
                                                    const GValue * value,
                                                    GParamSpec * pspec);
VALA_EXTERN GType lxsession_lxsession_config_key_file_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LxsessionLxsessionConfigKeyFile, g_object_unref)
VALA_EXTERN void lxsession_lxsession_config_key_file_read_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN void lxsession_lxsession_config_key_file_save_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN LxsessionLxsessionConfigKeyFile* lxsession_lxsession_config_key_file_new (const gchar* session_arg,
                                                                          const gchar* desktop_env_name_arg);
VALA_EXTERN LxsessionLxsessionConfigKeyFile* lxsession_lxsession_config_key_file_construct (GType object_type,
                                                                                const gchar* session_arg,
                                                                                const gchar* desktop_env_name_arg);
VALA_EXTERN void lxsession_lxsession_config_key_file_on_reload_settings_daemon (LxsessionLxsessionConfigKeyFile* self);
static void _lxsession_lxsession_config_key_file_on_reload_settings_daemon_lxsession_lx_signals_reload_settings_daemon (LxsessionLxSignals* _sender,
                                                                                                                 gpointer self);
VALA_EXTERN void lxsession_lxsession_config_key_file_init_desktop_files (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN void lxsession_lxsession_config_key_file_read_keyfile (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN void lxsession_lxsession_config_key_file_setup_monitor_desktop_file (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN gchar* lxsession_get_config_path (const gchar* conf_file);
VALA_EXTERN void lxsession_lxsession_config_key_file_set_desktop_config_path (LxsessionLxsessionConfigKeyFile* self,
                                                                  const gchar* value);
VALA_EXTERN gchar* lxsession_get_config_home_path (const gchar* conf_file);
VALA_EXTERN void lxsession_lxsession_config_key_file_set_desktop_config_home_path (LxsessionLxsessionConfigKeyFile* self,
                                                                       const gchar* value);
VALA_EXTERN const gchar* lxsession_lxsession_config_key_file_get_desktop_config_path (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN void lxsession_lxsession_config_key_file_on_desktop_file_change (LxsessionLxsessionConfigKeyFile* self);
static void _lxsession_lxsession_config_key_file_on_desktop_file_change_g_file_monitor_changed (GFileMonitor* _sender,
                                                                                         GFile* file,
                                                                                         GFile* other_file,
                                                                                         GFileMonitorEvent event_type,
                                                                                         gpointer self);
VALA_EXTERN const gchar* lxsession_lxsession_config_key_file_get_desktop_config_home_path (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN void lxsession_lxsession_config_key_file_setup_creation_desktop_file (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN void lxsession_lxsession_config_key_file_on_desktop_file_creation (LxsessionLxsessionConfigKeyFile* self);
static void _lxsession_lxsession_config_key_file_on_desktop_file_creation_g_file_monitor_changed (GFileMonitor* _sender,
                                                                                           GFile* file,
                                                                                           GFile* other_file,
                                                                                           GFileMonitorEvent event_type,
                                                                                           gpointer self);
VALA_EXTERN void lxsession_lxsession_config_key_file_reload_xsettings (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN GType lxsession_xsettings_option_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LxsessionXSettingsOption, g_object_unref)
VALA_EXTERN LxsessionXSettingsOption* lxsession_xsettings_option_new (void);
VALA_EXTERN LxsessionXSettingsOption* lxsession_xsettings_option_construct (GType object_type);
VALA_EXTERN void lxsession_xsettings_option_activate (LxsessionXSettingsOption* self);
VALA_EXTERN void lxsession_xsettings_option_reload (LxsessionXSettingsOption* self);
VALA_EXTERN gchar* lxsession_lxsession_config_key_file_read_keyfile_string_value (LxsessionLxsessionConfigKeyFile* self,
                                                                      GKeyFile* keyfile,
                                                                      const gchar* kf_categorie,
                                                                      const gchar* kf_key1,
                                                                      const gchar* kf_key2,
                                                                      const gchar* default_value);
VALA_EXTERN gint lxsession_lxsession_config_key_file_read_keyfile_int_value (LxsessionLxsessionConfigKeyFile* self,
                                                                 GKeyFile* keyfile,
                                                                 const gchar* kf_categorie,
                                                                 const gchar* kf_key1,
                                                                 const gchar* kf_key2,
                                                                 gint default_value);
VALA_EXTERN gchar** lxsession_lxsession_config_key_file_read_keyfile_string_list_value (LxsessionLxsessionConfigKeyFile* self,
                                                                            GKeyFile* keyfile,
                                                                            const gchar* kf_categorie,
                                                                            const gchar* kf_key1,
                                                                            const gchar* kf_key2,
                                                                            gchar** default_value,
                                                                            gint default_value_length1,
                                                                            gint* result_length1);
static gchar** _vala_array_dup6 (gchar** self,
                          gssize length);
static gchar** _vala_array_dup7 (gchar** self,
                          gssize length);
static gchar** _vala_array_dup8 (gchar** self,
                          gssize length);
VALA_EXTERN void lxsession_lxsession_config_key_file_read_key_value (LxsessionLxsessionConfigKeyFile* self,
                                                         GKeyFile* kf,
                                                         const gchar* categorie,
                                                         const gchar* key1,
                                                         const gchar* key2,
                                                         const gchar* type);
VALA_EXTERN GKeyFile* lxsession_load_keyfile (const gchar* config_path);
static void lxsession_lxsession_config_key_file_real_read_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN void lxsession_lxsession_config_key_file_sync_setting_files (LxsessionLxsessionConfigKeyFile* self);
VALA_EXTERN void lxsession_lxsession_config_key_file_save_keyfile (LxsessionLxsessionConfigKeyFile* self);
static void lxsession_lxsession_config_key_file_real_save_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self);
static void lxsession_lxsession_config_key_file_real_on_update_string_set (LxsessionLxsessionConfig* base,
                                                                    const gchar* dbus_arg,
                                                                    const gchar* kf_categorie,
                                                                    const gchar* kf_key1,
                                                                    const gchar* kf_key2);
static void lxsession_lxsession_config_key_file_real_on_update_string_list_set (LxsessionLxsessionConfig* base,
                                                                         gchar** dbus_arg,
                                                                         gint dbus_arg_length1,
                                                                         const gchar* kf_categorie,
                                                                         const gchar* kf_key1,
                                                                         const gchar* kf_key2);
static void lxsession_lxsession_config_key_file_real_on_update_int_set (LxsessionLxsessionConfig* base,
                                                                 gint dbus_arg,
                                                                 const gchar* kf_categorie,
                                                                 const gchar* kf_key1,
                                                                 const gchar* kf_key2);
static void lxsession_lxsession_config_key_file_finalize (GObject * obj);
static GType lxsession_lxsession_config_key_file_get_type_once (void);
static void _vala_lxsession_lxsession_config_key_file_get_property (GObject * object,
                                                             guint property_id,
                                                             GValue * value,
                                                             GParamSpec * pspec);
static void _vala_lxsession_lxsession_config_key_file_set_property (GObject * object,
                                                             guint property_id,
                                                             const GValue * value,
                                                             GParamSpec * pspec);
VALA_EXTERN GType lxsession_razor_qt_config_key_file_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (LxsessionRazorQtConfigKeyFile, g_object_unref)
VALA_EXTERN LxsessionRazorQtConfigKeyFile* lxsession_razor_qt_config_key_file_new (const gchar* session_arg,
                                                                       const gchar* desktop_env_name_arg);
VALA_EXTERN LxsessionRazorQtConfigKeyFile* lxsession_razor_qt_config_key_file_construct (GType object_type,
                                                                             const gchar* session_arg,
                                                                             const gchar* desktop_env_name_arg);
VALA_EXTERN void lxsession_razor_qt_config_key_file_init_desktop_razor_files (LxsessionRazorQtConfigKeyFile* self);
VALA_EXTERN void lxsession_razor_qt_config_key_file_read_razor_key_value (LxsessionRazorQtConfigKeyFile* self,
                                                              GKeyFile* kf,
                                                              const gchar* categorie,
                                                              const gchar* key1,
                                                              const gchar* key2,
                                                              const gchar* type,
                                                              const gchar* categorie_razor,
                                                              const gchar* key1_razor,
                                                              const gchar* key2_razor);
VALA_EXTERN gchar* lxsession_razor_qt_config_key_file_read_razor_keyfile_bool_value (LxsessionRazorQtConfigKeyFile* self,
                                                                         GKeyFile* keyfile,
                                                                         const gchar* kf_categorie,
                                                                         const gchar* kf_key1,
                                                                         const gchar* kf_key2,
                                                                         const gchar* default_value);
static void lxsession_razor_qt_config_key_file_real_read_secondary_keyfile (LxsessionLxsessionConfigKeyFile* base);
static void lxsession_razor_qt_config_key_file_real_save_secondary_keyfile (LxsessionLxsessionConfigKeyFile* base);
static void lxsession_razor_qt_config_key_file_finalize (GObject * obj);
static GType lxsession_razor_qt_config_key_file_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static gssize _vala_array_length (gpointer array);

static inline gpointer
lxsession_lxsession_config_get_instance_private (LxsessionLxsessionConfig* self)
{
	return G_STRUCT_MEMBER_P (self, LxsessionLxsessionConfig_private_offset);
}

LxsessionLxsessionConfig*
lxsession_lxsession_config_construct (GType object_type)
{
	LxsessionLxsessionConfig * self = NULL;
	GHashTable* _tmp0_;
	GHashTable* _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	GHashTable* _tmp4_;
	GHashTable* _tmp5_;
	GHashTable* _tmp6_;
	self = (LxsessionLxsessionConfig*) g_object_new (object_type, NULL);
	_tmp0_ = lxsession_lxsession_config_init_item_db (self);
	_g_hash_table_unref0 (self->config_item_db);
	self->config_item_db = _tmp0_;
	_tmp1_ = lxsession_lxsession_config_init_item_db (self);
	_g_hash_table_unref0 (self->session_support_item_db);
	self->session_support_item_db = _tmp1_;
	_tmp2_ = lxsession_lxsession_config_init_item_db (self);
	_g_hash_table_unref0 (self->xsettings_support_item_db);
	self->xsettings_support_item_db = _tmp2_;
	_tmp3_ = lxsession_lxsession_config_init_item_db (self);
	_g_hash_table_unref0 (self->state_support_item_db);
	self->state_support_item_db = _tmp3_;
	_tmp4_ = lxsession_lxsession_config_init_item_db (self);
	_g_hash_table_unref0 (self->dbus_support_item_db);
	self->dbus_support_item_db = _tmp4_;
	_tmp5_ = lxsession_lxsession_config_init_item_db (self);
	_g_hash_table_unref0 (self->keymap_support_item_db);
	self->keymap_support_item_db = _tmp5_;
	_tmp6_ = lxsession_lxsession_config_init_item_db (self);
	_g_hash_table_unref0 (self->environment_support_item_db);
	self->environment_support_item_db = _tmp6_;
	return self;
}

LxsessionLxsessionConfig*
lxsession_lxsession_config_new (void)
{
	return lxsession_lxsession_config_construct (LXSESSION_TYPE_LXSESSION_CONFIG);
}

static void
_g_free0_ (gpointer var)
{
	var = (g_free (var), NULL);
}

static GHashTable*
lxsession_lxsession_config_init_item_db (LxsessionLxsessionConfig* self)
{
	GHashTable* return_map = NULL;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, _g_free0_);
	return_map = _tmp2_;
	result = return_map;
	return result;
}

void
lxsession_lxsession_config_create_config_item (LxsessionLxsessionConfig* self,
                                               const gchar* categorie,
                                               const gchar* key1,
                                               const gchar* key2,
                                               const gchar* type,
                                               const gchar* variable)
{
	gchar* item_key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	GHashTable* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	g_return_if_fail (type != NULL);
	_tmp0_ = g_strconcat (categorie, ";", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, key1, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, ";", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, key2, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ";", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	item_key = _tmp9_;
	_tmp10_ = self->config_item_db;
	_tmp11_ = g_strdup (item_key);
	_tmp12_ = g_strdup (variable);
	g_hash_table_insert (_tmp10_, _tmp11_, _tmp12_);
	lxsession_lxsession_config_update_support_keys (self, categorie, key1, key2);
	_g_free0 (item_key);
}

void
lxsession_lxsession_config_delete_config_item (LxsessionLxsessionConfig* self,
                                               const gchar* categorie,
                                               const gchar* key1,
                                               const gchar* key2,
                                               const gchar* type)
{
	gchar* item_key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	GHashTable* _tmp10_;
	const gchar* _tmp11_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	g_return_if_fail (type != NULL);
	_tmp0_ = g_strconcat (categorie, ";", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, key1, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, ";", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, key2, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ";", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	item_key = _tmp9_;
	_tmp10_ = self->config_item_db;
	_tmp11_ = item_key;
	if (g_hash_table_contains (_tmp10_, _tmp11_) == TRUE) {
		GHashTable* _tmp12_;
		const gchar* _tmp13_;
		_tmp12_ = self->config_item_db;
		_tmp13_ = item_key;
		g_hash_table_remove (_tmp12_, _tmp13_);
		lxsession_lxsession_config_update_support_keys (self, categorie, key1, key2);
	}
	_g_free0 (item_key);
}

void
lxsession_lxsession_config_get_item (LxsessionLxsessionConfig* self,
                                     const gchar* categorie,
                                     const gchar* key1,
                                     const gchar* key2,
                                     gchar** variable,
                                     gchar** type)
{
	gchar* _vala_variable = NULL;
	gchar* _vala_type = NULL;
	gchar* item_key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	GHashTable* _tmp10_;
	gconstpointer _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	_tmp0_ = g_strconcat (categorie, ";", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, key1, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, ";", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, key2, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ";", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	item_key = _tmp9_;
	_tmp10_ = self->config_item_db;
	_tmp11_ = g_hash_table_lookup (_tmp10_, item_key);
	_tmp12_ = g_strdup ((const gchar*) _tmp11_);
	_g_free0 (_vala_variable);
	_vala_variable = _tmp12_;
	_tmp13_ = g_strdup ("string");
	_g_free0 (_vala_type);
	_vala_type = _tmp13_;
	_g_free0 (item_key);
	if (variable) {
		*variable = _vala_variable;
	} else {
		_g_free0 (_vala_variable);
	}
	if (type) {
		*type = _vala_type;
	} else {
		_g_free0 (_vala_type);
	}
}

gchar*
lxsession_lxsession_config_get_item_string (LxsessionLxsessionConfig* self,
                                            const gchar* categorie,
                                            const gchar* key1,
                                            const gchar* key2)
{
	gchar* type_output = NULL;
	gchar* variable_output = NULL;
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (categorie != NULL, NULL);
	g_return_val_if_fail (key1 != NULL, NULL);
	lxsession_lxsession_config_get_item (self, categorie, key1, key2, &_tmp0_, &_tmp1_);
	_g_free0 (variable_output);
	variable_output = _tmp0_;
	_g_free0 (type_output);
	type_output = _tmp1_;
	result = variable_output;
	_g_free0 (type_output);
	return result;
}

void
lxsession_lxsession_config_set_config_item_value (LxsessionLxsessionConfig* self,
                                                  const gchar* categorie,
                                                  const gchar* key1,
                                                  const gchar* key2,
                                                  const gchar* type,
                                                  const gchar* dbus_arg)
{
	gchar* item_key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	GHashTable* _tmp10_;
	const gchar* _tmp11_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	g_return_if_fail (type != NULL);
	g_return_if_fail (dbus_arg != NULL);
	_tmp0_ = g_strconcat (categorie, ";", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, key1, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, ";", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, key2, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ";", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	item_key = _tmp9_;
	_tmp10_ = self->config_item_db;
	_tmp11_ = item_key;
	if (g_hash_table_contains (_tmp10_, _tmp11_) == TRUE) {
		GHashTable* _tmp12_;
		const gchar* _tmp13_;
		gconstpointer _tmp14_;
		_tmp12_ = self->config_item_db;
		_tmp13_ = item_key;
		_tmp14_ = g_hash_table_lookup (_tmp12_, _tmp13_);
		if (g_strcmp0 ((const gchar*) _tmp14_, dbus_arg) != 0) {
			GHashTable* _tmp15_;
			const gchar* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
			_tmp15_ = self->config_item_db;
			_tmp16_ = item_key;
			_tmp17_ = g_strdup (_tmp16_);
			_tmp18_ = g_strdup (dbus_arg);
			g_hash_table_insert (_tmp15_, _tmp17_, _tmp18_);
			lxsession_lxsession_config_on_update_generic (self, dbus_arg, categorie, key1, key2);
		}
	} else {
		lxsession_lxsession_config_create_config_item (self, categorie, key1, key2, type, dbus_arg);
	}
	_g_free0 (item_key);
}

void
lxsession_lxsession_config_set_config_item_value_on_starting (LxsessionLxsessionConfig* self,
                                                              const gchar* categorie,
                                                              const gchar* key1,
                                                              const gchar* key2,
                                                              const gchar* type,
                                                              const gchar* dbus_arg)
{
	gchar* item_key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	GHashTable* _tmp10_;
	const gchar* _tmp11_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	g_return_if_fail (type != NULL);
	g_return_if_fail (dbus_arg != NULL);
	_tmp0_ = g_strconcat (categorie, ";", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, key1, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, ";", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, key2, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ";", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	item_key = _tmp9_;
	_tmp10_ = self->config_item_db;
	_tmp11_ = item_key;
	if (g_hash_table_contains (_tmp10_, _tmp11_) == TRUE) {
		GHashTable* _tmp12_;
		const gchar* _tmp13_;
		gconstpointer _tmp14_;
		_tmp12_ = self->config_item_db;
		_tmp13_ = item_key;
		_tmp14_ = g_hash_table_lookup (_tmp12_, _tmp13_);
		if (g_strcmp0 ((const gchar*) _tmp14_, dbus_arg) != 0) {
			GHashTable* _tmp15_;
			const gchar* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
			_tmp15_ = self->config_item_db;
			_tmp16_ = item_key;
			_tmp17_ = g_strdup (_tmp16_);
			_tmp18_ = g_strdup (dbus_arg);
			g_hash_table_insert (_tmp15_, _tmp17_, _tmp18_);
		}
	} else {
		lxsession_lxsession_config_create_config_item (self, categorie, key1, key2, type, dbus_arg);
	}
	_g_free0 (item_key);
}

static gpointer
_g_hash_table_ref0 (gpointer self)
{
	return self ? g_hash_table_ref (self) : NULL;
}

GHashTable*
lxsession_lxsession_config_get_support_db (LxsessionLxsessionConfig* self,
                                           const gchar* categorie)
{
	GHashTable* support_db = NULL;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	GHashTable* _tmp4_;
	const gchar* _tmp5_;
	GQuark _tmp7_ = 0U;
	static GQuark _tmp6_label0 = 0;
	static GQuark _tmp6_label1 = 0;
	static GQuark _tmp6_label2 = 0;
	static GQuark _tmp6_label3 = 0;
	static GQuark _tmp6_label4 = 0;
	static GQuark _tmp6_label5 = 0;
	static GQuark _tmp6_label6 = 0;
	static GQuark _tmp6_label7 = 0;
	static GQuark _tmp6_label8 = 0;
	GHashTable* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (categorie != NULL, NULL);
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, _g_free0_);
	support_db = _tmp2_;
	_tmp3_ = self->session_support_item_db;
	_tmp4_ = _g_hash_table_ref0 (_tmp3_);
	_g_hash_table_unref0 (support_db);
	support_db = _tmp4_;
	_tmp5_ = categorie;
	_tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
	if (_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("Session")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp8_;
				GHashTable* _tmp9_;
				_tmp8_ = self->session_support_item_db;
				_tmp9_ = _g_hash_table_ref0 (_tmp8_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp9_;
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label1) ? _tmp6_label1 : (_tmp6_label1 = g_quark_from_static_string ("Xsettings")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp10_;
				GHashTable* _tmp11_;
				_tmp10_ = self->xsettings_support_item_db;
				_tmp11_ = _g_hash_table_ref0 (_tmp10_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp11_;
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label2) ? _tmp6_label2 : (_tmp6_label2 = g_quark_from_static_string ("GTK")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp12_;
				GHashTable* _tmp13_;
				_tmp12_ = self->xsettings_support_item_db;
				_tmp13_ = _g_hash_table_ref0 (_tmp12_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp13_;
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label3) ? _tmp6_label3 : (_tmp6_label3 = g_quark_from_static_string ("Mouse")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp14_;
				GHashTable* _tmp15_;
				_tmp14_ = self->xsettings_support_item_db;
				_tmp15_ = _g_hash_table_ref0 (_tmp14_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp15_;
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label4) ? _tmp6_label4 : (_tmp6_label4 = g_quark_from_static_string ("Keyboard")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp16_;
				GHashTable* _tmp17_;
				_tmp16_ = self->xsettings_support_item_db;
				_tmp17_ = _g_hash_table_ref0 (_tmp16_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp17_;
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label5) ? _tmp6_label5 : (_tmp6_label5 = g_quark_from_static_string ("State")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp18_;
				GHashTable* _tmp19_;
				_tmp18_ = self->state_support_item_db;
				_tmp19_ = _g_hash_table_ref0 (_tmp18_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp19_;
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label6) ? _tmp6_label6 : (_tmp6_label6 = g_quark_from_static_string ("Dbus")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp20_;
				GHashTable* _tmp21_;
				_tmp20_ = self->dbus_support_item_db;
				_tmp21_ = _g_hash_table_ref0 (_tmp20_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp21_;
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label7) ? _tmp6_label7 : (_tmp6_label7 = g_quark_from_static_string ("Keymap")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp22_;
				GHashTable* _tmp23_;
				_tmp22_ = self->keymap_support_item_db;
				_tmp23_ = _g_hash_table_ref0 (_tmp22_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp23_;
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label8) ? _tmp6_label8 : (_tmp6_label8 = g_quark_from_static_string ("Environment")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp24_;
				GHashTable* _tmp25_;
				_tmp24_ = self->environment_support_item_db;
				_tmp25_ = _g_hash_table_ref0 (_tmp24_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp25_;
				break;
			}
		}
	}
	result = support_db;
	return result;
}

static gboolean
_vala_string_array_contains (gchar* * stack,
                             gssize stack_length,
                             const gchar* needle)
{
	gssize i;
	for (i = 0; i < stack_length; i++) {
		if (g_strcmp0 (stack[i], needle) == 0) {
			return TRUE;
		}
	}
	return FALSE;
}

void
lxsession_lxsession_config_update_support_keys (LxsessionLxsessionConfig* self,
                                                const gchar* categorie,
                                                const gchar* key1,
                                                const gchar* key2)
{
	GHashTable* support_db = NULL;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	GHashTable* _tmp4_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, _g_free0_);
	support_db = _tmp2_;
	_tmp3_ = lxsession_lxsession_config_get_support_db (self, categorie);
	_g_hash_table_unref0 (support_db);
	support_db = _tmp3_;
	_tmp4_ = support_db;
	if (g_hash_table_contains (_tmp4_, key1)) {
		gchar** list = NULL;
		GHashTable* _tmp5_;
		gconstpointer _tmp6_;
		gchar** _tmp7_;
		gchar** _tmp8_;
		gint list_length1;
		gint _list_size_;
		_tmp5_ = support_db;
		_tmp6_ = g_hash_table_lookup (_tmp5_, key1);
		_tmp8_ = _tmp7_ = g_strsplit_set ((const gchar*) _tmp6_, ";", 0);
		list = _tmp8_;
		list_length1 = _vala_array_length (_tmp7_);
		_list_size_ = list_length1;
		if (key2 == NULL) {
		} else {
			gchar** _tmp9_;
			gint _tmp9__length1;
			_tmp9_ = list;
			_tmp9__length1 = list_length1;
			if (_vala_string_array_contains (_tmp9_, _tmp9__length1, key2)) {
			} else {
				GHashTable* _tmp10_;
				gchar* _tmp11_;
				GHashTable* _tmp12_;
				gconstpointer _tmp13_;
				gchar* _tmp14_;
				gchar* _tmp15_;
				gchar* _tmp16_;
				_tmp10_ = support_db;
				_tmp11_ = g_strdup (key1);
				_tmp12_ = support_db;
				_tmp13_ = g_hash_table_lookup (_tmp12_, key1);
				_tmp14_ = g_strconcat ((const gchar*) _tmp13_, key2, NULL);
				_tmp15_ = _tmp14_;
				_tmp16_ = g_strconcat (_tmp15_, ";", NULL);
				g_hash_table_insert (_tmp10_, _tmp11_, _tmp16_);
				_g_free0 (_tmp15_);
			}
		}
		list = (_vala_array_free (list, list_length1, (GDestroyNotify) g_free), NULL);
	} else {
		GHashTable* _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
		_tmp17_ = support_db;
		_tmp18_ = g_strdup (key1);
		_tmp19_ = g_strconcat (key2, ";", NULL);
		g_hash_table_insert (_tmp17_, _tmp18_, _tmp19_);
	}
	_g_hash_table_unref0 (support_db);
}

gchar*
lxsession_lxsession_config_get_support (LxsessionLxsessionConfig* self,
                                        const gchar* categorie)
{
	gchar* items = NULL;
	GHashTable* support_db = NULL;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	GHashTable* _tmp4_;
	GList* _tmp5_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (categorie != NULL, NULL);
	items = NULL;
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, _g_free0_);
	support_db = _tmp2_;
	_tmp3_ = lxsession_lxsession_config_get_support_db (self, categorie);
	_g_hash_table_unref0 (support_db);
	support_db = _tmp3_;
	_tmp4_ = support_db;
	_tmp5_ = g_hash_table_get_keys (_tmp4_);
	{
		GList* key_collection = NULL;
		GList* key_it = NULL;
		key_collection = _tmp5_;
		for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
			gchar* _tmp6_;
			gchar* key = NULL;
			_tmp6_ = g_strdup ((const gchar*) key_it->data);
			key = _tmp6_;
			{
				const gchar* _tmp7_;
				_tmp7_ = items;
				if (_tmp7_ == NULL) {
					const gchar* _tmp8_;
					gchar* _tmp9_;
					_tmp8_ = key;
					_tmp9_ = g_strconcat (_tmp8_, ";", NULL);
					_g_free0 (items);
					items = _tmp9_;
				} else {
					const gchar* _tmp10_;
					const gchar* _tmp11_;
					gchar* _tmp12_;
					gchar* _tmp13_;
					gchar* _tmp14_;
					_tmp10_ = items;
					_tmp11_ = key;
					_tmp12_ = g_strconcat (_tmp10_, _tmp11_, NULL);
					_tmp13_ = _tmp12_;
					_tmp14_ = g_strconcat (_tmp13_, ";", NULL);
					_g_free0 (items);
					items = _tmp14_;
					_g_free0 (_tmp13_);
				}
				_g_free0 (key);
			}
		}
		(key_collection == NULL) ? NULL : (key_collection = (g_list_free (key_collection), NULL));
	}
	result = items;
	_g_hash_table_unref0 (support_db);
	return result;
}

gchar*
lxsession_lxsession_config_get_support_key (LxsessionLxsessionConfig* self,
                                            const gchar* categorie,
                                            const gchar* key1)
{
	gchar* return_value = NULL;
	GHashTable* support_db = NULL;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	GHashTable* _tmp4_;
	gconstpointer _tmp5_;
	GHashTable* _tmp6_;
	gconstpointer _tmp7_;
	gchar* _tmp8_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (categorie != NULL, NULL);
	g_return_val_if_fail (key1 != NULL, NULL);
	return_value = NULL;
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, _g_free0_);
	support_db = _tmp2_;
	_tmp3_ = lxsession_lxsession_config_get_support_db (self, categorie);
	_g_hash_table_unref0 (support_db);
	support_db = _tmp3_;
	_tmp4_ = support_db;
	_tmp5_ = g_hash_table_lookup (_tmp4_, key1);
	g_message ("settings.vala:244: Return support key: %s", (const gchar*) _tmp5_);
	_tmp6_ = support_db;
	_tmp7_ = g_hash_table_lookup (_tmp6_, key1);
	_tmp8_ = g_strdup ((const gchar*) _tmp7_);
	_g_free0 (return_value);
	return_value = _tmp8_;
	result = return_value;
	_g_hash_table_unref0 (support_db);
	return result;
}

static void
_lxsession_lxsession_config_set_config_item_value_lxsession_lx_signals_generic_set_signal (LxsessionLxSignals* _sender,
                                                                                           const gchar* categorie,
                                                                                           const gchar* key1,
                                                                                           const gchar* key2,
                                                                                           const gchar* type,
                                                                                           const gchar* dbus_arg,
                                                                                           gpointer self)
{
	lxsession_lxsession_config_set_config_item_value ((LxsessionLxsessionConfig*) self, categorie, key1, key2, type, dbus_arg);
}

void
lxsession_lxsession_config_init_signal (LxsessionLxsessionConfig* self)
{
	LxsessionLxSignals* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = lxsession_global_sig;
	g_signal_connect_object (_tmp0_, "generic-set-signal", (GCallback) _lxsession_lxsession_config_set_config_item_value_lxsession_lx_signals_generic_set_signal, self, 0);
}

void
lxsession_lxsession_config_guess_default (LxsessionLxsessionConfig* self)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = lxsession_lxsession_config_get_item_string (self, "Session", "window_manager", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strcmp0 (_tmp1_, "openbox-lxde") == 0;
	_g_free0 (_tmp1_);
	if (_tmp2_) {
		lxsession_lxsession_config_set_generic_default (self, "Session", "windows_manager", "command", "string", "openbox");
		lxsession_lxsession_config_set_generic_default (self, "Session", "windows_manager", "session", "string", "LXDE");
	}
	lxsession_lxsession_config_set_generic_default (self, "Session", "disable_autostart", NULL, "string", "no");
	lxsession_lxsession_config_set_generic_default (self, "Session", "polkit", "command", "string", "lxpolkit");
	lxsession_lxsession_config_set_generic_default (self, "Session", "clipboard", "command", "string", "lxclipboard");
	lxsession_lxsession_config_set_generic_default (self, "Session", "xsettings_manager", "command", "string", "build-in");
	lxsession_lxsession_config_set_generic_default (self, "Session", "proxy_manager", "command", "string", "build-in");
	lxsession_lxsession_config_set_generic_default (self, "Session", "keyring", "command", "string", "ssh-agent");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iXft", "Antialias", "string", "1");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iXft", "Hinting", "string", "1");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "sXft", "HintStyle", "string", "hintslight");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "sXft", "RGBA", "string", "rgb");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "sNet", "ThemeName", "string", "Clearlooks");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "sNet", "IconThemeName", "string", "nuoveXT2");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iNet", "EnableEventSounds", "string", "1");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iNet", "EnableInputFeedbackSounds", "string", "1");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "sGtk", "ColorScheme", "string", "");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "sGtk", "FontName", "string", "Sans 10");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iGtk", "ToolbarStyle", "string", "3");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iGtk", "ToolbarIconSize", "string", "3");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iGtk", "ButtonImages", "string", "1");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iGtk", "MenuImages", "string", "1");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "iGtk", "CursorThemeSize", "string", "18");
	lxsession_lxsession_config_set_generic_default (self, "GTK", "sGtk", "CursorThemeName", "string", "DMZ-White");
	lxsession_lxsession_config_set_generic_default (self, "Mouse", "AccFactor", NULL, "string", "20");
	lxsession_lxsession_config_set_generic_default (self, "Mouse", "AccThreshold", NULL, "string", "10");
	lxsession_lxsession_config_set_generic_default (self, "Mouse", "LeftHanded", NULL, "string", "0");
	lxsession_lxsession_config_set_generic_default (self, "Keyboard", "Delay", NULL, "string", "500");
	lxsession_lxsession_config_set_generic_default (self, "Keyboard", "Interval", NULL, "string", "30");
	lxsession_lxsession_config_set_generic_default (self, "Keyboard", "Beep", NULL, "string", "1");
	lxsession_lxsession_config_set_generic_default (self, "State", "guess_default", NULL, "string", "true");
	lxsession_lxsession_config_set_generic_default (self, "Dbus", "lxde", NULL, "string", "true");
	lxsession_lxsession_config_set_generic_default (self, "Environment", "menu_prefix", NULL, "string", "lxde-");
	_tmp3_ = self->priv->_session_name;
	if (g_strcmp0 (_tmp3_, "Lubuntu") == 0) {
		gchar* _tmp4_;
		gchar* _tmp5_;
		gboolean _tmp6_;
		lxsession_lxsession_config_set_generic_default (self, "Session", "quit_manager", "command", "string", "lxsession-logout");
		lxsession_lxsession_config_set_generic_default (self, "Session", "quit_manager", "image", "string", "/usr/share/lubuntu/images/logout-banner.png");
		lxsession_lxsession_config_set_generic_default (self, "Session", "quit_manager", "layout", "string", "top");
		_tmp4_ = lxsession_lxsession_config_get_item_string (self, "Session", "window_manager", NULL);
		_tmp5_ = _tmp4_;
		_tmp6_ = g_strcmp0 (_tmp5_, "openbox-lubuntu") == 0;
		_g_free0 (_tmp5_);
		if (_tmp6_) {
			lxsession_lxsession_config_set_generic_default (self, "Session", "windows_manager", "command", "string", "openbox");
			lxsession_lxsession_config_set_generic_default (self, "Session", "windows_manager", "session", "string", "Lubuntu");
		}
		lxsession_lxsession_config_set_generic_default (self, "Session", "workspace_manager", "command", "string", "obconf");
		lxsession_lxsession_config_set_generic_default (self, "Session", "audio_manager", "command", "string", "alsamixer");
		lxsession_lxsession_config_set_generic_default (self, "Session", "screenshot_manager", "command", "string", "scrot");
		lxsession_lxsession_config_set_generic_default (self, "Session", "upgrade_manager", "command", "string", "upgrade-manager");
		lxsession_lxsession_config_set_generic_default (self, "Session", "webbrowser", "command", "string", "firefox");
		lxsession_lxsession_config_set_generic_default (self, "Session", "email", "command", "string", "sylpheed");
		lxsession_lxsession_config_set_generic_default (self, "Session", "pdf_reader", "command", "string", "evince");
		lxsession_lxsession_config_set_generic_default (self, "Session", "video_player", "command", "string", "gnome-mplayer");
		lxsession_lxsession_config_set_generic_default (self, "Session", "audio_player", "command", "string", "audacious");
		lxsession_lxsession_config_set_generic_default (self, "Session", "image_display", "command", "string", "gpicview");
		lxsession_lxsession_config_set_generic_default (self, "Session", "text_editor", "command", "string", "leafpad");
		lxsession_lxsession_config_set_generic_default (self, "Session", "archive", "command", "string", "file-roller");
		lxsession_lxsession_config_set_generic_default (self, "Session", "calculator", "command", "string", "galculator");
		lxsession_lxsession_config_set_generic_default (self, "Session", "spreadsheet", "command", "string", "gnumeric");
		lxsession_lxsession_config_set_generic_default (self, "Session", "bittorent", "command", "string", "transmission-gtk");
		lxsession_lxsession_config_set_generic_default (self, "Session", "document", "command", "string", "abiword");
		lxsession_lxsession_config_set_generic_default (self, "Session", "webcam", "command", "string", "gucview");
		lxsession_lxsession_config_set_generic_default (self, "Session", "burn", "command", "string", "xfburn");
		lxsession_lxsession_config_set_generic_default (self, "Session", "notes", "command", "string", "xpad");
		lxsession_lxsession_config_set_generic_default (self, "Session", "disk_utility", "command", "string", "gnome-disks");
		lxsession_lxsession_config_set_generic_default (self, "Session", "tasks", "command", "string", "lxtask");
	}
	_tmp7_ = self->priv->_desktop_env_name;
	if (g_strcmp0 (_tmp7_, "LXDE") == 0) {
		lxsession_lxsession_config_set_generic_default (self, "Session", "quit_manager", "command", "string", "lxsession-logout");
		lxsession_lxsession_config_set_generic_default (self, "Session", "quit_manager", "image", "string", "/usr/share/lxde/images/logout-banner.png");
		lxsession_lxsession_config_set_generic_default (self, "Session", "quit_manager", "layout", "string", "top");
		lxsession_lxsession_config_set_generic_default (self, "Session", "lock_manager", "command", "string", "lxlock");
		lxsession_lxsession_config_set_generic_default (self, "Session", "terminal_manager", "command", "string", "lxterminal");
		lxsession_lxsession_config_set_generic_default (self, "Session", "launcher_manager", "command", "string", "lxpanelctl");
	}
}

void
lxsession_lxsession_config_set_generic_default (LxsessionLxsessionConfig* self,
                                                const gchar* categorie,
                                                const gchar* key1,
                                                const gchar* key2,
                                                const gchar* type,
                                                const gchar* default_value)
{
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	g_return_if_fail (self != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	g_return_if_fail (type != NULL);
	g_return_if_fail (default_value != NULL);
	_tmp0_ = type;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string ("string")))) {
		switch (0) {
			default:
			{
				gchar* _tmp3_;
				gchar* _tmp4_;
				gboolean _tmp5_;
				_tmp3_ = lxsession_lxsession_config_get_item_string (self, categorie, key1, key2);
				_tmp4_ = _tmp3_;
				_tmp5_ = _tmp4_ == NULL;
				_g_free0 (_tmp4_);
				if (_tmp5_) {
					g_message ("settings.vala:373: Settings default for %s, %s, %s : %s", categorie, key1, key2, default_value);
					lxsession_lxsession_config_set_config_item_value (self, categorie, key1, key2, type, default_value);
				}
				break;
			}
		}
	}
}

void
lxsession_lxsession_config_on_update_generic (LxsessionLxsessionConfig* self,
                                              const gchar* dbus_arg,
                                              const gchar* categorie,
                                              const gchar* key1,
                                              const gchar* key2)
{
	gchar* item_key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* type = NULL;
	gchar* _tmp10_;
	GHashTable* _tmp11_;
	const gchar* _tmp12_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (dbus_arg != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	_tmp0_ = g_strconcat (categorie, ";", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, key1, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, ";", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, key2, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ";", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	item_key = _tmp9_;
	_tmp10_ = g_strdup ("string");
	type = _tmp10_;
	_tmp11_ = self->config_item_db;
	_tmp12_ = item_key;
	if (g_hash_table_contains (_tmp11_, _tmp12_) == TRUE) {
		const gchar* _tmp13_;
		const gchar* _tmp14_;
		GQuark _tmp16_ = 0U;
		static GQuark _tmp15_label0 = 0;
		_tmp13_ = type;
		_tmp14_ = _tmp13_;
		_tmp16_ = (NULL == _tmp14_) ? 0 : g_quark_from_string (_tmp14_);
		if (_tmp16_ == ((0 != _tmp15_label0) ? _tmp15_label0 : (_tmp15_label0 = g_quark_from_static_string ("string")))) {
			switch (0) {
				default:
				{
					lxsession_lxsession_config_on_update_string_set (self, dbus_arg, categorie, key1, key2);
					break;
				}
			}
		}
	}
	_g_free0 (type);
	_g_free0 (item_key);
}

static void
lxsession_lxsession_config_real_on_update_string_set (LxsessionLxsessionConfig* self,
                                                      const gchar* dbus_arg,
                                                      const gchar* kf_categorie,
                                                      const gchar* kf_key1,
                                                      const gchar* kf_key2)
{
	g_return_if_fail (dbus_arg != NULL);
	g_return_if_fail (kf_categorie != NULL);
	g_return_if_fail (kf_key1 != NULL);
}

void
lxsession_lxsession_config_on_update_string_set (LxsessionLxsessionConfig* self,
                                                 const gchar* dbus_arg,
                                                 const gchar* kf_categorie,
                                                 const gchar* kf_key1,
                                                 const gchar* kf_key2)
{
	LxsessionLxsessionConfigClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = LXSESSION_LXSESSION_CONFIG_GET_CLASS (self);
	if (_klass_->on_update_string_set) {
		_klass_->on_update_string_set (self, dbus_arg, kf_categorie, kf_key1, kf_key2);
	}
}

static void
lxsession_lxsession_config_real_on_update_string_list_set (LxsessionLxsessionConfig* self,
                                                           gchar** dbus_arg,
                                                           gint dbus_arg_length1,
                                                           const gchar* kf_categorie,
                                                           const gchar* kf_key1,
                                                           const gchar* kf_key2)
{
	g_return_if_fail (kf_categorie != NULL);
	g_return_if_fail (kf_key1 != NULL);
}

void
lxsession_lxsession_config_on_update_string_list_set (LxsessionLxsessionConfig* self,
                                                      gchar** dbus_arg,
                                                      gint dbus_arg_length1,
                                                      const gchar* kf_categorie,
                                                      const gchar* kf_key1,
                                                      const gchar* kf_key2)
{
	LxsessionLxsessionConfigClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = LXSESSION_LXSESSION_CONFIG_GET_CLASS (self);
	if (_klass_->on_update_string_list_set) {
		_klass_->on_update_string_list_set (self, dbus_arg, dbus_arg_length1, kf_categorie, kf_key1, kf_key2);
	}
}

static void
lxsession_lxsession_config_real_on_update_int_set (LxsessionLxsessionConfig* self,
                                                   gint dbus_arg,
                                                   const gchar* kf_categorie,
                                                   const gchar* kf_key1,
                                                   const gchar* kf_key2)
{
	g_return_if_fail (kf_categorie != NULL);
	g_return_if_fail (kf_key1 != NULL);
}

void
lxsession_lxsession_config_on_update_int_set (LxsessionLxsessionConfig* self,
                                              gint dbus_arg,
                                              const gchar* kf_categorie,
                                              const gchar* kf_key1,
                                              const gchar* kf_key2)
{
	LxsessionLxsessionConfigClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = LXSESSION_LXSESSION_CONFIG_GET_CLASS (self);
	if (_klass_->on_update_int_set) {
		_klass_->on_update_int_set (self, dbus_arg, kf_categorie, kf_key1, kf_key2);
	}
}

const gchar*
lxsession_lxsession_config_get_session_name (LxsessionLxsessionConfig* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_session_name;
	result = _tmp0_;
	return result;
}

void
lxsession_lxsession_config_set_session_name (LxsessionLxsessionConfig* self,
                                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = lxsession_lxsession_config_get_session_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_session_name);
		self->priv->_session_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, lxsession_lxsession_config_properties[LXSESSION_LXSESSION_CONFIG_SESSION_NAME_PROPERTY]);
	}
}

const gchar*
lxsession_lxsession_config_get_desktop_env_name (LxsessionLxsessionConfig* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_desktop_env_name;
	result = _tmp0_;
	return result;
}

void
lxsession_lxsession_config_set_desktop_env_name (LxsessionLxsessionConfig* self,
                                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = lxsession_lxsession_config_get_desktop_env_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_desktop_env_name);
		self->priv->_desktop_env_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, lxsession_lxsession_config_properties[LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME_PROPERTY]);
	}
}

static void
lxsession_lxsession_config_class_init (LxsessionLxsessionConfigClass * klass,
                                       gpointer klass_data)
{
	lxsession_lxsession_config_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &LxsessionLxsessionConfig_private_offset);
	((LxsessionLxsessionConfigClass *) klass)->on_update_string_set = (void (*) (LxsessionLxsessionConfig*, const gchar*, const gchar*, const gchar*, const gchar*)) lxsession_lxsession_config_real_on_update_string_set;
	((LxsessionLxsessionConfigClass *) klass)->on_update_string_list_set = (void (*) (LxsessionLxsessionConfig*, gchar**, gint, const gchar*, const gchar*, const gchar*)) lxsession_lxsession_config_real_on_update_string_list_set;
	((LxsessionLxsessionConfigClass *) klass)->on_update_int_set = (void (*) (LxsessionLxsessionConfig*, gint, const gchar*, const gchar*, const gchar*)) lxsession_lxsession_config_real_on_update_int_set;
	G_OBJECT_CLASS (klass)->get_property = _vala_lxsession_lxsession_config_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_lxsession_lxsession_config_set_property;
	G_OBJECT_CLASS (klass)->finalize = lxsession_lxsession_config_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_LXSESSION_CONFIG_SESSION_NAME_PROPERTY, lxsession_lxsession_config_properties[LXSESSION_LXSESSION_CONFIG_SESSION_NAME_PROPERTY] = g_param_spec_string ("session-name", "session-name", "session-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME_PROPERTY, lxsession_lxsession_config_properties[LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME_PROPERTY] = g_param_spec_string ("desktop-env-name", "desktop-env-name", "desktop-env-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
lxsession_lxsession_config_instance_init (LxsessionLxsessionConfig * self,
                                          gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	self->priv = lxsession_lxsession_config_get_instance_private (self);
	_tmp0_ = g_strdup ("LXDE");
	self->priv->_session_name = _tmp0_;
	_tmp1_ = g_strdup ("LXDE");
	self->priv->_desktop_env_name = _tmp1_;
}

static void
lxsession_lxsession_config_finalize (GObject * obj)
{
	LxsessionLxsessionConfig * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfig);
	_g_free0 (self->priv->_session_name);
	_g_free0 (self->priv->_desktop_env_name);
	_g_hash_table_unref0 (self->config_item_db);
	_g_hash_table_unref0 (self->session_support_item_db);
	_g_hash_table_unref0 (self->xsettings_support_item_db);
	_g_hash_table_unref0 (self->state_support_item_db);
	_g_hash_table_unref0 (self->dbus_support_item_db);
	_g_hash_table_unref0 (self->keymap_support_item_db);
	_g_hash_table_unref0 (self->environment_support_item_db);
	G_OBJECT_CLASS (lxsession_lxsession_config_parent_class)->finalize (obj);
}

static GType
lxsession_lxsession_config_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (LxsessionLxsessionConfigClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_lxsession_config_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionLxsessionConfig), 0, (GInstanceInitFunc) lxsession_lxsession_config_instance_init, NULL };
	GType lxsession_lxsession_config_type_id;
	lxsession_lxsession_config_type_id = g_type_register_static (G_TYPE_OBJECT, "LxsessionLxsessionConfig", &g_define_type_info, 0);
	LxsessionLxsessionConfig_private_offset = g_type_add_instance_private (lxsession_lxsession_config_type_id, sizeof (LxsessionLxsessionConfigPrivate));
	return lxsession_lxsession_config_type_id;
}

GType
lxsession_lxsession_config_get_type (void)
{
	static volatile gsize lxsession_lxsession_config_type_id__once = 0;
	if (g_once_init_enter (&lxsession_lxsession_config_type_id__once)) {
		GType lxsession_lxsession_config_type_id;
		lxsession_lxsession_config_type_id = lxsession_lxsession_config_get_type_once ();
		g_once_init_leave (&lxsession_lxsession_config_type_id__once, lxsession_lxsession_config_type_id);
	}
	return lxsession_lxsession_config_type_id__once;
}

static void
_vala_lxsession_lxsession_config_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec)
{
	LxsessionLxsessionConfig * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfig);
	switch (property_id) {
		case LXSESSION_LXSESSION_CONFIG_SESSION_NAME_PROPERTY:
		g_value_set_string (value, lxsession_lxsession_config_get_session_name (self));
		break;
		case LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME_PROPERTY:
		g_value_set_string (value, lxsession_lxsession_config_get_desktop_env_name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_lxsession_lxsession_config_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec)
{
	LxsessionLxsessionConfig * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfig);
	switch (property_id) {
		case LXSESSION_LXSESSION_CONFIG_SESSION_NAME_PROPERTY:
		lxsession_lxsession_config_set_session_name (self, g_value_get_string (value));
		break;
		case LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME_PROPERTY:
		lxsession_lxsession_config_set_desktop_env_name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
lxsession_lxsession_config_key_file_get_instance_private (LxsessionLxsessionConfigKeyFile* self)
{
	return G_STRUCT_MEMBER_P (self, LxsessionLxsessionConfigKeyFile_private_offset);
}

static void
_lxsession_lxsession_config_key_file_on_reload_settings_daemon_lxsession_lx_signals_reload_settings_daemon (LxsessionLxSignals* _sender,
                                                                                                            gpointer self)
{
	lxsession_lxsession_config_key_file_on_reload_settings_daemon ((LxsessionLxsessionConfigKeyFile*) self);
}

LxsessionLxsessionConfigKeyFile*
lxsession_lxsession_config_key_file_construct (GType object_type,
                                               const gchar* session_arg,
                                               const gchar* desktop_env_name_arg)
{
	LxsessionLxsessionConfigKeyFile * self = NULL;
	LxsessionLxSignals* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_;
	g_return_val_if_fail (session_arg != NULL, NULL);
	g_return_val_if_fail (desktop_env_name_arg != NULL, NULL);
	self = (LxsessionLxsessionConfigKeyFile*) lxsession_lxsession_config_construct (object_type);
	_tmp0_ = lxsession_global_sig;
	g_signal_connect_object (_tmp0_, "reload-settings-daemon", (GCallback) _lxsession_lxsession_config_key_file_on_reload_settings_daemon_lxsession_lx_signals_reload_settings_daemon, self, 0);
	lxsession_lxsession_config_key_file_init_desktop_files (self);
	lxsession_lxsession_config_set_session_name ((LxsessionLxsessionConfig*) self, session_arg);
	lxsession_lxsession_config_set_desktop_env_name ((LxsessionLxsessionConfig*) self, desktop_env_name_arg);
	lxsession_lxsession_config_key_file_read_keyfile (self);
	lxsession_lxsession_config_init_signal ((LxsessionLxsessionConfig*) self);
	lxsession_lxsession_config_key_file_setup_monitor_desktop_file (self);
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "State", "guess_default", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strcmp0 (_tmp2_, "false") != 0;
	_g_free0 (_tmp2_);
	if (_tmp3_) {
		lxsession_lxsession_config_guess_default ((LxsessionLxsessionConfig*) self);
	}
	return self;
}

LxsessionLxsessionConfigKeyFile*
lxsession_lxsession_config_key_file_new (const gchar* session_arg,
                                         const gchar* desktop_env_name_arg)
{
	return lxsession_lxsession_config_key_file_construct (LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, session_arg, desktop_env_name_arg);
}

void
lxsession_lxsession_config_key_file_init_desktop_files (LxsessionLxsessionConfigKeyFile* self)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = lxsession_get_config_path ("desktop.conf");
	_tmp1_ = _tmp0_;
	lxsession_lxsession_config_key_file_set_desktop_config_path (self, _tmp1_);
	_g_free0 (_tmp1_);
	_tmp2_ = lxsession_get_config_home_path ("desktop.conf");
	_tmp3_ = _tmp2_;
	lxsession_lxsession_config_key_file_set_desktop_config_home_path (self, _tmp3_);
	_g_free0 (_tmp3_);
}

static void
_lxsession_lxsession_config_key_file_on_desktop_file_change_g_file_monitor_changed (GFileMonitor* _sender,
                                                                                    GFile* file,
                                                                                    GFile* other_file,
                                                                                    GFileMonitorEvent event_type,
                                                                                    gpointer self)
{
	lxsession_lxsession_config_key_file_on_desktop_file_change ((LxsessionLxsessionConfigKeyFile*) self);
}

void
lxsession_lxsession_config_key_file_setup_monitor_desktop_file (LxsessionLxsessionConfigKeyFile* self)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	{
		const gchar* _tmp0_;
		GFile* _tmp1_;
		GFileMonitor* _tmp2_ = NULL;
		GFile* _tmp3_;
		GCancellable* _tmp4_;
		GFileMonitor* _tmp5_;
		GFileMonitor* _tmp6_;
		GFileMonitor* _tmp7_;
		const gchar* _tmp8_;
		GFile* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		const gchar* _tmp12_;
		gboolean _tmp13_;
		_tmp0_ = self->priv->_desktop_config_path;
		_tmp1_ = g_file_new_for_path (_tmp0_);
		_g_object_unref0 (self->desktop_file);
		self->desktop_file = _tmp1_;
		_tmp3_ = self->desktop_file;
		_tmp4_ = self->monitor_cancel;
		_tmp5_ = g_file_monitor_file (_tmp3_, G_FILE_MONITOR_NONE, _tmp4_, &_inner_error0_);
		_tmp2_ = _tmp5_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_tmp6_ = _tmp2_;
		_tmp2_ = NULL;
		_g_object_unref0 (self->monitor_desktop_file);
		self->monitor_desktop_file = _tmp6_;
		_tmp7_ = self->monitor_desktop_file;
		g_signal_connect_object (_tmp7_, "changed", (GCallback) _lxsession_lxsession_config_key_file_on_desktop_file_change_g_file_monitor_changed, self, 0);
		_tmp8_ = self->priv->_desktop_config_path;
		g_message ("settings.vala:462: Monitoring: %s", _tmp8_);
		_tmp9_ = self->desktop_file;
		_tmp10_ = g_file_get_path (_tmp9_);
		_tmp11_ = _tmp10_;
		_tmp12_ = self->priv->_desktop_config_home_path;
		_tmp13_ = g_strcmp0 (_tmp11_, _tmp12_) == 0;
		_g_free0 (_tmp11_);
		if (_tmp13_) {
			g_message ("settings.vala:466: Desktop file is already in config home, do nothing");
		} else {
			g_message ("settings.vala:470: Desktop file is not in config home, monitoring crea" \
"tion of it");
			lxsession_lxsession_config_key_file_setup_creation_desktop_file (self);
		}
		_g_object_unref0 (_tmp2_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* err = NULL;
		GError* _tmp14_;
		const gchar* _tmp15_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp14_ = err;
		_tmp15_ = _tmp14_->message;
		g_message ("settings.vala:475: %s", _tmp15_);
		_g_error_free0 (err);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
}

static void
_lxsession_lxsession_config_key_file_on_desktop_file_creation_g_file_monitor_changed (GFileMonitor* _sender,
                                                                                      GFile* file,
                                                                                      GFile* other_file,
                                                                                      GFileMonitorEvent event_type,
                                                                                      gpointer self)
{
	lxsession_lxsession_config_key_file_on_desktop_file_creation ((LxsessionLxsessionConfigKeyFile*) self);
}

void
lxsession_lxsession_config_key_file_setup_creation_desktop_file (LxsessionLxsessionConfigKeyFile* self)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	{
		const gchar* _tmp0_;
		GFile* _tmp1_;
		GFileMonitor* _tmp2_ = NULL;
		GFile* _tmp3_;
		GFileMonitor* _tmp4_;
		GFileMonitor* _tmp5_;
		GFileMonitor* _tmp6_;
		GFile* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp0_ = self->priv->_desktop_config_home_path;
		_tmp1_ = g_file_new_for_path (_tmp0_);
		_g_object_unref0 (self->home_desktop_file);
		self->home_desktop_file = _tmp1_;
		_tmp3_ = self->home_desktop_file;
		_tmp4_ = g_file_monitor_file (_tmp3_, G_FILE_MONITOR_NONE, NULL, &_inner_error0_);
		_tmp2_ = _tmp4_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_tmp5_ = _tmp2_;
		_tmp2_ = NULL;
		_g_object_unref0 (self->monitor_home_desktop_file);
		self->monitor_home_desktop_file = _tmp5_;
		_tmp6_ = self->monitor_home_desktop_file;
		g_signal_connect_object (_tmp6_, "changed", (GCallback) _lxsession_lxsession_config_key_file_on_desktop_file_creation_g_file_monitor_changed, self, 0);
		_tmp7_ = self->home_desktop_file;
		_tmp8_ = g_file_get_path (_tmp7_);
		_tmp9_ = _tmp8_;
		g_message ("settings.vala:485: Monitoring home path: %s", _tmp9_);
		_g_free0 (_tmp9_);
		_g_object_unref0 (_tmp2_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* err = NULL;
		GError* _tmp10_;
		const gchar* _tmp11_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp10_ = err;
		_tmp11_ = _tmp10_->message;
		g_message ("settings.vala:487: %s", _tmp11_);
		_g_error_free0 (err);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

void
lxsession_lxsession_config_key_file_reload_xsettings (LxsessionLxsessionConfigKeyFile* self)
{
	LxsessionXSettingsOption* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = lxsession_global_xsettings_manager;
	if (_tmp0_ == NULL) {
		LxsessionXSettingsOption* xsettings = NULL;
		LxsessionXSettingsOption* _tmp1_;
		LxsessionXSettingsOption* _tmp2_;
		LxsessionXSettingsOption* _tmp3_;
		LxsessionXSettingsOption* _tmp4_;
		_tmp1_ = lxsession_xsettings_option_new ();
		xsettings = _tmp1_;
		_tmp2_ = xsettings;
		_tmp3_ = _g_object_ref0 (_tmp2_);
		_g_object_unref0 (lxsession_global_xsettings_manager);
		lxsession_global_xsettings_manager = _tmp3_;
		_tmp4_ = lxsession_global_xsettings_manager;
		lxsession_xsettings_option_activate (_tmp4_);
		g_message ("settings.vala:498: Create a xsettings option");
		_g_object_unref0 (xsettings);
	} else {
		LxsessionXSettingsOption* _tmp5_;
		_tmp5_ = lxsession_global_xsettings_manager;
		lxsession_xsettings_option_reload (_tmp5_);
		g_message ("settings.vala:503: Reload the xsettings option");
	}
}

void
lxsession_lxsession_config_key_file_on_desktop_file_change (LxsessionLxsessionConfigKeyFile* self)
{
	g_return_if_fail (self != NULL);
	g_message ("settings.vala:509: Desktop file change, reloading XSettings daemon");
	lxsession_lxsession_config_key_file_reload_xsettings (self);
}

void
lxsession_lxsession_config_key_file_on_desktop_file_creation (LxsessionLxsessionConfigKeyFile* self)
{
	const gchar* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail (self != NULL);
	g_message ("settings.vala:515: Desktop file created in home directory, switch conf" \
"iguration to it");
	_tmp0_ = self->priv->_desktop_config_home_path;
	lxsession_lxsession_config_key_file_set_desktop_config_path (self, _tmp0_);
	_tmp1_ = self->monitor_cancel;
	g_cancellable_cancel (_tmp1_);
	lxsession_lxsession_config_key_file_reload_xsettings (self);
	lxsession_lxsession_config_key_file_setup_monitor_desktop_file (self);
}

gchar*
lxsession_lxsession_config_key_file_read_keyfile_string_value (LxsessionLxsessionConfigKeyFile* self,
                                                               GKeyFile* keyfile,
                                                               const gchar* kf_categorie,
                                                               const gchar* kf_key1,
                                                               const gchar* kf_key2,
                                                               const gchar* default_value)
{
	gchar* copy_value = NULL;
	gchar* return_value = NULL;
	const gchar* _tmp13_;
	GError* _inner_error0_ = NULL;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (keyfile != NULL, NULL);
	g_return_val_if_fail (kf_categorie != NULL, NULL);
	g_return_val_if_fail (kf_key1 != NULL, NULL);
	copy_value = NULL;
	return_value = NULL;
	{
		if (kf_key2 == NULL) {
			gchar* _tmp0_ = NULL;
			gchar* _tmp1_;
			gchar* _tmp2_;
			_tmp1_ = g_key_file_get_value (keyfile, kf_categorie, kf_key1, &_inner_error0_);
			_tmp0_ = _tmp1_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				if (_inner_error0_->domain == G_KEY_FILE_ERROR) {
					goto __catch0_g_key_file_error;
				}
				_g_free0 (return_value);
				_g_free0 (copy_value);
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return NULL;
			}
			_tmp2_ = _tmp0_;
			_tmp0_ = NULL;
			_g_free0 (copy_value);
			copy_value = _tmp2_;
			_g_free0 (_tmp0_);
		} else {
			gchar* _tmp3_ = NULL;
			gchar* _tmp4_;
			gchar* _tmp5_;
			gchar* _tmp6_;
			gchar* _tmp7_;
			gchar* _tmp8_;
			gchar* _tmp9_;
			gchar* _tmp10_;
			_tmp4_ = g_strconcat (kf_key1, "/", NULL);
			_tmp5_ = _tmp4_;
			_tmp6_ = g_strconcat (_tmp5_, kf_key2, NULL);
			_tmp7_ = _tmp6_;
			_tmp8_ = g_key_file_get_value (keyfile, kf_categorie, _tmp7_, &_inner_error0_);
			_tmp9_ = _tmp8_;
			_g_free0 (_tmp7_);
			_g_free0 (_tmp5_);
			_tmp3_ = _tmp9_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				if (_inner_error0_->domain == G_KEY_FILE_ERROR) {
					goto __catch0_g_key_file_error;
				}
				_g_free0 (return_value);
				_g_free0 (copy_value);
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return NULL;
			}
			_tmp10_ = _tmp3_;
			_tmp3_ = NULL;
			_g_free0 (copy_value);
			copy_value = _tmp10_;
			_g_free0 (_tmp3_);
		}
	}
	goto __finally0;
	__catch0_g_key_file_error:
	{
		GError* err = NULL;
		GError* _tmp11_;
		const gchar* _tmp12_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp11_ = err;
		_tmp12_ = _tmp11_->message;
		g_message ("settings.vala:540: %s", _tmp12_);
		_g_error_free0 (err);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_g_free0 (return_value);
		_g_free0 (copy_value);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return NULL;
	}
	_tmp13_ = copy_value;
	if (_tmp13_ == NULL) {
		gchar* _tmp14_;
		_tmp14_ = g_strdup (default_value);
		_g_free0 (return_value);
		return_value = _tmp14_;
	} else {
		const gchar* _tmp15_;
		_tmp15_ = copy_value;
		if (g_strcmp0 (default_value, _tmp15_) != 0) {
			const gchar* _tmp16_;
			gchar* _tmp17_;
			_tmp16_ = copy_value;
			_tmp17_ = g_strdup (_tmp16_);
			_g_free0 (return_value);
			return_value = _tmp17_;
		} else {
			gchar* _tmp18_;
			_tmp18_ = g_strdup (default_value);
			_g_free0 (return_value);
			return_value = _tmp18_;
		}
	}
	result = return_value;
	_g_free0 (copy_value);
	return result;
}

gint
lxsession_lxsession_config_key_file_read_keyfile_int_value (LxsessionLxsessionConfigKeyFile* self,
                                                            GKeyFile* keyfile,
                                                            const gchar* kf_categorie,
                                                            const gchar* kf_key1,
                                                            const gchar* kf_key2,
                                                            gint default_value)
{
	gint return_value = 0;
	GError* _inner_error0_ = NULL;
	gint result;
	g_return_val_if_fail (self != NULL, 0);
	g_return_val_if_fail (keyfile != NULL, 0);
	g_return_val_if_fail (kf_categorie != NULL, 0);
	g_return_val_if_fail (kf_key1 != NULL, 0);
	return_value = 0;
	{
		if (kf_key2 == NULL) {
			gint _tmp0_ = 0;
			_tmp0_ = g_key_file_get_integer (keyfile, kf_categorie, kf_key1, &_inner_error0_);
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				gint _tmp1_ = -1;
				if (_inner_error0_->domain == G_KEY_FILE_ERROR) {
					goto __catch0_g_key_file_error;
				}
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return _tmp1_;
			}
			return_value = _tmp0_;
		} else {
			gint _tmp2_ = 0;
			gchar* _tmp3_;
			gchar* _tmp4_;
			gchar* _tmp5_;
			gchar* _tmp6_;
			gint _tmp7_;
			_tmp3_ = g_strconcat (kf_key1, "/", NULL);
			_tmp4_ = _tmp3_;
			_tmp5_ = g_strconcat (_tmp4_, kf_key2, NULL);
			_tmp6_ = _tmp5_;
			_tmp7_ = g_key_file_get_integer (keyfile, kf_categorie, _tmp6_, &_inner_error0_);
			_g_free0 (_tmp6_);
			_g_free0 (_tmp4_);
			_tmp2_ = _tmp7_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				gint _tmp8_ = -1;
				if (_inner_error0_->domain == G_KEY_FILE_ERROR) {
					goto __catch0_g_key_file_error;
				}
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return _tmp8_;
			}
			return_value = _tmp2_;
		}
	}
	goto __finally0;
	__catch0_g_key_file_error:
	{
		GError* err = NULL;
		GError* _tmp9_;
		const gchar* _tmp10_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp9_ = err;
		_tmp10_ = _tmp9_->message;
		g_message ("settings.vala:579: %s", _tmp10_);
		_g_error_free0 (err);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		gint _tmp11_ = -1;
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return _tmp11_;
	}
	if (return_value == 0) {
		return_value = default_value;
	} else {
		if (return_value == default_value) {
			return_value = default_value;
		}
	}
	result = return_value;
	return result;
}

static gchar**
_vala_array_dup6 (gchar** self,
                  gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gchar**
_vala_array_dup7 (gchar** self,
                  gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gchar**
_vala_array_dup8 (gchar** self,
                  gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

gchar**
lxsession_lxsession_config_key_file_read_keyfile_string_list_value (LxsessionLxsessionConfigKeyFile* self,
                                                                    GKeyFile* keyfile,
                                                                    const gchar* kf_categorie,
                                                                    const gchar* kf_key1,
                                                                    const gchar* kf_key2,
                                                                    gchar** default_value,
                                                                    gint default_value_length1,
                                                                    gint* result_length1)
{
	gchar** copy_value = NULL;
	gint copy_value_length1;
	gint _copy_value_size_;
	gchar** return_value = NULL;
	gint return_value_length1;
	gint _return_value_size_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	gchar** _tmp21_;
	gint _tmp21__length1;
	GError* _inner_error0_ = NULL;
	gchar** result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (keyfile != NULL, NULL);
	g_return_val_if_fail (kf_categorie != NULL, NULL);
	g_return_val_if_fail (kf_key1 != NULL, NULL);
	copy_value = NULL;
	copy_value_length1 = 0;
	_copy_value_size_ = copy_value_length1;
	return_value = NULL;
	return_value_length1 = 0;
	_return_value_size_ = return_value_length1;
	{
		if (kf_key2 == NULL) {
			gchar** _tmp0_ = NULL;
			gsize _tmp1_ = 0;
			gchar** _tmp2_;
			gint _tmp0__length1;
			gint __tmp0__size_;
			gchar** _tmp3_;
			gint _tmp3__length1;
			_tmp2_ = g_key_file_get_string_list (keyfile, kf_categorie, kf_key1, &_tmp1_, &_inner_error0_);
			_tmp0_ = _tmp2_;
			_tmp0__length1 = _tmp1_;
			__tmp0__size_ = _tmp0__length1;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				if (_inner_error0_->domain == G_KEY_FILE_ERROR) {
					goto __catch0_g_key_file_error;
				}
				return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
				copy_value = (_vala_array_free (copy_value, copy_value_length1, (GDestroyNotify) g_free), NULL);
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return NULL;
			}
			_tmp3_ = _tmp0_;
			_tmp3__length1 = _tmp0__length1;
			_tmp0_ = NULL;
			_tmp0__length1 = 0;
			copy_value = (_vala_array_free (copy_value, copy_value_length1, (GDestroyNotify) g_free), NULL);
			copy_value = _tmp3_;
			copy_value_length1 = _tmp3__length1;
			_copy_value_size_ = copy_value_length1;
			_tmp0_ = (_vala_array_free (_tmp0_, _tmp0__length1, (GDestroyNotify) g_free), NULL);
		} else {
			gchar** _tmp4_ = NULL;
			gchar* _tmp5_;
			gchar* _tmp6_;
			gchar* _tmp7_;
			gchar* _tmp8_;
			gsize _tmp9_ = 0;
			gchar** _tmp10_;
			gchar** _tmp11_;
			gint _tmp11__length1;
			gint _tmp4__length1;
			gint __tmp4__size_;
			gchar** _tmp12_;
			gint _tmp12__length1;
			_tmp5_ = g_strconcat (kf_key1, "/", NULL);
			_tmp6_ = _tmp5_;
			_tmp7_ = g_strconcat (_tmp6_, kf_key2, NULL);
			_tmp8_ = _tmp7_;
			_tmp10_ = g_key_file_get_string_list (keyfile, kf_categorie, _tmp8_, &_tmp9_, &_inner_error0_);
			_tmp11_ = _tmp10_;
			_tmp11__length1 = _tmp9_;
			_g_free0 (_tmp8_);
			_g_free0 (_tmp6_);
			_tmp4_ = _tmp11_;
			_tmp4__length1 = _tmp11__length1;
			__tmp4__size_ = _tmp4__length1;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				if (_inner_error0_->domain == G_KEY_FILE_ERROR) {
					goto __catch0_g_key_file_error;
				}
				return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
				copy_value = (_vala_array_free (copy_value, copy_value_length1, (GDestroyNotify) g_free), NULL);
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return NULL;
			}
			_tmp12_ = _tmp4_;
			_tmp12__length1 = _tmp4__length1;
			_tmp4_ = NULL;
			_tmp4__length1 = 0;
			copy_value = (_vala_array_free (copy_value, copy_value_length1, (GDestroyNotify) g_free), NULL);
			copy_value = _tmp12_;
			copy_value_length1 = _tmp12__length1;
			_copy_value_size_ = copy_value_length1;
			_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
		}
	}
	goto __finally0;
	__catch0_g_key_file_error:
	{
		GError* err = NULL;
		GError* _tmp13_;
		const gchar* _tmp14_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp13_ = err;
		_tmp14_ = _tmp13_->message;
		g_message ("settings.vala:613: %s", _tmp14_);
		_g_error_free0 (err);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
		copy_value = (_vala_array_free (copy_value, copy_value_length1, (GDestroyNotify) g_free), NULL);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return NULL;
	}
	_tmp15_ = copy_value;
	_tmp15__length1 = copy_value_length1;
	if (_tmp15_ == NULL) {
		gchar** _tmp16_;
		gint _tmp16__length1;
		_tmp16_ = (default_value != NULL) ? _vala_array_dup6 (default_value, default_value_length1) : default_value;
		_tmp16__length1 = default_value_length1;
		return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
		return_value = _tmp16_;
		return_value_length1 = _tmp16__length1;
		_return_value_size_ = return_value_length1;
	} else {
		gchar** _tmp17_;
		gint _tmp17__length1;
		_tmp17_ = copy_value;
		_tmp17__length1 = copy_value_length1;
		if (default_value != _tmp17_) {
			gchar** _tmp18_;
			gint _tmp18__length1;
			gchar** _tmp19_;
			gint _tmp19__length1;
			_tmp18_ = copy_value;
			_tmp18__length1 = copy_value_length1;
			_tmp19_ = (_tmp18_ != NULL) ? _vala_array_dup7 (_tmp18_, _tmp18__length1) : _tmp18_;
			_tmp19__length1 = _tmp18__length1;
			return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
			return_value = _tmp19_;
			return_value_length1 = _tmp19__length1;
			_return_value_size_ = return_value_length1;
		} else {
			gchar** _tmp20_;
			gint _tmp20__length1;
			_tmp20_ = (default_value != NULL) ? _vala_array_dup8 (default_value, default_value_length1) : default_value;
			_tmp20__length1 = default_value_length1;
			return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
			return_value = _tmp20_;
			return_value_length1 = _tmp20__length1;
			_return_value_size_ = return_value_length1;
		}
	}
	_tmp21_ = return_value;
	_tmp21__length1 = return_value_length1;
	if (result_length1) {
		*result_length1 = _tmp21__length1;
	}
	result = _tmp21_;
	copy_value = (_vala_array_free (copy_value, copy_value_length1, (GDestroyNotify) g_free), NULL);
	return result;
}

void
lxsession_lxsession_config_key_file_read_key_value (LxsessionLxsessionConfigKeyFile* self,
                                                    GKeyFile* kf,
                                                    const gchar* categorie,
                                                    const gchar* key1,
                                                    const gchar* key2,
                                                    const gchar* type)
{
	gchar* default_variable = NULL;
	gchar* final_variable = NULL;
	gchar* type_output = NULL;
	gchar* item_key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	const gchar* _tmp10_;
	GQuark _tmp12_ = 0U;
	static GQuark _tmp11_label0 = 0;
	GHashTable* _tmp15_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (kf != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	g_return_if_fail (type != NULL);
	default_variable = NULL;
	final_variable = NULL;
	type_output = NULL;
	_tmp0_ = g_strconcat (categorie, ";", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, key1, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, ";", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, key2, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ";", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	item_key = _tmp9_;
	_tmp10_ = type;
	_tmp12_ = (NULL == _tmp10_) ? 0 : g_quark_from_string (_tmp10_);
	if (_tmp12_ == ((0 != _tmp11_label0) ? _tmp11_label0 : (_tmp11_label0 = g_quark_from_static_string ("string")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp13_;
				gchar* _tmp14_;
				_tmp13_ = default_variable;
				_tmp14_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, kf, categorie, key1, key2, _tmp13_);
				_g_free0 (final_variable);
				final_variable = _tmp14_;
				break;
			}
		}
	}
	_tmp15_ = ((LxsessionLxsessionConfig*) self)->config_item_db;
	if (g_hash_table_contains (_tmp15_, item_key) == FALSE) {
		const gchar* _tmp16_;
		_tmp16_ = final_variable;
		lxsession_lxsession_config_create_config_item ((LxsessionLxsessionConfig*) self, categorie, key1, key2, type, _tmp16_);
	} else {
		gchar* _tmp17_ = NULL;
		gchar* _tmp18_ = NULL;
		const gchar* _tmp19_;
		lxsession_lxsession_config_get_item ((LxsessionLxsessionConfig*) self, categorie, key1, key2, &_tmp17_, &_tmp18_);
		_g_free0 (default_variable);
		default_variable = _tmp17_;
		_g_free0 (type_output);
		type_output = _tmp18_;
		_tmp19_ = final_variable;
		lxsession_lxsession_config_set_config_item_value_on_starting ((LxsessionLxsessionConfig*) self, categorie, key1, key2, type, _tmp19_);
	}
	_g_free0 (item_key);
	_g_free0 (type_output);
	_g_free0 (final_variable);
	_g_free0 (default_variable);
}

void
lxsession_lxsession_config_key_file_read_keyfile (LxsessionLxsessionConfigKeyFile* self)
{
	const gchar* _tmp0_;
	GKeyFile* _tmp1_;
	GKeyFile* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gboolean _tmp5_;
	GKeyFile* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gboolean _tmp9_;
	GKeyFile* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gboolean _tmp17_;
	GKeyFile* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gboolean _tmp23_;
	GKeyFile* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gboolean _tmp29_;
	GKeyFile* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	gboolean _tmp36_;
	GKeyFile* _tmp39_;
	gchar* _tmp40_;
	gchar* _tmp41_;
	gboolean _tmp42_;
	GKeyFile* _tmp45_;
	gchar* _tmp46_;
	gchar* _tmp47_;
	gboolean _tmp48_;
	GKeyFile* _tmp51_;
	gchar* _tmp52_;
	gchar* _tmp53_;
	gboolean _tmp54_;
	GKeyFile* _tmp57_;
	gchar* _tmp58_;
	gchar* _tmp59_;
	gboolean _tmp60_;
	GKeyFile* _tmp63_;
	gchar* _tmp64_;
	gchar* _tmp65_;
	gboolean _tmp66_;
	GKeyFile* _tmp69_;
	gchar* _tmp70_;
	gchar* _tmp71_;
	gboolean _tmp72_;
	GKeyFile* _tmp75_;
	gchar* _tmp76_;
	gchar* _tmp77_;
	gboolean _tmp78_;
	GKeyFile* _tmp81_;
	gchar* _tmp82_;
	gchar* _tmp83_;
	gboolean _tmp84_;
	GKeyFile* _tmp87_;
	GKeyFile* _tmp88_;
	GKeyFile* _tmp89_;
	GKeyFile* _tmp90_;
	GKeyFile* _tmp91_;
	GKeyFile* _tmp92_;
	gchar* _tmp93_;
	gchar* _tmp94_;
	gboolean _tmp95_;
	GKeyFile* _tmp99_;
	GKeyFile* _tmp100_;
	GKeyFile* _tmp101_;
	GKeyFile* _tmp102_;
	GKeyFile* _tmp103_;
	GKeyFile* _tmp104_;
	GKeyFile* _tmp105_;
	GKeyFile* _tmp106_;
	GKeyFile* _tmp107_;
	GKeyFile* _tmp108_;
	GKeyFile* _tmp109_;
	GKeyFile* _tmp110_;
	GKeyFile* _tmp111_;
	GKeyFile* _tmp112_;
	GKeyFile* _tmp113_;
	GKeyFile* _tmp114_;
	GKeyFile* _tmp115_;
	GKeyFile* _tmp116_;
	GKeyFile* _tmp117_;
	GKeyFile* _tmp118_;
	GKeyFile* _tmp119_;
	GKeyFile* _tmp120_;
	GKeyFile* _tmp121_;
	GKeyFile* _tmp122_;
	GKeyFile* _tmp123_;
	GKeyFile* _tmp124_;
	GKeyFile* _tmp125_;
	GKeyFile* _tmp126_;
	GKeyFile* _tmp127_;
	GKeyFile* _tmp128_;
	GKeyFile* _tmp129_;
	GKeyFile* _tmp130_;
	GKeyFile* _tmp131_;
	GKeyFile* _tmp132_;
	GKeyFile* _tmp133_;
	GKeyFile* _tmp134_;
	GKeyFile* _tmp135_;
	GKeyFile* _tmp136_;
	GKeyFile* _tmp137_;
	GKeyFile* _tmp138_;
	gchar* _tmp139_;
	gchar* _tmp140_;
	gboolean _tmp141_;
	GKeyFile* _tmp147_;
	GKeyFile* _tmp148_;
	GKeyFile* _tmp149_;
	GKeyFile* _tmp150_;
	GKeyFile* _tmp151_;
	GKeyFile* _tmp152_;
	GKeyFile* _tmp153_;
	GKeyFile* _tmp154_;
	GKeyFile* _tmp155_;
	GKeyFile* _tmp156_;
	GKeyFile* _tmp157_;
	GKeyFile* _tmp158_;
	GKeyFile* _tmp159_;
	GKeyFile* _tmp160_;
	GKeyFile* _tmp161_;
	GKeyFile* _tmp162_;
	GKeyFile* _tmp163_;
	GKeyFile* _tmp164_;
	GKeyFile* _tmp165_;
	GKeyFile* _tmp166_;
	GKeyFile* _tmp167_;
	GKeyFile* _tmp168_;
	GKeyFile* _tmp169_;
	GKeyFile* _tmp170_;
	GKeyFile* _tmp171_;
	GKeyFile* _tmp172_;
	GKeyFile* _tmp173_;
	GKeyFile* _tmp174_;
	GKeyFile* _tmp175_;
	GKeyFile* _tmp176_;
	GKeyFile* _tmp177_;
	GKeyFile* _tmp178_;
	GKeyFile* _tmp179_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_desktop_config_path;
	_tmp1_ = lxsession_load_keyfile (_tmp0_);
	_g_key_file_unref0 (self->kf);
	self->kf = _tmp1_;
	_tmp2_ = self->kf;
	_tmp3_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp2_, "GTK", "iGtk", "ColorScheme", NULL);
	_tmp4_ = _tmp3_;
	_tmp5_ = _tmp4_ != NULL;
	_g_free0 (_tmp4_);
	if (_tmp5_) {
		lxsession_lxsession_config_delete_config_item ((LxsessionLxsessionConfig*) self, "GTK", "iGtk", "ColorScheme", "string");
	}
	_tmp6_ = self->kf;
	_tmp7_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp6_, "Session", "windows_manager", "command", NULL);
	_tmp8_ = _tmp7_;
	_tmp9_ = _tmp8_ != NULL;
	_g_free0 (_tmp8_);
	if (_tmp9_) {
		GKeyFile* _tmp10_;
		GKeyFile* _tmp11_;
		GKeyFile* _tmp12_;
		_tmp10_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp10_, "Session", "windows_manager", "command", "string");
		_tmp11_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp11_, "Session", "windows_manager", "session", "string");
		_tmp12_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp12_, "Session", "windows_manager", "extras", "string");
	} else {
		GKeyFile* _tmp13_;
		_tmp13_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp13_, "Session", "window_manager", NULL, "string");
	}
	_tmp14_ = self->kf;
	_tmp15_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp14_, "Session", "panel", "command", NULL);
	_tmp16_ = _tmp15_;
	_tmp17_ = _tmp16_ != NULL;
	_g_free0 (_tmp16_);
	if (_tmp17_) {
		GKeyFile* _tmp18_;
		GKeyFile* _tmp19_;
		_tmp18_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp18_, "Session", "panel", "command", "string");
		_tmp19_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp19_, "Session", "panel", "session", "string");
	}
	_tmp20_ = self->kf;
	_tmp21_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp20_, "Session", "dock", "command", NULL);
	_tmp22_ = _tmp21_;
	_tmp23_ = _tmp22_ != NULL;
	_g_free0 (_tmp22_);
	if (_tmp23_) {
		GKeyFile* _tmp24_;
		GKeyFile* _tmp25_;
		_tmp24_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp24_, "Session", "dock", "command", "string");
		_tmp25_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp25_, "Session", "dock", "session", "string");
	}
	_tmp26_ = self->kf;
	_tmp27_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp26_, "Session", "file_manager", "command", NULL);
	_tmp28_ = _tmp27_;
	_tmp29_ = _tmp28_ != NULL;
	_g_free0 (_tmp28_);
	if (_tmp29_) {
		GKeyFile* _tmp30_;
		GKeyFile* _tmp31_;
		GKeyFile* _tmp32_;
		_tmp30_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp30_, "Session", "file_manager", "command", "string");
		_tmp31_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp31_, "Session", "file_manager", "session", "string");
		_tmp32_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp32_, "Session", "file_manager", "extras", "string");
	}
	_tmp33_ = self->kf;
	_tmp34_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp33_, "Session", "desktop_manager", "command", NULL);
	_tmp35_ = _tmp34_;
	_tmp36_ = _tmp35_ != NULL;
	_g_free0 (_tmp35_);
	if (_tmp36_) {
		GKeyFile* _tmp37_;
		GKeyFile* _tmp38_;
		_tmp37_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp37_, "Session", "desktop_manager", "command", "string");
		_tmp38_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp38_, "Session", "desktop_manager", "wallpaper", "string");
	}
	_tmp39_ = self->kf;
	_tmp40_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp39_, "Session", "launcher_manager", "command", NULL);
	_tmp41_ = _tmp40_;
	_tmp42_ = _tmp41_ != NULL;
	_g_free0 (_tmp41_);
	if (_tmp42_) {
		GKeyFile* _tmp43_;
		GKeyFile* _tmp44_;
		_tmp43_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp43_, "Session", "launcher_manager", "command", "string");
		_tmp44_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp44_, "Session", "launcher_manager", "autostart", "string");
	}
	_tmp45_ = self->kf;
	_tmp46_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp45_, "Session", "composite_manager", "command", NULL);
	_tmp47_ = _tmp46_;
	_tmp48_ = _tmp47_ != NULL;
	_g_free0 (_tmp47_);
	if (_tmp48_) {
		GKeyFile* _tmp49_;
		GKeyFile* _tmp50_;
		_tmp49_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp49_, "Session", "composite_manager", "command", "string");
		_tmp50_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp50_, "Session", "composite_manager", "autostart", "string");
	}
	_tmp51_ = self->kf;
	_tmp52_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp51_, "Session", "im1", "command", NULL);
	_tmp53_ = _tmp52_;
	_tmp54_ = _tmp53_ != NULL;
	_g_free0 (_tmp53_);
	if (_tmp54_) {
		GKeyFile* _tmp55_;
		GKeyFile* _tmp56_;
		_tmp55_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp55_, "Session", "im1", "command", "string");
		_tmp56_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp56_, "Session", "im1", "autostart", "string");
	}
	_tmp57_ = self->kf;
	_tmp58_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp57_, "Session", "im2", "command", NULL);
	_tmp59_ = _tmp58_;
	_tmp60_ = _tmp59_ != NULL;
	_g_free0 (_tmp59_);
	if (_tmp60_) {
		GKeyFile* _tmp61_;
		GKeyFile* _tmp62_;
		_tmp61_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp61_, "Session", "im2", "command", "string");
		_tmp62_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp62_, "Session", "im2", "autostart", "string");
	}
	_tmp63_ = self->kf;
	_tmp64_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp63_, "Session", "widget1", "command", NULL);
	_tmp65_ = _tmp64_;
	_tmp66_ = _tmp65_ != NULL;
	_g_free0 (_tmp65_);
	if (_tmp66_) {
		GKeyFile* _tmp67_;
		GKeyFile* _tmp68_;
		_tmp67_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp67_, "Session", "widget1", "command", "string");
		_tmp68_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp68_, "Session", "widget1", "autostart", "string");
	}
	_tmp69_ = self->kf;
	_tmp70_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp69_, "Session", "notification", "command", NULL);
	_tmp71_ = _tmp70_;
	_tmp72_ = _tmp71_ != NULL;
	_g_free0 (_tmp71_);
	if (_tmp72_) {
		GKeyFile* _tmp73_;
		GKeyFile* _tmp74_;
		_tmp73_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp73_, "Session", "notification", "command", "string");
		_tmp74_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp74_, "Session", "notification", "autostart", "string");
	}
	_tmp75_ = self->kf;
	_tmp76_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp75_, "Session", "keybindings", "command", NULL);
	_tmp77_ = _tmp76_;
	_tmp78_ = _tmp77_ != NULL;
	_g_free0 (_tmp77_);
	if (_tmp78_) {
		GKeyFile* _tmp79_;
		GKeyFile* _tmp80_;
		_tmp79_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp79_, "Session", "keybindings", "command", "string");
		_tmp80_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp80_, "Session", "keybindings", "autostart", "string");
	}
	_tmp81_ = self->kf;
	_tmp82_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp81_, "Session", "im_manager", "command", NULL);
	_tmp83_ = _tmp82_;
	_tmp84_ = _tmp83_ != NULL;
	_g_free0 (_tmp83_);
	if (_tmp84_) {
		GKeyFile* _tmp85_;
		GKeyFile* _tmp86_;
		_tmp85_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp85_, "Session", "im_manager", "command", "string");
		_tmp86_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp86_, "Session", "im_manager", "autostart", "string");
	}
	_tmp87_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp87_, "Session", "screensaver", "command", "string");
	_tmp88_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp88_, "Session", "power_manager", "command", "string");
	_tmp89_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp89_, "Session", "polkit", "command", "string");
	_tmp90_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp90_, "Session", "audio_manager", "command", "string");
	_tmp91_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp91_, "Session", "quit_manager", "command", "string");
	_tmp92_ = self->kf;
	_tmp93_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp92_, "Session", "quit_manager", "command", NULL);
	_tmp94_ = _tmp93_;
	_tmp95_ = _tmp94_ != NULL;
	_g_free0 (_tmp94_);
	if (_tmp95_) {
		GKeyFile* _tmp96_;
		GKeyFile* _tmp97_;
		GKeyFile* _tmp98_;
		_tmp96_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp96_, "Session", "quit_manager", "command", "string");
		_tmp97_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp97_, "Session", "quit_manager", "image", "string");
		_tmp98_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp98_, "Session", "quit_manager", "layout", "string");
	}
	_tmp99_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp99_, "Session", "workspace_manager", "command", "string");
	_tmp100_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp100_, "Session", "terminal_manager", "command", "string");
	_tmp101_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp101_, "Session", "screenshot_manager", "command", "string");
	_tmp102_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp102_, "Session", "lock_manager", "command", "string");
	_tmp103_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp103_, "Session", "message_manager", "command", "string");
	_tmp104_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp104_, "Session", "upgrade_manager", "command", "string");
	_tmp105_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp105_, "Session", "updates_manager", "command", "string");
	_tmp106_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp106_, "Session", "updates_manager", "timeout", "string");
	_tmp107_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp107_, "Session", "crash_manager", "command", "string");
	_tmp108_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp108_, "Session", "crash_manager", "dev_mode", "string");
	_tmp109_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp109_, "Session", "crash_manager", "timeout", "string");
	_tmp110_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp110_, "Session", "clipboard", "command", "string");
	_tmp111_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp111_, "Session", "disable_autostart", NULL, "string");
	_tmp112_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp112_, "Session", "upstart_user_session", NULL, "string");
	_tmp113_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp113_, "Session", "xsettings_manager", "command", "string");
	_tmp114_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp114_, "Session", "proxy_manager", "command", "string");
	_tmp115_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp115_, "Session", "proxy_manager", "http", "string");
	_tmp116_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp116_, "Session", "a11y", "command", "string");
	_tmp117_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp117_, "Session", "keyring", "command", "string");
	_tmp118_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp118_, "Session", "xrandr", "command", "string");
	_tmp119_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp119_, "Session", "network_gui", "command", "string");
	_tmp120_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp120_, "Session", "webbrowser", "command", "string");
	_tmp121_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp121_, "Session", "email", "command", "string");
	_tmp122_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp122_, "Session", "pdf_reader", "command", "string");
	_tmp123_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp123_, "Session", "video_player", "command", "string");
	_tmp124_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp124_, "Session", "audio_player", "command", "string");
	_tmp125_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp125_, "Session", "image_display", "command", "string");
	_tmp126_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp126_, "Session", "text_editor", "command", "string");
	_tmp127_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp127_, "Session", "archive", "command", "string");
	_tmp128_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp128_, "Session", "charmap", "command", "string");
	_tmp129_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp129_, "Session", "calculator", "command", "string");
	_tmp130_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp130_, "Session", "spreadsheet", "command", "string");
	_tmp131_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp131_, "Session", "bittorent", "command", "string");
	_tmp132_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp132_, "Session", "document", "command", "string");
	_tmp133_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp133_, "Session", "webcam", "command", "string");
	_tmp134_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp134_, "Session", "burn", "command", "string");
	_tmp135_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp135_, "Session", "notes", "command", "string");
	_tmp136_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp136_, "Session", "disk_utility", "command", "string");
	_tmp137_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp137_, "Session", "tasks", "command", "string");
	_tmp138_ = self->kf;
	_tmp139_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp138_, "Keymap", "mode", NULL, NULL);
	_tmp140_ = _tmp139_;
	_tmp141_ = _tmp140_ != NULL;
	_g_free0 (_tmp140_);
	if (_tmp141_) {
		GKeyFile* _tmp142_;
		GKeyFile* _tmp143_;
		GKeyFile* _tmp144_;
		GKeyFile* _tmp145_;
		GKeyFile* _tmp146_;
		_tmp142_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp142_, "Keymap", "mode", NULL, "string");
		_tmp143_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp143_, "Keymap", "model", NULL, "string");
		_tmp144_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp144_, "Keymap", "layout", NULL, "string");
		_tmp145_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp145_, "Keymap", "variant", NULL, "string");
		_tmp146_ = self->kf;
		lxsession_lxsession_config_key_file_read_key_value (self, _tmp146_, "Keymap", "options", NULL, "string");
	}
	_tmp147_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp147_, "State", "laptop_mode", NULL, "string");
	_tmp148_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp148_, "State", "guess_default", NULL, "string");
	_tmp149_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp149_, "Dbus", "lxde", NULL, "string");
	_tmp150_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp150_, "Dbus", "gnome", NULL, "string");
	_tmp151_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp151_, "Environment", "type", NULL, "string");
	_tmp152_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp152_, "Environment", "menu_prefix", NULL, "string");
	_tmp153_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp153_, "Environment", "ubuntu_menuproxy", NULL, "string");
	_tmp154_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp154_, "Environment", "toolkit_integration", NULL, "string");
	_tmp155_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp155_, "Environment", "gtk", "overlay_scrollbar_disable", "string");
	_tmp156_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp156_, "Environment", "qt", "force_theme", "string");
	_tmp157_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp157_, "Environment", "qt", "platform", "string");
	_tmp158_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp158_, "GTK", "sNet", "ThemeName", "string");
	_tmp159_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp159_, "GTK", "sNet", "IconThemeName", "string");
	_tmp160_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp160_, "GTK", "sGtk", "FontName", "string");
	_tmp161_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp161_, "GTK", "iGtk", "ToolbarStyle", "string");
	_tmp162_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp162_, "GTK", "iGtk", "ButtonImages", "string");
	_tmp163_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp163_, "GTK", "iGtk", "MenuImages", "string");
	_tmp164_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp164_, "GTK", "iGtk", "CursorThemeSize", "string");
	_tmp165_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp165_, "GTK", "iXft", "Antialias", "string");
	_tmp166_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp166_, "GTK", "iXft", "Hinting", "string");
	_tmp167_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp167_, "GTK", "sXft", "HintStyle", "string");
	_tmp168_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp168_, "GTK", "sXft", "RGBA", "string");
	_tmp169_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp169_, "GTK", "sGtk", "ColorScheme", "string");
	_tmp170_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp170_, "GTK", "sGtk", "CursorThemeName", "string");
	_tmp171_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp171_, "GTK", "iGtk", "ToolbarIconSize", "string");
	_tmp172_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp172_, "GTK", "iNet", "EnableEventSounds", "string");
	_tmp173_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp173_, "GTK", "iNet", "EnableInputFeedbackSounds", "string");
	_tmp174_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp174_, "Mouse", "AccFactor", NULL, "string");
	_tmp175_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp175_, "Mouse", "AccThreshold", NULL, "string");
	_tmp176_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp176_, "Mouse", "LeftHanded", NULL, "string");
	_tmp177_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp177_, "Keyboard", "Delay", NULL, "string");
	_tmp178_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp178_, "Keyboard", "Interval", NULL, "string");
	_tmp179_ = self->kf;
	lxsession_lxsession_config_key_file_read_key_value (self, _tmp179_, "Keyboard", "Beep", NULL, "string");
	lxsession_lxsession_config_key_file_read_secondary_keyfile (self);
}

static void
lxsession_lxsession_config_key_file_real_read_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self)
{
}

void
lxsession_lxsession_config_key_file_read_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self)
{
	LxsessionLxsessionConfigKeyFileClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = LXSESSION_LXSESSION_CONFIG_KEY_FILE_GET_CLASS (self);
	if (_klass_->read_secondary_keyfile) {
		_klass_->read_secondary_keyfile (self);
	}
}

void
lxsession_lxsession_config_key_file_sync_setting_files (LxsessionLxsessionConfigKeyFile* self)
{
	gchar* desktop_file = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_desktop_config_home_path;
	_tmp1_ = g_strdup (_tmp0_);
	desktop_file = _tmp1_;
	_tmp2_ = desktop_file;
	if (g_file_test (_tmp2_, G_FILE_TEST_EXISTS)) {
		gchar* autostart_file = NULL;
		gchar* _tmp3_;
		const gchar* _tmp4_;
		_tmp3_ = lxsession_get_config_home_path ("autostart");
		autostart_file = _tmp3_;
		_tmp4_ = autostart_file;
		if (g_file_test (_tmp4_, G_FILE_TEST_EXISTS)) {
		} else {
			GFile* file = NULL;
			gchar* _tmp5_;
			gchar* _tmp6_;
			GFile* _tmp7_;
			GFile* _tmp8_;
			GFile* destination = NULL;
			gchar* _tmp9_;
			gchar* _tmp10_;
			GFile* _tmp11_;
			GFile* _tmp12_;
			_tmp5_ = lxsession_get_config_path ("autostart");
			_tmp6_ = _tmp5_;
			_tmp7_ = g_file_new_for_path (_tmp6_);
			_tmp8_ = _tmp7_;
			_g_free0 (_tmp6_);
			file = _tmp8_;
			_tmp9_ = lxsession_get_config_home_path ("autostart");
			_tmp10_ = _tmp9_;
			_tmp11_ = g_file_new_for_path (_tmp10_);
			_tmp12_ = _tmp11_;
			_g_free0 (_tmp10_);
			destination = _tmp12_;
			{
				GFile* _tmp13_;
				GFile* _tmp14_;
				_tmp13_ = file;
				_tmp14_ = destination;
				g_file_copy (_tmp13_, _tmp14_, G_FILE_COPY_NONE, NULL, NULL, NULL, &_inner_error0_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					goto __catch0_g_error;
				}
			}
			goto __finally0;
			__catch0_g_error:
			{
				GError* err = NULL;
				GError* _tmp15_;
				const gchar* _tmp16_;
				err = _inner_error0_;
				_inner_error0_ = NULL;
				_tmp15_ = err;
				_tmp16_ = _tmp15_->message;
				g_message ("settings.vala:901: %s", _tmp16_);
				_g_error_free0 (err);
			}
			__finally0:
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_object_unref0 (destination);
				_g_object_unref0 (file);
				_g_free0 (autostart_file);
				_g_free0 (desktop_file);
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return;
			}
			_g_object_unref0 (destination);
			_g_object_unref0 (file);
		}
		_g_free0 (autostart_file);
	}
	_g_free0 (desktop_file);
}

void
lxsession_lxsession_config_key_file_save_keyfile (LxsessionLxsessionConfigKeyFile* self)
{
	gchar* str = NULL;
	GKeyFile* _tmp0_;
	gchar* _tmp1_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->kf;
	_tmp1_ = g_key_file_to_data (_tmp0_, NULL, NULL);
	str = _tmp1_;
	{
		const gchar* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		_tmp2_ = self->priv->_desktop_config_path;
		_tmp3_ = strlen (str);
		_tmp4_ = _tmp3_;
		g_file_set_contents (_tmp2_, str, (gssize) _tmp4_, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			if (_inner_error0_->domain == G_FILE_ERROR) {
				goto __catch0_g_file_error;
			}
			_g_free0 (str);
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	}
	goto __finally0;
	__catch0_g_file_error:
	{
		GError* err = NULL;
		GError* _tmp5_;
		const gchar* _tmp6_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp5_ = err;
		_tmp6_ = _tmp5_->message;
		g_warning ("settings.vala:917: %s", _tmp6_);
		{
			gchar* user_config_dir = NULL;
			const gchar* _tmp7_;
			gchar* _tmp8_;
			GFile* file_parent = NULL;
			GFile* file = NULL;
			const gchar* _tmp9_;
			GFile* _tmp10_;
			GFile* _tmp11_;
			GFile* _tmp12_;
			GFile* _tmp13_;
			const gchar* _tmp17_;
			gint _tmp18_;
			gint _tmp19_;
			const gchar* _tmp20_;
			_tmp7_ = self->priv->_desktop_config_home_path;
			_tmp8_ = g_strdup (_tmp7_);
			user_config_dir = _tmp8_;
			_tmp9_ = user_config_dir;
			_tmp10_ = g_file_new_for_path (_tmp9_);
			file = _tmp10_;
			_tmp11_ = file;
			_tmp12_ = g_file_get_parent (_tmp11_);
			_g_object_unref0 (file_parent);
			file_parent = _tmp12_;
			_tmp13_ = file_parent;
			if (!g_file_query_exists (_tmp13_, NULL)) {
				{
					GFile* _tmp14_;
					_tmp14_ = file_parent;
					g_file_make_directory_with_parents (_tmp14_, NULL, &_inner_error0_);
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
						goto __catch2_g_error;
					}
				}
				goto __finally2;
				__catch2_g_error:
				{
					GError* err = NULL;
					GError* _tmp15_;
					const gchar* _tmp16_;
					err = _inner_error0_;
					_inner_error0_ = NULL;
					_tmp15_ = err;
					_tmp16_ = _tmp15_->message;
					g_warning ("settings.vala:934: %s", _tmp16_);
					_g_error_free0 (err);
				}
				__finally2:
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					_g_object_unref0 (file);
					_g_object_unref0 (file_parent);
					_g_free0 (user_config_dir);
					if (_inner_error0_->domain == G_FILE_ERROR) {
						goto __catch1_g_file_error;
					}
					_g_error_free0 (err);
					_g_free0 (str);
					g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
					g_clear_error (&_inner_error0_);
					return;
				}
			}
			_tmp17_ = user_config_dir;
			_tmp18_ = strlen (str);
			_tmp19_ = _tmp18_;
			g_file_set_contents (_tmp17_, str, (gssize) _tmp19_, &_inner_error0_);
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_object_unref0 (file);
				_g_object_unref0 (file_parent);
				_g_free0 (user_config_dir);
				if (_inner_error0_->domain == G_FILE_ERROR) {
					goto __catch1_g_file_error;
				}
				_g_error_free0 (err);
				_g_free0 (str);
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return;
			}
			_tmp20_ = user_config_dir;
			lxsession_lxsession_config_key_file_set_desktop_config_path (self, _tmp20_);
			lxsession_lxsession_config_key_file_setup_monitor_desktop_file (self);
			lxsession_lxsession_config_key_file_sync_setting_files (self);
			_g_object_unref0 (file);
			_g_object_unref0 (file_parent);
			_g_free0 (user_config_dir);
		}
		goto __finally1;
		__catch1_g_file_error:
		{
			GError* err = NULL;
			GError* _tmp21_;
			const gchar* _tmp22_;
			err = _inner_error0_;
			_inner_error0_ = NULL;
			_tmp21_ = err;
			_tmp22_ = _tmp21_->message;
			g_warning ("settings.vala:945: %s", _tmp22_);
			_g_error_free0 (err);
		}
		__finally1:
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_error_free0 (err);
			_g_free0 (str);
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
		_g_error_free0 (err);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_g_free0 (str);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
	lxsession_lxsession_config_key_file_save_secondary_keyfile (self);
	_g_free0 (str);
}

static void
lxsession_lxsession_config_key_file_real_save_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self)
{
}

void
lxsession_lxsession_config_key_file_save_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self)
{
	LxsessionLxsessionConfigKeyFileClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = LXSESSION_LXSESSION_CONFIG_KEY_FILE_GET_CLASS (self);
	if (_klass_->save_secondary_keyfile) {
		_klass_->save_secondary_keyfile (self);
	}
}

static void
lxsession_lxsession_config_key_file_real_on_update_string_set (LxsessionLxsessionConfig* base,
                                                               const gchar* dbus_arg,
                                                               const gchar* kf_categorie,
                                                               const gchar* kf_key1,
                                                               const gchar* kf_key2)
{
	LxsessionLxsessionConfigKeyFile * self;
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	static GQuark _tmp1_label1 = 0;
	static GQuark _tmp1_label2 = 0;
	self = (LxsessionLxsessionConfigKeyFile*) base;
	g_return_if_fail (dbus_arg != NULL);
	g_return_if_fail (kf_categorie != NULL);
	g_return_if_fail (kf_key1 != NULL);
	_tmp0_ = kf_key2;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp3_;
				_tmp3_ = self->kf;
				g_key_file_set_value (_tmp3_, kf_categorie, kf_key1, dbus_arg);
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label1) ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp4_;
				_tmp4_ = self->kf;
				g_key_file_set_value (_tmp4_, kf_categorie, kf_key1, dbus_arg);
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label2) ? _tmp1_label2 : (_tmp1_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp5_;
				_tmp5_ = self->kf;
				g_key_file_set_value (_tmp5_, kf_categorie, kf_key1, dbus_arg);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				GKeyFile* _tmp6_;
				gchar* _tmp7_;
				gchar* _tmp8_;
				gchar* _tmp9_;
				gchar* _tmp10_;
				_tmp6_ = self->kf;
				_tmp7_ = g_strconcat (kf_key1, "/", NULL);
				_tmp8_ = _tmp7_;
				_tmp9_ = g_strconcat (_tmp8_, kf_key2, NULL);
				_tmp10_ = _tmp9_;
				g_key_file_set_value (_tmp6_, kf_categorie, _tmp10_, dbus_arg);
				_g_free0 (_tmp10_);
				_g_free0 (_tmp8_);
				break;
			}
		}
	}
	lxsession_lxsession_config_key_file_save_keyfile (self);
}

static void
lxsession_lxsession_config_key_file_real_on_update_string_list_set (LxsessionLxsessionConfig* base,
                                                                    gchar** dbus_arg,
                                                                    gint dbus_arg_length1,
                                                                    const gchar* kf_categorie,
                                                                    const gchar* kf_key1,
                                                                    const gchar* kf_key2)
{
	LxsessionLxsessionConfigKeyFile * self;
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	static GQuark _tmp1_label1 = 0;
	static GQuark _tmp1_label2 = 0;
	self = (LxsessionLxsessionConfigKeyFile*) base;
	g_return_if_fail (kf_categorie != NULL);
	g_return_if_fail (kf_key1 != NULL);
	_tmp0_ = kf_key2;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp3_;
				_tmp3_ = self->kf;
				g_key_file_set_string_list (_tmp3_, kf_categorie, kf_key1, (const gchar* const*) dbus_arg, (gint) dbus_arg_length1);
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label1) ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp4_;
				_tmp4_ = self->kf;
				g_key_file_set_string_list (_tmp4_, kf_categorie, kf_key1, (const gchar* const*) dbus_arg, (gint) dbus_arg_length1);
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label2) ? _tmp1_label2 : (_tmp1_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp5_;
				_tmp5_ = self->kf;
				g_key_file_set_string_list (_tmp5_, kf_categorie, kf_key1, (const gchar* const*) dbus_arg, (gint) dbus_arg_length1);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				GKeyFile* _tmp6_;
				gchar* _tmp7_;
				gchar* _tmp8_;
				gchar* _tmp9_;
				gchar* _tmp10_;
				_tmp6_ = self->kf;
				_tmp7_ = g_strconcat (kf_key1, "/", NULL);
				_tmp8_ = _tmp7_;
				_tmp9_ = g_strconcat (_tmp8_, kf_key2, NULL);
				_tmp10_ = _tmp9_;
				g_key_file_set_string_list (_tmp6_, kf_categorie, _tmp10_, (const gchar* const*) dbus_arg, (gint) dbus_arg_length1);
				_g_free0 (_tmp10_);
				_g_free0 (_tmp8_);
				break;
			}
		}
	}
	lxsession_lxsession_config_key_file_save_keyfile (self);
}

static void
lxsession_lxsession_config_key_file_real_on_update_int_set (LxsessionLxsessionConfig* base,
                                                            gint dbus_arg,
                                                            const gchar* kf_categorie,
                                                            const gchar* kf_key1,
                                                            const gchar* kf_key2)
{
	LxsessionLxsessionConfigKeyFile * self;
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	static GQuark _tmp1_label1 = 0;
	static GQuark _tmp1_label2 = 0;
	self = (LxsessionLxsessionConfigKeyFile*) base;
	g_return_if_fail (kf_categorie != NULL);
	g_return_if_fail (kf_key1 != NULL);
	_tmp0_ = kf_key2;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp3_;
				g_message ("settings.vala:1009: Changing %s - %s to %i", kf_categorie, kf_key1, dbus_arg);
				_tmp3_ = self->kf;
				g_key_file_set_integer (_tmp3_, kf_categorie, kf_key1, dbus_arg);
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label1) ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp4_;
				g_message ("settings.vala:1013: Changing %s - %s to %i", kf_categorie, kf_key1, dbus_arg);
				_tmp4_ = self->kf;
				g_key_file_set_integer (_tmp4_, kf_categorie, kf_key1, dbus_arg);
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label2) ? _tmp1_label2 : (_tmp1_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp5_;
				g_message ("settings.vala:1017: Changing %s - %s to %i", kf_categorie, kf_key1, dbus_arg);
				_tmp5_ = self->kf;
				g_key_file_set_integer (_tmp5_, kf_categorie, kf_key1, dbus_arg);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				GKeyFile* _tmp6_;
				gchar* _tmp7_;
				gchar* _tmp8_;
				gchar* _tmp9_;
				gchar* _tmp10_;
				g_message ("settings.vala:1021: Changing %s - %s - %s to %i", kf_categorie, kf_key1, kf_key2, dbus_arg);
				_tmp6_ = self->kf;
				_tmp7_ = g_strconcat (kf_key1, "/", NULL);
				_tmp8_ = _tmp7_;
				_tmp9_ = g_strconcat (_tmp8_, kf_key2, NULL);
				_tmp10_ = _tmp9_;
				g_key_file_set_integer (_tmp6_, kf_categorie, _tmp10_, dbus_arg);
				_g_free0 (_tmp10_);
				_g_free0 (_tmp8_);
				break;
			}
		}
	}
	lxsession_lxsession_config_key_file_save_keyfile (self);
}

void
lxsession_lxsession_config_key_file_on_reload_settings_daemon (LxsessionLxsessionConfigKeyFile* self)
{
	g_return_if_fail (self != NULL);
	g_message ("settings.vala:1030: Reloading XSettings daemon");
	lxsession_lxsession_config_key_file_reload_xsettings (self);
}

const gchar*
lxsession_lxsession_config_key_file_get_desktop_config_path (LxsessionLxsessionConfigKeyFile* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_desktop_config_path;
	result = _tmp0_;
	return result;
}

void
lxsession_lxsession_config_key_file_set_desktop_config_path (LxsessionLxsessionConfigKeyFile* self,
                                                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = lxsession_lxsession_config_key_file_get_desktop_config_path (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_desktop_config_path);
		self->priv->_desktop_config_path = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, lxsession_lxsession_config_key_file_properties[LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_PATH_PROPERTY]);
	}
}

const gchar*
lxsession_lxsession_config_key_file_get_desktop_config_home_path (LxsessionLxsessionConfigKeyFile* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_desktop_config_home_path;
	result = _tmp0_;
	return result;
}

void
lxsession_lxsession_config_key_file_set_desktop_config_home_path (LxsessionLxsessionConfigKeyFile* self,
                                                                  const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = lxsession_lxsession_config_key_file_get_desktop_config_home_path (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_desktop_config_home_path);
		self->priv->_desktop_config_home_path = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, lxsession_lxsession_config_key_file_properties[LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_HOME_PATH_PROPERTY]);
	}
}

static void
lxsession_lxsession_config_key_file_class_init (LxsessionLxsessionConfigKeyFileClass * klass,
                                                gpointer klass_data)
{
	lxsession_lxsession_config_key_file_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &LxsessionLxsessionConfigKeyFile_private_offset);
	((LxsessionLxsessionConfigKeyFileClass *) klass)->read_secondary_keyfile = (void (*) (LxsessionLxsessionConfigKeyFile*)) lxsession_lxsession_config_key_file_real_read_secondary_keyfile;
	((LxsessionLxsessionConfigKeyFileClass *) klass)->save_secondary_keyfile = (void (*) (LxsessionLxsessionConfigKeyFile*)) lxsession_lxsession_config_key_file_real_save_secondary_keyfile;
	((LxsessionLxsessionConfigClass *) klass)->on_update_string_set = (void (*) (LxsessionLxsessionConfig*, const gchar*, const gchar*, const gchar*, const gchar*)) lxsession_lxsession_config_key_file_real_on_update_string_set;
	((LxsessionLxsessionConfigClass *) klass)->on_update_string_list_set = (void (*) (LxsessionLxsessionConfig*, gchar**, gint, const gchar*, const gchar*, const gchar*)) lxsession_lxsession_config_key_file_real_on_update_string_list_set;
	((LxsessionLxsessionConfigClass *) klass)->on_update_int_set = (void (*) (LxsessionLxsessionConfig*, gint, const gchar*, const gchar*, const gchar*)) lxsession_lxsession_config_key_file_real_on_update_int_set;
	G_OBJECT_CLASS (klass)->get_property = _vala_lxsession_lxsession_config_key_file_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_lxsession_lxsession_config_key_file_set_property;
	G_OBJECT_CLASS (klass)->finalize = lxsession_lxsession_config_key_file_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_PATH_PROPERTY, lxsession_lxsession_config_key_file_properties[LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_PATH_PROPERTY] = g_param_spec_string ("desktop-config-path", "desktop-config-path", "desktop-config-path", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_HOME_PATH_PROPERTY, lxsession_lxsession_config_key_file_properties[LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_HOME_PATH_PROPERTY] = g_param_spec_string ("desktop-config-home-path", "desktop-config-home-path", "desktop-config-home-path", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
lxsession_lxsession_config_key_file_instance_init (LxsessionLxsessionConfigKeyFile * self,
                                                   gpointer klass)
{
	GKeyFile* _tmp0_;
	self->priv = lxsession_lxsession_config_key_file_get_instance_private (self);
	_tmp0_ = g_key_file_new ();
	self->kf = _tmp0_;
	self->priv->_desktop_config_path = NULL;
	self->priv->_desktop_config_home_path = NULL;
}

static void
lxsession_lxsession_config_key_file_finalize (GObject * obj)
{
	LxsessionLxsessionConfigKeyFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFile);
	_g_key_file_unref0 (self->kf);
	_g_free0 (self->priv->_desktop_config_path);
	_g_free0 (self->priv->_desktop_config_home_path);
	_g_object_unref0 (self->desktop_file);
	_g_object_unref0 (self->home_desktop_file);
	_g_object_unref0 (self->monitor_desktop_file);
	_g_object_unref0 (self->monitor_home_desktop_file);
	_g_object_unref0 (self->monitor_cancel);
	G_OBJECT_CLASS (lxsession_lxsession_config_key_file_parent_class)->finalize (obj);
}

static GType
lxsession_lxsession_config_key_file_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (LxsessionLxsessionConfigKeyFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_lxsession_config_key_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionLxsessionConfigKeyFile), 0, (GInstanceInitFunc) lxsession_lxsession_config_key_file_instance_init, NULL };
	GType lxsession_lxsession_config_key_file_type_id;
	lxsession_lxsession_config_key_file_type_id = g_type_register_static (LXSESSION_TYPE_LXSESSION_CONFIG, "LxsessionLxsessionConfigKeyFile", &g_define_type_info, 0);
	LxsessionLxsessionConfigKeyFile_private_offset = g_type_add_instance_private (lxsession_lxsession_config_key_file_type_id, sizeof (LxsessionLxsessionConfigKeyFilePrivate));
	return lxsession_lxsession_config_key_file_type_id;
}

GType
lxsession_lxsession_config_key_file_get_type (void)
{
	static volatile gsize lxsession_lxsession_config_key_file_type_id__once = 0;
	if (g_once_init_enter (&lxsession_lxsession_config_key_file_type_id__once)) {
		GType lxsession_lxsession_config_key_file_type_id;
		lxsession_lxsession_config_key_file_type_id = lxsession_lxsession_config_key_file_get_type_once ();
		g_once_init_leave (&lxsession_lxsession_config_key_file_type_id__once, lxsession_lxsession_config_key_file_type_id);
	}
	return lxsession_lxsession_config_key_file_type_id__once;
}

static void
_vala_lxsession_lxsession_config_key_file_get_property (GObject * object,
                                                        guint property_id,
                                                        GValue * value,
                                                        GParamSpec * pspec)
{
	LxsessionLxsessionConfigKeyFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFile);
	switch (property_id) {
		case LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_PATH_PROPERTY:
		g_value_set_string (value, lxsession_lxsession_config_key_file_get_desktop_config_path (self));
		break;
		case LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_HOME_PATH_PROPERTY:
		g_value_set_string (value, lxsession_lxsession_config_key_file_get_desktop_config_home_path (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_lxsession_lxsession_config_key_file_set_property (GObject * object,
                                                        guint property_id,
                                                        const GValue * value,
                                                        GParamSpec * pspec)
{
	LxsessionLxsessionConfigKeyFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFile);
	switch (property_id) {
		case LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_PATH_PROPERTY:
		lxsession_lxsession_config_key_file_set_desktop_config_path (self, g_value_get_string (value));
		break;
		case LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_HOME_PATH_PROPERTY:
		lxsession_lxsession_config_key_file_set_desktop_config_home_path (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

LxsessionRazorQtConfigKeyFile*
lxsession_razor_qt_config_key_file_construct (GType object_type,
                                              const gchar* session_arg,
                                              const gchar* desktop_env_name_arg)
{
	LxsessionRazorQtConfigKeyFile * self = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (session_arg != NULL, NULL);
	g_return_val_if_fail (desktop_env_name_arg != NULL, NULL);
	self = (LxsessionRazorQtConfigKeyFile*) lxsession_lxsession_config_key_file_construct (object_type, session_arg, desktop_env_name_arg);
	lxsession_lxsession_config_key_file_init_desktop_files ((LxsessionLxsessionConfigKeyFile*) self);
	lxsession_razor_qt_config_key_file_init_desktop_razor_files (self);
	lxsession_lxsession_config_set_session_name ((LxsessionLxsessionConfig*) self, session_arg);
	lxsession_lxsession_config_set_desktop_env_name ((LxsessionLxsessionConfig*) self, desktop_env_name_arg);
	lxsession_lxsession_config_key_file_read_keyfile ((LxsessionLxsessionConfigKeyFile*) self);
	lxsession_lxsession_config_init_signal ((LxsessionLxsessionConfig*) self);
	lxsession_lxsession_config_key_file_setup_monitor_desktop_file ((LxsessionLxsessionConfigKeyFile*) self);
	_tmp0_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "State", "guess_default", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strcmp0 (_tmp1_, "false") != 0;
	_g_free0 (_tmp1_);
	if (_tmp2_) {
		lxsession_lxsession_config_guess_default ((LxsessionLxsessionConfig*) self);
	}
	return self;
}

LxsessionRazorQtConfigKeyFile*
lxsession_razor_qt_config_key_file_new (const gchar* session_arg,
                                        const gchar* desktop_env_name_arg)
{
	return lxsession_razor_qt_config_key_file_construct (LXSESSION_TYPE_RAZOR_QT_CONFIG_KEY_FILE, session_arg, desktop_env_name_arg);
}

void
lxsession_razor_qt_config_key_file_init_desktop_razor_files (LxsessionRazorQtConfigKeyFile* self)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	GFile* home_session_razor_file = NULL;
	const gchar* _tmp2_;
	GFile* _tmp3_;
	gchar* _tmp4_;
	GFile* session_razor_file = NULL;
	const gchar* _tmp5_;
	GFile* _tmp6_;
	GFile* _tmp7_;
	const gchar* _tmp18_;
	gchar* _tmp19_;
	GFile* home_conf_razor_file = NULL;
	const gchar* _tmp20_;
	GFile* _tmp21_;
	gchar* _tmp22_;
	GFile* conf_razor_file = NULL;
	const gchar* _tmp23_;
	GFile* _tmp24_;
	GFile* _tmp25_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_get_user_config_dir ();
	_tmp1_ = g_build_filename (_tmp0_, "razor", "session.conf", NULL);
	_g_free0 (self->session_razor_config_home_path);
	self->session_razor_config_home_path = _tmp1_;
	_tmp2_ = self->session_razor_config_home_path;
	_tmp3_ = g_file_new_for_path (_tmp2_);
	home_session_razor_file = _tmp3_;
	_tmp4_ = g_build_filename ("etc", "xdg", "razor", "session.conf", NULL);
	_g_free0 (self->session_razor_config_path);
	self->session_razor_config_path = _tmp4_;
	_tmp5_ = self->session_razor_config_path;
	_tmp6_ = g_file_new_for_path (_tmp5_);
	session_razor_file = _tmp6_;
	_tmp7_ = home_session_razor_file;
	if (g_file_query_exists (_tmp7_, NULL)) {
		const gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp8_ = self->session_razor_config_home_path;
		_tmp9_ = g_strdup (_tmp8_);
		_g_free0 (self->session_razor_config_path);
		self->session_razor_config_path = _tmp9_;
	} else {
		GFile* _tmp10_;
		_tmp10_ = session_razor_file;
		if (g_file_query_exists (_tmp10_, NULL)) {
		} else {
			const gchar* _tmp11_;
			gchar* _tmp12_;
			_tmp11_ = self->session_razor_config_home_path;
			_tmp12_ = g_strdup (_tmp11_);
			_g_free0 (self->session_razor_config_path);
			self->session_razor_config_path = _tmp12_;
			{
				GFile* _tmp13_;
				GFileOutputStream* _tmp14_;
				GFileOutputStream* _tmp15_;
				_tmp13_ = home_session_razor_file;
				_tmp14_ = g_file_create (_tmp13_, G_FILE_CREATE_NONE, NULL, &_inner_error0_);
				_tmp15_ = _tmp14_;
				_g_object_unref0 (_tmp15_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					goto __catch0_g_error;
				}
			}
			goto __finally0;
			__catch0_g_error:
			{
				GError* err = NULL;
				GError* _tmp16_;
				const gchar* _tmp17_;
				err = _inner_error0_;
				_inner_error0_ = NULL;
				_tmp16_ = err;
				_tmp17_ = _tmp16_->message;
				g_message ("settings.vala:1101: %s", _tmp17_);
				_g_error_free0 (err);
			}
			__finally0:
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_object_unref0 (session_razor_file);
				_g_object_unref0 (home_session_razor_file);
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return;
			}
		}
	}
	_tmp18_ = g_get_user_config_dir ();
	_tmp19_ = g_build_filename (_tmp18_, "razor", "razor.conf", NULL);
	_g_free0 (self->conf_razor_config_home_path);
	self->conf_razor_config_home_path = _tmp19_;
	_tmp20_ = self->conf_razor_config_home_path;
	_tmp21_ = g_file_new_for_path (_tmp20_);
	home_conf_razor_file = _tmp21_;
	_tmp22_ = g_build_filename ("etc", "xdg", "razor", "razor.conf", NULL);
	_g_free0 (self->conf_razor_config_path);
	self->conf_razor_config_path = _tmp22_;
	_tmp23_ = self->conf_razor_config_path;
	_tmp24_ = g_file_new_for_path (_tmp23_);
	conf_razor_file = _tmp24_;
	_tmp25_ = home_conf_razor_file;
	if (g_file_query_exists (_tmp25_, NULL)) {
		const gchar* _tmp26_;
		gchar* _tmp27_;
		_tmp26_ = self->conf_razor_config_home_path;
		_tmp27_ = g_strdup (_tmp26_);
		_g_free0 (self->conf_razor_config_path);
		self->conf_razor_config_path = _tmp27_;
	} else {
		GFile* _tmp28_;
		_tmp28_ = conf_razor_file;
		if (g_file_query_exists (_tmp28_, NULL)) {
		} else {
			const gchar* _tmp29_;
			gchar* _tmp30_;
			_tmp29_ = self->conf_razor_config_home_path;
			_tmp30_ = g_strdup (_tmp29_);
			_g_free0 (self->conf_razor_config_path);
			self->conf_razor_config_path = _tmp30_;
			{
				GFile* _tmp31_;
				GFileOutputStream* _tmp32_;
				GFileOutputStream* _tmp33_;
				_tmp31_ = home_conf_razor_file;
				_tmp32_ = g_file_create (_tmp31_, G_FILE_CREATE_NONE, NULL, &_inner_error0_);
				_tmp33_ = _tmp32_;
				_g_object_unref0 (_tmp33_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					goto __catch1_g_error;
				}
			}
			goto __finally1;
			__catch1_g_error:
			{
				GError* err = NULL;
				GError* _tmp34_;
				const gchar* _tmp35_;
				err = _inner_error0_;
				_inner_error0_ = NULL;
				_tmp34_ = err;
				_tmp35_ = _tmp34_->message;
				g_message ("settings.vala:1128: %s", _tmp35_);
				_g_error_free0 (err);
			}
			__finally1:
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_object_unref0 (conf_razor_file);
				_g_object_unref0 (home_conf_razor_file);
				_g_object_unref0 (session_razor_file);
				_g_object_unref0 (home_session_razor_file);
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return;
			}
		}
	}
	_g_object_unref0 (conf_razor_file);
	_g_object_unref0 (home_conf_razor_file);
	_g_object_unref0 (session_razor_file);
	_g_object_unref0 (home_session_razor_file);
}

void
lxsession_razor_qt_config_key_file_read_razor_key_value (LxsessionRazorQtConfigKeyFile* self,
                                                         GKeyFile* kf,
                                                         const gchar* categorie,
                                                         const gchar* key1,
                                                         const gchar* key2,
                                                         const gchar* type,
                                                         const gchar* categorie_razor,
                                                         const gchar* key1_razor,
                                                         const gchar* key2_razor)
{
	gchar* default_variable = NULL;
	gchar* final_variable = NULL;
	gchar* type_output = NULL;
	gchar* item_key = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	const gchar* _tmp10_;
	GQuark _tmp12_ = 0U;
	static GQuark _tmp11_label0 = 0;
	GHashTable* _tmp15_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (kf != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	g_return_if_fail (type != NULL);
	g_return_if_fail (categorie_razor != NULL);
	g_return_if_fail (key1_razor != NULL);
	default_variable = NULL;
	final_variable = NULL;
	type_output = NULL;
	_tmp0_ = g_strconcat (categorie, ";", NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strconcat (_tmp1_, key1, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_tmp3_, ";", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, key2, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ";", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	item_key = _tmp9_;
	_tmp10_ = type;
	_tmp12_ = (NULL == _tmp10_) ? 0 : g_quark_from_string (_tmp10_);
	if (_tmp12_ == ((0 != _tmp11_label0) ? _tmp11_label0 : (_tmp11_label0 = g_quark_from_static_string ("string")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp13_;
				gchar* _tmp14_;
				_tmp13_ = default_variable;
				_tmp14_ = lxsession_razor_qt_config_key_file_read_razor_keyfile_bool_value (self, kf, categorie_razor, key1_razor, key2_razor, _tmp13_);
				_g_free0 (final_variable);
				final_variable = _tmp14_;
				break;
			}
		}
	}
	_tmp15_ = ((LxsessionLxsessionConfig*) self)->config_item_db;
	if (g_hash_table_contains (_tmp15_, item_key)) {
		g_message ("settings.vala:1151: Create new config key: %s", item_key);
		lxsession_lxsession_config_create_config_item ((LxsessionLxsessionConfig*) self, categorie, key1, key2, type, NULL);
	} else {
		gchar* _tmp16_ = NULL;
		gchar* _tmp17_ = NULL;
		const gchar* _tmp18_;
		lxsession_lxsession_config_get_item ((LxsessionLxsessionConfig*) self, categorie, key1, key2, &_tmp16_, &_tmp17_);
		_g_free0 (default_variable);
		default_variable = _tmp16_;
		_g_free0 (type_output);
		type_output = _tmp17_;
		_tmp18_ = final_variable;
		lxsession_lxsession_config_set_config_item_value ((LxsessionLxsessionConfig*) self, categorie, key1, key2, type, _tmp18_);
	}
	_g_free0 (item_key);
	_g_free0 (type_output);
	_g_free0 (final_variable);
	_g_free0 (default_variable);
}

static void
lxsession_razor_qt_config_key_file_real_read_secondary_keyfile (LxsessionLxsessionConfigKeyFile* base)
{
	LxsessionRazorQtConfigKeyFile * self;
	const gchar* _tmp0_;
	GKeyFile* _tmp1_;
	GKeyFile* _tmp2_;
	GKeyFile* _tmp3_;
	GKeyFile* _tmp4_;
	GKeyFile* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gboolean _tmp8_;
	GKeyFile* _tmp9_;
	const gchar* _tmp10_;
	GKeyFile* _tmp11_;
	GKeyFile* _tmp12_;
	GKeyFile* _tmp13_;
	self = (LxsessionRazorQtConfigKeyFile*) base;
	lxsession_lxsession_config_set_generic_default ((LxsessionLxsessionConfig*) self, "Environment", "menu_prefix", NULL, "string", "razor-");
	_tmp0_ = self->session_razor_config_path;
	_tmp1_ = lxsession_load_keyfile (_tmp0_);
	_g_key_file_unref0 (self->kf_session);
	self->kf_session = _tmp1_;
	_tmp2_ = ((LxsessionLxsessionConfigKeyFile*) self)->kf;
	lxsession_razor_qt_config_key_file_read_razor_key_value (self, _tmp2_, "Session", "windows_manager", "command", "string", "General", "windowmanager", NULL);
	_tmp3_ = ((LxsessionLxsessionConfigKeyFile*) self)->kf;
	lxsession_razor_qt_config_key_file_read_razor_key_value (self, _tmp3_, "Session", "panel", "command", "string", "modules", "razor-panel", NULL);
	_tmp4_ = ((LxsessionLxsessionConfigKeyFile*) self)->kf;
	lxsession_razor_qt_config_key_file_read_razor_key_value (self, _tmp4_, "Session", "desktop", "command", "string", "modules", "razor-desktop", NULL);
	_tmp5_ = ((LxsessionLxsessionConfigKeyFile*) self)->kf;
	lxsession_razor_qt_config_key_file_read_razor_key_value (self, _tmp5_, "Session", "launcher_manager", "command", "string", "modules", "razor-runner", NULL);
	_tmp6_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "Session", "launcher_manager", "command");
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strcmp0 (_tmp7_, "razor-runner") == 0;
	_g_free0 (_tmp7_);
	if (_tmp8_) {
		lxsession_lxsession_config_set_config_item_value ((LxsessionLxsessionConfig*) self, "Session", "launcher_manager", "autostart", "string", "true");
	}
	_tmp9_ = ((LxsessionLxsessionConfigKeyFile*) self)->kf;
	lxsession_razor_qt_config_key_file_read_razor_key_value (self, _tmp9_, "Session", "polkit", "command", "string", "modules", "razor-policykit-agent", NULL);
	_tmp10_ = self->session_razor_config_path;
	_tmp11_ = lxsession_load_keyfile (_tmp10_);
	_g_key_file_unref0 (self->kf_conf);
	self->kf_conf = _tmp11_;
	_tmp12_ = self->kf_conf;
	lxsession_razor_qt_config_key_file_read_razor_key_value (self, _tmp12_, "GTK", "sNet", "ThemeName", "string", "Theme", "theme", NULL);
	_tmp13_ = self->kf_conf;
	lxsession_razor_qt_config_key_file_read_razor_key_value (self, _tmp13_, "GTK", "sNet", "IconThemeName", "string", "Theme", "icon_theme", NULL);
}

gchar*
lxsession_razor_qt_config_key_file_read_razor_keyfile_bool_value (LxsessionRazorQtConfigKeyFile* self,
                                                                  GKeyFile* keyfile,
                                                                  const gchar* kf_categorie,
                                                                  const gchar* kf_key1,
                                                                  const gchar* kf_key2,
                                                                  const gchar* default_value)
{
	gchar* copy_value = NULL;
	gchar* return_value = NULL;
	const gchar* _tmp13_;
	GError* _inner_error0_ = NULL;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (keyfile != NULL, NULL);
	g_return_val_if_fail (kf_categorie != NULL, NULL);
	g_return_val_if_fail (kf_key1 != NULL, NULL);
	copy_value = NULL;
	return_value = NULL;
	{
		if (kf_key2 == NULL) {
			gchar* _tmp0_ = NULL;
			gchar* _tmp1_;
			gchar* _tmp2_;
			_tmp1_ = g_key_file_get_value (keyfile, kf_categorie, kf_key1, &_inner_error0_);
			_tmp0_ = _tmp1_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				if (_inner_error0_->domain == G_KEY_FILE_ERROR) {
					goto __catch0_g_key_file_error;
				}
				_g_free0 (return_value);
				_g_free0 (copy_value);
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return NULL;
			}
			_tmp2_ = _tmp0_;
			_tmp0_ = NULL;
			_g_free0 (copy_value);
			copy_value = _tmp2_;
			_g_free0 (_tmp0_);
		} else {
			gchar* _tmp3_ = NULL;
			gchar* _tmp4_;
			gchar* _tmp5_;
			gchar* _tmp6_;
			gchar* _tmp7_;
			gchar* _tmp8_;
			gchar* _tmp9_;
			gchar* _tmp10_;
			_tmp4_ = g_strconcat (kf_key1, "/", NULL);
			_tmp5_ = _tmp4_;
			_tmp6_ = g_strconcat (_tmp5_, kf_key2, NULL);
			_tmp7_ = _tmp6_;
			_tmp8_ = g_key_file_get_value (keyfile, kf_categorie, _tmp7_, &_inner_error0_);
			_tmp9_ = _tmp8_;
			_g_free0 (_tmp7_);
			_g_free0 (_tmp5_);
			_tmp3_ = _tmp9_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				if (_inner_error0_->domain == G_KEY_FILE_ERROR) {
					goto __catch0_g_key_file_error;
				}
				_g_free0 (return_value);
				_g_free0 (copy_value);
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
				g_clear_error (&_inner_error0_);
				return NULL;
			}
			_tmp10_ = _tmp3_;
			_tmp3_ = NULL;
			_g_free0 (copy_value);
			copy_value = _tmp10_;
			_g_free0 (_tmp3_);
		}
	}
	goto __finally0;
	__catch0_g_key_file_error:
	{
		GError* err = NULL;
		GError* _tmp11_;
		const gchar* _tmp12_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp11_ = err;
		_tmp12_ = _tmp11_->message;
		g_message ("settings.vala:1213: %s", _tmp12_);
		_g_error_free0 (err);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_g_free0 (return_value);
		_g_free0 (copy_value);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return NULL;
	}
	_tmp13_ = copy_value;
	if (_tmp13_ == NULL) {
		gchar* _tmp14_;
		_tmp14_ = g_strdup (default_value);
		_g_free0 (return_value);
		return_value = _tmp14_;
	} else {
		const gchar* _tmp15_;
		_tmp15_ = copy_value;
		if (g_strcmp0 (_tmp15_, "true") == 0) {
			gchar* _tmp16_;
			_tmp16_ = g_strdup (kf_key1);
			_g_free0 (return_value);
			return_value = _tmp16_;
		} else {
			gchar* _tmp17_;
			_tmp17_ = g_strdup (default_value);
			_g_free0 (return_value);
			return_value = _tmp17_;
		}
	}
	result = return_value;
	_g_free0 (copy_value);
	return result;
}

static void
lxsession_razor_qt_config_key_file_real_save_secondary_keyfile (LxsessionLxsessionConfigKeyFile* base)
{
	LxsessionRazorQtConfigKeyFile * self;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	GKeyFile* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gboolean _tmp9_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gboolean _tmp14_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gboolean _tmp19_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gboolean _tmp24_;
	gchar* str_session = NULL;
	GKeyFile* _tmp27_;
	gchar* _tmp28_;
	gchar* str_conf = NULL;
	GKeyFile* _tmp34_;
	gchar* _tmp35_;
	GError* _inner_error0_ = NULL;
	self = (LxsessionRazorQtConfigKeyFile*) base;
	_tmp0_ = self->session_razor_config_home_path;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->session_razor_config_path);
	self->session_razor_config_path = _tmp1_;
	_tmp2_ = self->conf_razor_config_home_path;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 (self->conf_razor_config_path);
	self->conf_razor_config_path = _tmp3_;
	_tmp4_ = self->kf_session;
	_tmp5_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "Session", "windows_manager", "command");
	_tmp6_ = _tmp5_;
	g_key_file_set_value (_tmp4_, "General", "windowmanager", _tmp6_);
	_g_free0 (_tmp6_);
	_tmp7_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "Session", "panel", "command");
	_tmp8_ = _tmp7_;
	_tmp9_ = g_strcmp0 (_tmp8_, "razor-panel") == 0;
	_g_free0 (_tmp8_);
	if (_tmp9_) {
		GKeyFile* _tmp10_;
		_tmp10_ = self->kf_session;
		g_key_file_set_value (_tmp10_, "modules", "razor-panel", "true");
	} else {
		GKeyFile* _tmp11_;
		_tmp11_ = self->kf_session;
		g_key_file_set_value (_tmp11_, "modules", "razor-panel", "false");
	}
	_tmp12_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "Session", "desktop", "command");
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strcmp0 (_tmp13_, "razor-desktop") == 0;
	_g_free0 (_tmp13_);
	if (_tmp14_) {
		GKeyFile* _tmp15_;
		_tmp15_ = self->kf_session;
		g_key_file_set_value (_tmp15_, "modules", "razor-desktop", "true");
	} else {
		GKeyFile* _tmp16_;
		_tmp16_ = self->kf_session;
		g_key_file_set_value (_tmp16_, "modules", "razor-desktop", "false");
	}
	_tmp17_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "Session", "launcher_manager", "command");
	_tmp18_ = _tmp17_;
	_tmp19_ = g_strcmp0 (_tmp18_, "razor-runner") == 0;
	_g_free0 (_tmp18_);
	if (_tmp19_) {
		GKeyFile* _tmp20_;
		_tmp20_ = self->kf_session;
		g_key_file_set_value (_tmp20_, "modules", "razor-runner", "true");
	} else {
		GKeyFile* _tmp21_;
		_tmp21_ = self->kf_session;
		g_key_file_set_value (_tmp21_, "modules", "razor-runner", "false");
	}
	_tmp22_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "Session", "polkit", "command");
	_tmp23_ = _tmp22_;
	_tmp24_ = g_strcmp0 (_tmp23_, "razor-policykit-agent") == 0;
	_g_free0 (_tmp23_);
	if (_tmp24_) {
		GKeyFile* _tmp25_;
		_tmp25_ = self->kf_session;
		g_key_file_set_value (_tmp25_, "modules", "razor-policykit-agent", "true");
	} else {
		GKeyFile* _tmp26_;
		_tmp26_ = self->kf_session;
		g_key_file_set_value (_tmp26_, "modules", "razor-policykit-agent", "false");
	}
	g_message ("settings.vala:1284: Saving razor session file");
	_tmp27_ = self->kf_session;
	_tmp28_ = g_key_file_to_data (_tmp27_, NULL, NULL);
	str_session = _tmp28_;
	{
		const gchar* _tmp29_;
		gint _tmp30_;
		gint _tmp31_;
		_tmp29_ = self->session_razor_config_path;
		_tmp30_ = strlen (str_session);
		_tmp31_ = _tmp30_;
		g_file_set_contents (_tmp29_, str_session, (gssize) _tmp31_, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			if (_inner_error0_->domain == G_FILE_ERROR) {
				goto __catch0_g_file_error;
			}
			_g_free0 (str_session);
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	}
	goto __finally0;
	__catch0_g_file_error:
	{
		GError* err = NULL;
		GError* _tmp32_;
		const gchar* _tmp33_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp32_ = err;
		_tmp33_ = _tmp32_->message;
		g_warning ("settings.vala:1292: %s", _tmp33_);
		_g_error_free0 (err);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_g_free0 (str_session);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
	g_message ("settings.vala:1295: Saving razor conf file");
	_tmp34_ = self->kf_conf;
	_tmp35_ = g_key_file_to_data (_tmp34_, NULL, NULL);
	str_conf = _tmp35_;
	{
		const gchar* _tmp36_;
		gint _tmp37_;
		gint _tmp38_;
		_tmp36_ = self->conf_razor_config_path;
		_tmp37_ = strlen (str_conf);
		_tmp38_ = _tmp37_;
		g_file_set_contents (_tmp36_, str_conf, (gssize) _tmp38_, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			if (_inner_error0_->domain == G_FILE_ERROR) {
				goto __catch1_g_file_error;
			}
			_g_free0 (str_conf);
			_g_free0 (str_session);
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	}
	goto __finally1;
	__catch1_g_file_error:
	{
		GError* err = NULL;
		GError* _tmp39_;
		const gchar* _tmp40_;
		err = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp39_ = err;
		_tmp40_ = _tmp39_->message;
		g_warning ("settings.vala:1303: %s", _tmp40_);
		_g_error_free0 (err);
	}
	__finally1:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_g_free0 (str_conf);
		_g_free0 (str_session);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
	_g_free0 (str_conf);
	_g_free0 (str_session);
}

static void
lxsession_razor_qt_config_key_file_class_init (LxsessionRazorQtConfigKeyFileClass * klass,
                                               gpointer klass_data)
{
	lxsession_razor_qt_config_key_file_parent_class = g_type_class_peek_parent (klass);
	((LxsessionLxsessionConfigKeyFileClass *) klass)->read_secondary_keyfile = (void (*) (LxsessionLxsessionConfigKeyFile*)) lxsession_razor_qt_config_key_file_real_read_secondary_keyfile;
	((LxsessionLxsessionConfigKeyFileClass *) klass)->save_secondary_keyfile = (void (*) (LxsessionLxsessionConfigKeyFile*)) lxsession_razor_qt_config_key_file_real_save_secondary_keyfile;
	G_OBJECT_CLASS (klass)->finalize = lxsession_razor_qt_config_key_file_finalize;
}

static void
lxsession_razor_qt_config_key_file_instance_init (LxsessionRazorQtConfigKeyFile * self,
                                                  gpointer klass)
{
	GKeyFile* _tmp0_;
	GKeyFile* _tmp1_;
	_tmp0_ = g_key_file_new ();
	self->kf_session = _tmp0_;
	_tmp1_ = g_key_file_new ();
	self->kf_conf = _tmp1_;
}

static void
lxsession_razor_qt_config_key_file_finalize (GObject * obj)
{
	LxsessionRazorQtConfigKeyFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_RAZOR_QT_CONFIG_KEY_FILE, LxsessionRazorQtConfigKeyFile);
	_g_key_file_unref0 (self->kf_session);
	_g_free0 (self->session_razor_config_path);
	_g_free0 (self->session_razor_config_home_path);
	_g_object_unref0 (self->session_razor_file);
	_g_object_unref0 (self->home_session_razor_file);
	_g_key_file_unref0 (self->kf_conf);
	_g_free0 (self->conf_razor_config_path);
	_g_free0 (self->conf_razor_config_home_path);
	_g_object_unref0 (self->confrazor_file);
	_g_object_unref0 (self->home_conf_razor_file);
	G_OBJECT_CLASS (lxsession_razor_qt_config_key_file_parent_class)->finalize (obj);
}

static GType
lxsession_razor_qt_config_key_file_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (LxsessionRazorQtConfigKeyFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_razor_qt_config_key_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionRazorQtConfigKeyFile), 0, (GInstanceInitFunc) lxsession_razor_qt_config_key_file_instance_init, NULL };
	GType lxsession_razor_qt_config_key_file_type_id;
	lxsession_razor_qt_config_key_file_type_id = g_type_register_static (LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, "LxsessionRazorQtConfigKeyFile", &g_define_type_info, 0);
	return lxsession_razor_qt_config_key_file_type_id;
}

GType
lxsession_razor_qt_config_key_file_get_type (void)
{
	static volatile gsize lxsession_razor_qt_config_key_file_type_id__once = 0;
	if (g_once_init_enter (&lxsession_razor_qt_config_key_file_type_id__once)) {
		GType lxsession_razor_qt_config_key_file_type_id;
		lxsession_razor_qt_config_key_file_type_id = lxsession_razor_qt_config_key_file_get_type_once ();
		g_once_init_leave (&lxsession_razor_qt_config_key_file_type_id__once, lxsession_razor_qt_config_key_file_type_id);
	}
	return lxsession_razor_qt_config_key_file_type_id__once;
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

static gssize
_vala_array_length (gpointer array)
{
	gssize length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}

