/* settings.c generated by valac 0.30.2, 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.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <glib/gstdio.h>


#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;
#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 _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (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;
#define _g_key_file_free0(var) ((var == NULL) ? NULL : (var = (g_key_file_free (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;

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, int 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 gpointer lxsession_lxsession_config_parent_class = NULL;
extern LxsessionLxSignals* lxsession_global_sig;
static gpointer lxsession_lxsession_config_key_file_parent_class = NULL;
extern LxsessionXSettingsOption* lxsession_global_xsettings_manager;
static gpointer lxsession_razor_qt_config_key_file_parent_class = NULL;

GType lxsession_lxsession_config_get_type (void) G_GNUC_CONST;
#define LXSESSION_LXSESSION_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfigPrivate))
enum  {
	LXSESSION_LXSESSION_CONFIG_DUMMY_PROPERTY,
	LXSESSION_LXSESSION_CONFIG_SESSION_NAME,
	LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME
};
LxsessionLxsessionConfig* lxsession_lxsession_config_new (void);
LxsessionLxsessionConfig* lxsession_lxsession_config_construct (GType object_type);
static GHashTable* lxsession_lxsession_config_init_item_db (LxsessionLxsessionConfig* self);
static void _g_free0_ (gpointer var);
void lxsession_lxsession_config_create_config_item (LxsessionLxsessionConfig* self, const gchar* categorie, const gchar* key1, const gchar* key2, const gchar* type, const gchar* variable);
void lxsession_lxsession_config_update_support_keys (LxsessionLxsessionConfig* self, const gchar* categorie, const gchar* key1, const gchar* key2);
void lxsession_lxsession_config_delete_config_item (LxsessionLxsessionConfig* self, const gchar* categorie, const gchar* key1, const gchar* key2, const gchar* type);
void lxsession_lxsession_config_get_item (LxsessionLxsessionConfig* self, const gchar* categorie, const gchar* key1, const gchar* key2, gchar** variable, gchar** type);
gchar* lxsession_lxsession_config_get_item_string (LxsessionLxsessionConfig* self, const gchar* categorie, const gchar* key1, const gchar* key2);
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);
void lxsession_lxsession_config_on_update_generic (LxsessionLxsessionConfig* self, const gchar* dbus_arg, const gchar* categorie, const gchar* key1, const gchar* key2);
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);
GHashTable* lxsession_lxsession_config_get_support_db (LxsessionLxsessionConfig* self, const gchar* categorie);
static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle);
gchar* lxsession_lxsession_config_get_support (LxsessionLxsessionConfig* self, const gchar* categorie);
gchar* lxsession_lxsession_config_get_support_key (LxsessionLxsessionConfig* self, const gchar* categorie, const gchar* key1);
void lxsession_lxsession_config_init_signal (LxsessionLxsessionConfig* self);
GType lxsession_lx_signals_get_type (void) G_GNUC_CONST;
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);
void lxsession_lxsession_config_guess_default (LxsessionLxsessionConfig* self);
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* lxsession_lxsession_config_get_session_name (LxsessionLxsessionConfig* self);
const gchar* lxsession_lxsession_config_get_desktop_env_name (LxsessionLxsessionConfig* self);
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);
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);
void lxsession_lxsession_config_on_update_string_list_set (LxsessionLxsessionConfig* self, gchar** dbus_arg, int dbus_arg_length1, 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, int dbus_arg_length1, const gchar* kf_categorie, const gchar* kf_key1, const gchar* kf_key2);
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);
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);
void lxsession_lxsession_config_set_session_name (LxsessionLxsessionConfig* self, const gchar* value);
void lxsession_lxsession_config_set_desktop_env_name (LxsessionLxsessionConfig* self, const gchar* value);
static void lxsession_lxsession_config_finalize (GObject* obj);
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);
GType lxsession_lxsession_config_key_file_get_type (void) G_GNUC_CONST;
#define LXSESSION_LXSESSION_CONFIG_KEY_FILE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFilePrivate))
enum  {
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_DUMMY_PROPERTY,
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_PATH,
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_HOME_PATH
};
LxsessionLxsessionConfigKeyFile* lxsession_lxsession_config_key_file_new (const gchar* session_arg, const gchar* desktop_env_name_arg);
LxsessionLxsessionConfigKeyFile* lxsession_lxsession_config_key_file_construct (GType object_type, const gchar* session_arg, const gchar* desktop_env_name_arg);
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);
void lxsession_lxsession_config_key_file_init_desktop_files (LxsessionLxsessionConfigKeyFile* self);
void lxsession_lxsession_config_key_file_read_keyfile (LxsessionLxsessionConfigKeyFile* self);
void lxsession_lxsession_config_key_file_setup_monitor_desktop_file (LxsessionLxsessionConfigKeyFile* self);
gchar* lxsession_get_config_path (const gchar* conf_file);
void lxsession_lxsession_config_key_file_set_desktop_config_path (LxsessionLxsessionConfigKeyFile* self, const gchar* value);
gchar* lxsession_get_config_home_path (const gchar* conf_file);
void lxsession_lxsession_config_key_file_set_desktop_config_home_path (LxsessionLxsessionConfigKeyFile* self, const gchar* value);
const gchar* lxsession_lxsession_config_key_file_get_desktop_config_path (LxsessionLxsessionConfigKeyFile* self);
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);
const gchar* lxsession_lxsession_config_key_file_get_desktop_config_home_path (LxsessionLxsessionConfigKeyFile* self);
void lxsession_lxsession_config_key_file_setup_creation_desktop_file (LxsessionLxsessionConfigKeyFile* self);
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);
void lxsession_lxsession_config_key_file_reload_xsettings (LxsessionLxsessionConfigKeyFile* self);
GType lxsession_xsettings_option_get_type (void) G_GNUC_CONST;
LxsessionXSettingsOption* lxsession_xsettings_option_new (void);
LxsessionXSettingsOption* lxsession_xsettings_option_construct (GType object_type);
void lxsession_xsettings_option_activate (LxsessionXSettingsOption* self);
void lxsession_xsettings_option_reload (LxsessionXSettingsOption* 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);
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);
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, int default_value_length1, int* result_length1);
static gchar** _vala_array_dup6 (gchar** self, int length);
static gchar** _vala_array_dup7 (gchar** self, int length);
static gchar** _vala_array_dup8 (gchar** self, int length);
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);
GKeyFile* lxsession_load_keyfile (const gchar* config_path);
void lxsession_lxsession_config_key_file_read_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self);
static void lxsession_lxsession_config_key_file_real_read_secondary_keyfile (LxsessionLxsessionConfigKeyFile* self);
void lxsession_lxsession_config_key_file_sync_setting_files (LxsessionLxsessionConfigKeyFile* self);
void lxsession_lxsession_config_key_file_save_keyfile (LxsessionLxsessionConfigKeyFile* self);
void lxsession_lxsession_config_key_file_save_secondary_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, int 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 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);
GType lxsession_razor_qt_config_key_file_get_type (void) G_GNUC_CONST;
enum  {
	LXSESSION_RAZOR_QT_CONFIG_KEY_FILE_DUMMY_PROPERTY
};
LxsessionRazorQtConfigKeyFile* lxsession_razor_qt_config_key_file_new (const gchar* session_arg, const gchar* desktop_env_name_arg);
LxsessionRazorQtConfigKeyFile* lxsession_razor_qt_config_key_file_construct (GType object_type, const gchar* session_arg, const gchar* desktop_env_name_arg);
void lxsession_razor_qt_config_key_file_init_desktop_razor_files (LxsessionRazorQtConfigKeyFile* self);
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* 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 void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
static gint _vala_array_length (gpointer array);


LxsessionLxsessionConfig* lxsession_lxsession_config_construct (GType object_type) {
	LxsessionLxsessionConfig * self = NULL;
	GHashTable* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GHashTable* _tmp2_ = NULL;
	GHashTable* _tmp3_ = NULL;
	GHashTable* _tmp4_ = NULL;
	GHashTable* _tmp5_ = NULL;
	GHashTable* _tmp6_ = NULL;
	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* result = NULL;
	GHashTable* return_map = NULL;
	GHashFunc _tmp0_ = NULL;
	GEqualFunc _tmp1_ = NULL;
	GHashTable* _tmp2_ = NULL;
	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;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	GHashTable* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	const gchar* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	const gchar* _tmp17_ = NULL;
	const gchar* _tmp18_ = NULL;
	const gchar* _tmp19_ = NULL;
	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_ = categorie;
	_tmp1_ = g_strconcat (_tmp0_, ";", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = key1;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, ";", NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = key2;
	_tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, ";", NULL);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp10_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	item_key = _tmp12_;
	_tmp13_ = self->config_item_db;
	_tmp14_ = g_strdup (item_key);
	_tmp15_ = variable;
	_tmp16_ = g_strdup (_tmp15_);
	g_hash_table_insert (_tmp13_, _tmp14_, _tmp16_);
	_tmp17_ = categorie;
	_tmp18_ = key1;
	_tmp19_ = key2;
	lxsession_lxsession_config_update_support_keys (self, _tmp17_, _tmp18_, _tmp19_);
	_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;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	GHashTable* _tmp13_ = NULL;
	const gchar* _tmp14_ = NULL;
	gboolean _tmp15_ = FALSE;
	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_ = categorie;
	_tmp1_ = g_strconcat (_tmp0_, ";", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = key1;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, ";", NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = key2;
	_tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, ";", NULL);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp10_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	item_key = _tmp12_;
	_tmp13_ = self->config_item_db;
	_tmp14_ = item_key;
	_tmp15_ = g_hash_table_contains (_tmp13_, _tmp14_);
	if (_tmp15_ == TRUE) {
		GHashTable* _tmp16_ = NULL;
		const gchar* _tmp17_ = NULL;
		const gchar* _tmp18_ = NULL;
		const gchar* _tmp19_ = NULL;
		const gchar* _tmp20_ = NULL;
		_tmp16_ = self->config_item_db;
		_tmp17_ = item_key;
		g_hash_table_remove (_tmp16_, _tmp17_);
		_tmp18_ = categorie;
		_tmp19_ = key1;
		_tmp20_ = key2;
		lxsession_lxsession_config_update_support_keys (self, _tmp18_, _tmp19_, _tmp20_);
	}
	_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;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	GHashTable* _tmp13_ = NULL;
	gconstpointer _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (categorie != NULL);
	g_return_if_fail (key1 != NULL);
	_tmp0_ = categorie;
	_tmp1_ = g_strconcat (_tmp0_, ";", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = key1;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, ";", NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = key2;
	_tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, ";", NULL);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp10_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	item_key = _tmp12_;
	_tmp13_ = self->config_item_db;
	_tmp14_ = g_hash_table_lookup (_tmp13_, item_key);
	_tmp15_ = g_strdup ((const gchar*) _tmp14_);
	_g_free0 (_vala_variable);
	_vala_variable = _tmp15_;
	_tmp16_ = g_strdup ("string");
	_g_free0 (_vala_type);
	_vala_type = _tmp16_;
	_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* result = NULL;
	gchar* type_output = NULL;
	gchar* variable_output = NULL;
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (categorie != NULL, NULL);
	g_return_val_if_fail (key1 != NULL, NULL);
	_tmp0_ = categorie;
	_tmp1_ = key1;
	_tmp2_ = key2;
	lxsession_lxsession_config_get_item (self, _tmp0_, _tmp1_, _tmp2_, &_tmp3_, &_tmp4_);
	_g_free0 (variable_output);
	variable_output = _tmp3_;
	_g_free0 (type_output);
	type_output = _tmp4_;
	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;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	GHashTable* _tmp13_ = NULL;
	const gchar* _tmp14_ = NULL;
	gboolean _tmp15_ = FALSE;
	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_ = categorie;
	_tmp1_ = g_strconcat (_tmp0_, ";", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = key1;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, ";", NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = key2;
	_tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, ";", NULL);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp10_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	item_key = _tmp12_;
	_tmp13_ = self->config_item_db;
	_tmp14_ = item_key;
	_tmp15_ = g_hash_table_contains (_tmp13_, _tmp14_);
	if (_tmp15_ == TRUE) {
		GHashTable* _tmp16_ = NULL;
		const gchar* _tmp17_ = NULL;
		gconstpointer _tmp18_ = NULL;
		const gchar* _tmp19_ = NULL;
		_tmp16_ = self->config_item_db;
		_tmp17_ = item_key;
		_tmp18_ = g_hash_table_lookup (_tmp16_, _tmp17_);
		_tmp19_ = dbus_arg;
		if (g_strcmp0 ((const gchar*) _tmp18_, _tmp19_) != 0) {
			GHashTable* _tmp20_ = NULL;
			const gchar* _tmp21_ = NULL;
			gchar* _tmp22_ = NULL;
			const gchar* _tmp23_ = NULL;
			gchar* _tmp24_ = NULL;
			const gchar* _tmp25_ = NULL;
			const gchar* _tmp26_ = NULL;
			const gchar* _tmp27_ = NULL;
			const gchar* _tmp28_ = NULL;
			_tmp20_ = self->config_item_db;
			_tmp21_ = item_key;
			_tmp22_ = g_strdup (_tmp21_);
			_tmp23_ = dbus_arg;
			_tmp24_ = g_strdup (_tmp23_);
			g_hash_table_insert (_tmp20_, _tmp22_, _tmp24_);
			_tmp25_ = dbus_arg;
			_tmp26_ = categorie;
			_tmp27_ = key1;
			_tmp28_ = key2;
			lxsession_lxsession_config_on_update_generic (self, _tmp25_, _tmp26_, _tmp27_, _tmp28_);
		}
	} else {
		const gchar* _tmp29_ = NULL;
		const gchar* _tmp30_ = NULL;
		const gchar* _tmp31_ = NULL;
		const gchar* _tmp32_ = NULL;
		const gchar* _tmp33_ = NULL;
		_tmp29_ = categorie;
		_tmp30_ = key1;
		_tmp31_ = key2;
		_tmp32_ = type;
		_tmp33_ = dbus_arg;
		lxsession_lxsession_config_create_config_item (self, _tmp29_, _tmp30_, _tmp31_, _tmp32_, _tmp33_);
	}
	_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;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	GHashTable* _tmp13_ = NULL;
	const gchar* _tmp14_ = NULL;
	gboolean _tmp15_ = FALSE;
	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_ = categorie;
	_tmp1_ = g_strconcat (_tmp0_, ";", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = key1;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, ";", NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = key2;
	_tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, ";", NULL);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp10_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	item_key = _tmp12_;
	_tmp13_ = self->config_item_db;
	_tmp14_ = item_key;
	_tmp15_ = g_hash_table_contains (_tmp13_, _tmp14_);
	if (_tmp15_ == TRUE) {
		GHashTable* _tmp16_ = NULL;
		const gchar* _tmp17_ = NULL;
		gconstpointer _tmp18_ = NULL;
		const gchar* _tmp19_ = NULL;
		_tmp16_ = self->config_item_db;
		_tmp17_ = item_key;
		_tmp18_ = g_hash_table_lookup (_tmp16_, _tmp17_);
		_tmp19_ = dbus_arg;
		if (g_strcmp0 ((const gchar*) _tmp18_, _tmp19_) != 0) {
			GHashTable* _tmp20_ = NULL;
			const gchar* _tmp21_ = NULL;
			gchar* _tmp22_ = NULL;
			const gchar* _tmp23_ = NULL;
			gchar* _tmp24_ = NULL;
			_tmp20_ = self->config_item_db;
			_tmp21_ = item_key;
			_tmp22_ = g_strdup (_tmp21_);
			_tmp23_ = dbus_arg;
			_tmp24_ = g_strdup (_tmp23_);
			g_hash_table_insert (_tmp20_, _tmp22_, _tmp24_);
		}
	} else {
		const gchar* _tmp25_ = NULL;
		const gchar* _tmp26_ = NULL;
		const gchar* _tmp27_ = NULL;
		const gchar* _tmp28_ = NULL;
		const gchar* _tmp29_ = NULL;
		_tmp25_ = categorie;
		_tmp26_ = key1;
		_tmp27_ = key2;
		_tmp28_ = type;
		_tmp29_ = dbus_arg;
		lxsession_lxsession_config_create_config_item (self, _tmp25_, _tmp26_, _tmp27_, _tmp28_, _tmp29_);
	}
	_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* result = NULL;
	GHashTable* support_db = NULL;
	GHashFunc _tmp0_ = NULL;
	GEqualFunc _tmp1_ = NULL;
	GHashTable* _tmp2_ = NULL;
	GHashTable* _tmp3_ = NULL;
	GHashTable* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	GQuark _tmp8_ = 0U;
	static GQuark _tmp7_label0 = 0;
	static GQuark _tmp7_label1 = 0;
	static GQuark _tmp7_label2 = 0;
	static GQuark _tmp7_label3 = 0;
	static GQuark _tmp7_label4 = 0;
	static GQuark _tmp7_label5 = 0;
	static GQuark _tmp7_label6 = 0;
	static GQuark _tmp7_label7 = 0;
	static GQuark _tmp7_label8 = 0;
	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;
	_tmp6_ = _tmp5_;
	_tmp8_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
	if (_tmp8_ == ((0 != _tmp7_label0) ? _tmp7_label0 : (_tmp7_label0 = g_quark_from_static_string ("Session")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp9_ = NULL;
				GHashTable* _tmp10_ = NULL;
				_tmp9_ = self->session_support_item_db;
				_tmp10_ = _g_hash_table_ref0 (_tmp9_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp10_;
				break;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label1) ? _tmp7_label1 : (_tmp7_label1 = g_quark_from_static_string ("Xsettings")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp11_ = NULL;
				GHashTable* _tmp12_ = NULL;
				_tmp11_ = self->xsettings_support_item_db;
				_tmp12_ = _g_hash_table_ref0 (_tmp11_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp12_;
				break;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label2) ? _tmp7_label2 : (_tmp7_label2 = g_quark_from_static_string ("GTK")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp13_ = NULL;
				GHashTable* _tmp14_ = NULL;
				_tmp13_ = self->xsettings_support_item_db;
				_tmp14_ = _g_hash_table_ref0 (_tmp13_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp14_;
				break;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label3) ? _tmp7_label3 : (_tmp7_label3 = g_quark_from_static_string ("Mouse")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp15_ = NULL;
				GHashTable* _tmp16_ = NULL;
				_tmp15_ = self->xsettings_support_item_db;
				_tmp16_ = _g_hash_table_ref0 (_tmp15_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp16_;
				break;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label4) ? _tmp7_label4 : (_tmp7_label4 = g_quark_from_static_string ("Keyboard")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp17_ = NULL;
				GHashTable* _tmp18_ = NULL;
				_tmp17_ = self->xsettings_support_item_db;
				_tmp18_ = _g_hash_table_ref0 (_tmp17_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp18_;
				break;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label5) ? _tmp7_label5 : (_tmp7_label5 = g_quark_from_static_string ("State")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp19_ = NULL;
				GHashTable* _tmp20_ = NULL;
				_tmp19_ = self->state_support_item_db;
				_tmp20_ = _g_hash_table_ref0 (_tmp19_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp20_;
				break;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label6) ? _tmp7_label6 : (_tmp7_label6 = g_quark_from_static_string ("Dbus")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp21_ = NULL;
				GHashTable* _tmp22_ = NULL;
				_tmp21_ = self->dbus_support_item_db;
				_tmp22_ = _g_hash_table_ref0 (_tmp21_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp22_;
				break;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label7) ? _tmp7_label7 : (_tmp7_label7 = g_quark_from_static_string ("Keymap")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp23_ = NULL;
				GHashTable* _tmp24_ = NULL;
				_tmp23_ = self->keymap_support_item_db;
				_tmp24_ = _g_hash_table_ref0 (_tmp23_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp24_;
				break;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label8) ? _tmp7_label8 : (_tmp7_label8 = g_quark_from_static_string ("Environment")))) {
		switch (0) {
			default:
			{
				GHashTable* _tmp25_ = NULL;
				GHashTable* _tmp26_ = NULL;
				_tmp25_ = self->environment_support_item_db;
				_tmp26_ = _g_hash_table_ref0 (_tmp25_);
				_g_hash_table_unref0 (support_db);
				support_db = _tmp26_;
				break;
			}
		}
	}
	result = support_db;
	return result;
}


static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle) {
	int 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_ = NULL;
	GEqualFunc _tmp1_ = NULL;
	GHashTable* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GHashTable* _tmp4_ = NULL;
	GHashTable* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	gboolean _tmp7_ = FALSE;
	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_ = categorie;
	_tmp4_ = lxsession_lxsession_config_get_support_db (self, _tmp3_);
	_g_hash_table_unref0 (support_db);
	support_db = _tmp4_;
	_tmp5_ = support_db;
	_tmp6_ = key1;
	_tmp7_ = g_hash_table_contains (_tmp5_, _tmp6_);
	if (_tmp7_) {
		gchar** list = NULL;
		GHashTable* _tmp8_ = NULL;
		const gchar* _tmp9_ = NULL;
		gconstpointer _tmp10_ = NULL;
		gchar** _tmp11_ = NULL;
		gchar** _tmp12_ = NULL;
		gint list_length1 = 0;
		gint _list_size_ = 0;
		const gchar* _tmp13_ = NULL;
		_tmp8_ = support_db;
		_tmp9_ = key1;
		_tmp10_ = g_hash_table_lookup (_tmp8_, _tmp9_);
		_tmp12_ = _tmp11_ = g_strsplit_set ((const gchar*) _tmp10_, ";", 0);
		list = _tmp12_;
		list_length1 = _vala_array_length (_tmp11_);
		_list_size_ = list_length1;
		_tmp13_ = key2;
		if (_tmp13_ == NULL) {
		} else {
			const gchar* _tmp14_ = NULL;
			gchar** _tmp15_ = NULL;
			gint _tmp15__length1 = 0;
			_tmp14_ = key2;
			_tmp15_ = list;
			_tmp15__length1 = list_length1;
			if (_vala_string_array_contains (_tmp15_, _tmp15__length1, _tmp14_)) {
			} else {
				GHashTable* _tmp16_ = NULL;
				const gchar* _tmp17_ = NULL;
				gchar* _tmp18_ = NULL;
				GHashTable* _tmp19_ = NULL;
				const gchar* _tmp20_ = NULL;
				gconstpointer _tmp21_ = NULL;
				const gchar* _tmp22_ = NULL;
				gchar* _tmp23_ = NULL;
				gchar* _tmp24_ = NULL;
				gchar* _tmp25_ = NULL;
				_tmp16_ = support_db;
				_tmp17_ = key1;
				_tmp18_ = g_strdup (_tmp17_);
				_tmp19_ = support_db;
				_tmp20_ = key1;
				_tmp21_ = g_hash_table_lookup (_tmp19_, _tmp20_);
				_tmp22_ = key2;
				_tmp23_ = g_strconcat ((const gchar*) _tmp21_, _tmp22_, NULL);
				_tmp24_ = _tmp23_;
				_tmp25_ = g_strconcat (_tmp24_, ";", NULL);
				g_hash_table_insert (_tmp16_, _tmp18_, _tmp25_);
				_g_free0 (_tmp24_);
			}
		}
		list = (_vala_array_free (list, list_length1, (GDestroyNotify) g_free), NULL);
	} else {
		GHashTable* _tmp26_ = NULL;
		const gchar* _tmp27_ = NULL;
		gchar* _tmp28_ = NULL;
		const gchar* _tmp29_ = NULL;
		gchar* _tmp30_ = NULL;
		_tmp26_ = support_db;
		_tmp27_ = key1;
		_tmp28_ = g_strdup (_tmp27_);
		_tmp29_ = key2;
		_tmp30_ = g_strconcat (_tmp29_, ";", NULL);
		g_hash_table_insert (_tmp26_, _tmp28_, _tmp30_);
	}
	_g_hash_table_unref0 (support_db);
}


gchar* lxsession_lxsession_config_get_support (LxsessionLxsessionConfig* self, const gchar* categorie) {
	gchar* result = NULL;
	gchar* items = NULL;
	GHashTable* support_db = NULL;
	GHashFunc _tmp0_ = NULL;
	GEqualFunc _tmp1_ = NULL;
	GHashTable* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GHashTable* _tmp4_ = NULL;
	GHashTable* _tmp5_ = NULL;
	GList* _tmp6_ = NULL;
	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_ = categorie;
	_tmp4_ = lxsession_lxsession_config_get_support_db (self, _tmp3_);
	_g_hash_table_unref0 (support_db);
	support_db = _tmp4_;
	_tmp5_ = support_db;
	_tmp6_ = g_hash_table_get_keys (_tmp5_);
	{
		GList* key_collection = NULL;
		GList* key_it = NULL;
		key_collection = _tmp6_;
		for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
			gchar* _tmp7_ = NULL;
			gchar* key = NULL;
			_tmp7_ = g_strdup ((const gchar*) key_it->data);
			key = _tmp7_;
			{
				const gchar* _tmp8_ = NULL;
				_tmp8_ = items;
				if (_tmp8_ == NULL) {
					const gchar* _tmp9_ = NULL;
					gchar* _tmp10_ = NULL;
					_tmp9_ = key;
					_tmp10_ = g_strconcat (_tmp9_, ";", NULL);
					_g_free0 (items);
					items = _tmp10_;
				} else {
					const gchar* _tmp11_ = NULL;
					const gchar* _tmp12_ = NULL;
					gchar* _tmp13_ = NULL;
					gchar* _tmp14_ = NULL;
					gchar* _tmp15_ = NULL;
					_tmp11_ = items;
					_tmp12_ = key;
					_tmp13_ = g_strconcat (_tmp11_, _tmp12_, NULL);
					_tmp14_ = _tmp13_;
					_tmp15_ = g_strconcat (_tmp14_, ";", NULL);
					_g_free0 (items);
					items = _tmp15_;
					_g_free0 (_tmp14_);
				}
				_g_free0 (key);
			}
		}
		_g_list_free0 (key_collection);
	}
	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* result = NULL;
	gchar* return_value = NULL;
	GHashTable* support_db = NULL;
	GHashFunc _tmp0_ = NULL;
	GEqualFunc _tmp1_ = NULL;
	GHashTable* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GHashTable* _tmp4_ = NULL;
	GHashTable* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	gconstpointer _tmp7_ = NULL;
	GHashTable* _tmp8_ = NULL;
	const gchar* _tmp9_ = NULL;
	gconstpointer _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	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_ = categorie;
	_tmp4_ = lxsession_lxsession_config_get_support_db (self, _tmp3_);
	_g_hash_table_unref0 (support_db);
	support_db = _tmp4_;
	_tmp5_ = support_db;
	_tmp6_ = key1;
	_tmp7_ = g_hash_table_lookup (_tmp5_, _tmp6_);
	g_message ("settings.vala:244: Return support key: %s", (const gchar*) _tmp7_);
	_tmp8_ = support_db;
	_tmp9_ = key1;
	_tmp10_ = g_hash_table_lookup (_tmp8_, _tmp9_);
	_tmp11_ = g_strdup ((const gchar*) _tmp10_);
	_g_free0 (return_value);
	return_value = _tmp11_;
	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_ = NULL;
	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_ = NULL;
	gchar* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
	const gchar* _tmp3_ = NULL;
	const gchar* _tmp7_ = NULL;
	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_ = NULL;
		gchar* _tmp5_ = NULL;
		gboolean _tmp6_ = FALSE;
		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", "images_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_ = NULL;
	const gchar* _tmp1_ = NULL;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_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;
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("string")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp4_ = NULL;
				const gchar* _tmp5_ = NULL;
				const gchar* _tmp6_ = NULL;
				gchar* _tmp7_ = NULL;
				gchar* _tmp8_ = NULL;
				gboolean _tmp9_ = FALSE;
				_tmp4_ = categorie;
				_tmp5_ = key1;
				_tmp6_ = key2;
				_tmp7_ = lxsession_lxsession_config_get_item_string (self, _tmp4_, _tmp5_, _tmp6_);
				_tmp8_ = _tmp7_;
				_tmp9_ = _tmp8_ == NULL;
				_g_free0 (_tmp8_);
				if (_tmp9_) {
					const gchar* _tmp10_ = NULL;
					const gchar* _tmp11_ = NULL;
					const gchar* _tmp12_ = NULL;
					const gchar* _tmp13_ = NULL;
					const gchar* _tmp14_ = NULL;
					const gchar* _tmp15_ = NULL;
					const gchar* _tmp16_ = NULL;
					const gchar* _tmp17_ = NULL;
					const gchar* _tmp18_ = NULL;
					_tmp10_ = categorie;
					_tmp11_ = key1;
					_tmp12_ = key2;
					_tmp13_ = default_value;
					g_message ("settings.vala:373: Settings default for %s, %s, %s : %s", _tmp10_, _tmp11_, _tmp12_, _tmp13_);
					_tmp14_ = categorie;
					_tmp15_ = key1;
					_tmp16_ = key2;
					_tmp17_ = type;
					_tmp18_ = default_value;
					lxsession_lxsession_config_set_config_item_value (self, _tmp14_, _tmp15_, _tmp16_, _tmp17_, _tmp18_);
				}
				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;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar* type = NULL;
	gchar* _tmp13_ = NULL;
	GHashTable* _tmp14_ = NULL;
	const gchar* _tmp15_ = NULL;
	gboolean _tmp16_ = FALSE;
	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_ = categorie;
	_tmp1_ = g_strconcat (_tmp0_, ";", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = key1;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, ";", NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = key2;
	_tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, ";", NULL);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp10_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	item_key = _tmp12_;
	_tmp13_ = g_strdup ("string");
	type = _tmp13_;
	_tmp14_ = self->config_item_db;
	_tmp15_ = item_key;
	_tmp16_ = g_hash_table_contains (_tmp14_, _tmp15_);
	if (_tmp16_ == TRUE) {
		const gchar* _tmp17_ = NULL;
		const gchar* _tmp18_ = NULL;
		GQuark _tmp20_ = 0U;
		static GQuark _tmp19_label0 = 0;
		_tmp17_ = type;
		_tmp18_ = _tmp17_;
		_tmp20_ = (NULL == _tmp18_) ? 0 : g_quark_from_string (_tmp18_);
		if (_tmp20_ == ((0 != _tmp19_label0) ? _tmp19_label0 : (_tmp19_label0 = g_quark_from_static_string ("string")))) {
			switch (0) {
				default:
				{
					const gchar* _tmp21_ = NULL;
					const gchar* _tmp22_ = NULL;
					const gchar* _tmp23_ = NULL;
					const gchar* _tmp24_ = NULL;
					_tmp21_ = dbus_arg;
					_tmp22_ = categorie;
					_tmp23_ = key1;
					_tmp24_ = key2;
					lxsession_lxsession_config_on_update_string_set (self, _tmp21_, _tmp22_, _tmp23_, _tmp24_);
					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) {
	g_return_if_fail (self != NULL);
	LXSESSION_LXSESSION_CONFIG_GET_CLASS (self)->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, int 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, int dbus_arg_length1, const gchar* kf_categorie, const gchar* kf_key1, const gchar* kf_key2) {
	g_return_if_fail (self != NULL);
	LXSESSION_LXSESSION_CONFIG_GET_CLASS (self)->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) {
	g_return_if_fail (self != NULL);
	LXSESSION_LXSESSION_CONFIG_GET_CLASS (self)->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_ = NULL;
	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) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_session_name);
	self->priv->_session_name = _tmp1_;
	g_object_notify ((GObject *) self, "session-name");
}


const gchar* lxsession_lxsession_config_get_desktop_env_name (LxsessionLxsessionConfig* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	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) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_desktop_env_name);
	self->priv->_desktop_env_name = _tmp1_;
	g_object_notify ((GObject *) self, "desktop-env-name");
}


static void lxsession_lxsession_config_class_init (LxsessionLxsessionConfigClass * klass) {
	lxsession_lxsession_config_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionLxsessionConfigPrivate));
	((LxsessionLxsessionConfigClass *) klass)->on_update_string_set = lxsession_lxsession_config_real_on_update_string_set;
	((LxsessionLxsessionConfigClass *) klass)->on_update_string_list_set = lxsession_lxsession_config_real_on_update_string_list_set;
	((LxsessionLxsessionConfigClass *) klass)->on_update_int_set = 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, g_param_spec_string ("session-name", "session-name", "session-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME, g_param_spec_string ("desktop-env-name", "desktop-env-name", "desktop-env-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void lxsession_lxsession_config_instance_init (LxsessionLxsessionConfig * self) {
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	self->priv = LXSESSION_LXSESSION_CONFIG_GET_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);
}


GType lxsession_lxsession_config_get_type (void) {
	static volatile gsize lxsession_lxsession_config_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_lxsession_config_type_id__volatile)) {
		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);
		g_once_init_leave (&lxsession_lxsession_config_type_id__volatile, lxsession_lxsession_config_type_id);
	}
	return lxsession_lxsession_config_type_id__volatile;
}


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:
		g_value_set_string (value, lxsession_lxsession_config_get_session_name (self));
		break;
		case LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME:
		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:
		lxsession_lxsession_config_set_session_name (self, g_value_get_string (value));
		break;
		case LXSESSION_LXSESSION_CONFIG_DESKTOP_ENV_NAME:
		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 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_ = NULL;
	const gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gboolean _tmp5_ = FALSE;
	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);
	_tmp1_ = session_arg;
	lxsession_lxsession_config_set_session_name ((LxsessionLxsessionConfig*) self, _tmp1_);
	_tmp2_ = desktop_env_name_arg;
	lxsession_lxsession_config_set_desktop_env_name ((LxsessionLxsessionConfig*) self, _tmp2_);
	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);
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "State", "guess_default", NULL);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_strcmp0 (_tmp4_, "false") != 0;
	_g_free0 (_tmp4_);
	if (_tmp5_) {
		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_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	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_error_ = NULL;
	g_return_if_fail (self != NULL);
	{
		const gchar* _tmp0_ = NULL;
		GFile* _tmp1_ = NULL;
		GFileMonitor* _tmp2_ = NULL;
		GFile* _tmp3_ = NULL;
		GCancellable* _tmp4_ = NULL;
		GFileMonitor* _tmp5_ = NULL;
		GFileMonitor* _tmp6_ = NULL;
		GFileMonitor* _tmp7_ = NULL;
		const gchar* _tmp8_ = NULL;
		GFile* _tmp9_ = NULL;
		gchar* _tmp10_ = NULL;
		gchar* _tmp11_ = NULL;
		const gchar* _tmp12_ = NULL;
		gboolean _tmp13_ = FALSE;
		_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_error_);
		_tmp2_ = _tmp5_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch30_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 __finally30;
	__catch30_g_error:
	{
		GError* err = NULL;
		GError* _tmp14_ = NULL;
		const gchar* _tmp15_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp14_ = err;
		_tmp15_ = _tmp14_->message;
		g_message ("settings.vala:475: %s", _tmp15_);
		_g_error_free0 (err);
	}
	__finally30:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		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_error_ = NULL;
	g_return_if_fail (self != NULL);
	{
		const gchar* _tmp0_ = NULL;
		GFile* _tmp1_ = NULL;
		GFileMonitor* _tmp2_ = NULL;
		GFile* _tmp3_ = NULL;
		GFileMonitor* _tmp4_ = NULL;
		GFileMonitor* _tmp5_ = NULL;
		GFileMonitor* _tmp6_ = NULL;
		GFile* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		gchar* _tmp9_ = NULL;
		_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_error_);
		_tmp2_ = _tmp4_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch31_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 __finally31;
	__catch31_g_error:
	{
		GError* err = NULL;
		GError* _tmp10_ = NULL;
		const gchar* _tmp11_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp10_ = err;
		_tmp11_ = _tmp10_->message;
		g_message ("settings.vala:487: %s", _tmp11_);
		_g_error_free0 (err);
	}
	__finally31:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		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_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = lxsession_global_xsettings_manager;
	if (_tmp0_ == NULL) {
		LxsessionXSettingsOption* xsettings = NULL;
		LxsessionXSettingsOption* _tmp1_ = NULL;
		LxsessionXSettingsOption* _tmp2_ = NULL;
		LxsessionXSettingsOption* _tmp3_ = NULL;
		LxsessionXSettingsOption* _tmp4_ = NULL;
		_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_ = NULL;
		_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_ = NULL;
	GCancellable* _tmp1_ = NULL;
	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* result = NULL;
	gchar* copy_value = NULL;
	gchar* return_value = NULL;
	const gchar* _tmp21_ = NULL;
	GError * _inner_error_ = NULL;
	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;
	{
		const gchar* _tmp0_ = NULL;
		_tmp0_ = kf_key2;
		if (_tmp0_ == NULL) {
			gchar* _tmp1_ = NULL;
			GKeyFile* _tmp2_ = NULL;
			const gchar* _tmp3_ = NULL;
			const gchar* _tmp4_ = NULL;
			gchar* _tmp5_ = NULL;
			gchar* _tmp6_ = NULL;
			_tmp2_ = keyfile;
			_tmp3_ = kf_categorie;
			_tmp4_ = kf_key1;
			_tmp5_ = g_key_file_get_value (_tmp2_, _tmp3_, _tmp4_, &_inner_error_);
			_tmp1_ = _tmp5_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_KEY_FILE_ERROR) {
					goto __catch32_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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return NULL;
			}
			_tmp6_ = _tmp1_;
			_tmp1_ = NULL;
			_g_free0 (copy_value);
			copy_value = _tmp6_;
			_g_free0 (_tmp1_);
		} else {
			gchar* _tmp7_ = NULL;
			GKeyFile* _tmp8_ = NULL;
			const gchar* _tmp9_ = NULL;
			const gchar* _tmp10_ = NULL;
			gchar* _tmp11_ = NULL;
			gchar* _tmp12_ = NULL;
			const gchar* _tmp13_ = NULL;
			gchar* _tmp14_ = NULL;
			gchar* _tmp15_ = NULL;
			gchar* _tmp16_ = NULL;
			gchar* _tmp17_ = NULL;
			gchar* _tmp18_ = NULL;
			_tmp8_ = keyfile;
			_tmp9_ = kf_categorie;
			_tmp10_ = kf_key1;
			_tmp11_ = g_strconcat (_tmp10_, "/", NULL);
			_tmp12_ = _tmp11_;
			_tmp13_ = kf_key2;
			_tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
			_tmp15_ = _tmp14_;
			_tmp16_ = g_key_file_get_value (_tmp8_, _tmp9_, _tmp15_, &_inner_error_);
			_tmp17_ = _tmp16_;
			_g_free0 (_tmp15_);
			_g_free0 (_tmp12_);
			_tmp7_ = _tmp17_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_KEY_FILE_ERROR) {
					goto __catch32_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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return NULL;
			}
			_tmp18_ = _tmp7_;
			_tmp7_ = NULL;
			_g_free0 (copy_value);
			copy_value = _tmp18_;
			_g_free0 (_tmp7_);
		}
	}
	goto __finally32;
	__catch32_g_key_file_error:
	{
		GError* err = NULL;
		GError* _tmp19_ = NULL;
		const gchar* _tmp20_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp19_ = err;
		_tmp20_ = _tmp19_->message;
		g_message ("settings.vala:540: %s", _tmp20_);
		_g_error_free0 (err);
	}
	__finally32:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_free0 (return_value);
		_g_free0 (copy_value);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return NULL;
	}
	_tmp21_ = copy_value;
	if (_tmp21_ == NULL) {
		const gchar* _tmp22_ = NULL;
		gchar* _tmp23_ = NULL;
		_tmp22_ = default_value;
		_tmp23_ = g_strdup (_tmp22_);
		_g_free0 (return_value);
		return_value = _tmp23_;
	} else {
		const gchar* _tmp24_ = NULL;
		const gchar* _tmp25_ = NULL;
		_tmp24_ = default_value;
		_tmp25_ = copy_value;
		if (g_strcmp0 (_tmp24_, _tmp25_) != 0) {
			const gchar* _tmp26_ = NULL;
			gchar* _tmp27_ = NULL;
			_tmp26_ = copy_value;
			_tmp27_ = g_strdup (_tmp26_);
			_g_free0 (return_value);
			return_value = _tmp27_;
		} else {
			const gchar* _tmp28_ = NULL;
			gchar* _tmp29_ = NULL;
			_tmp28_ = default_value;
			_tmp29_ = g_strdup (_tmp28_);
			_g_free0 (return_value);
			return_value = _tmp29_;
		}
	}
	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 result = 0;
	gint return_value = 0;
	gint _tmp19_ = 0;
	GError * _inner_error_ = NULL;
	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;
	{
		const gchar* _tmp0_ = NULL;
		_tmp0_ = kf_key2;
		if (_tmp0_ == NULL) {
			gint _tmp1_ = 0;
			GKeyFile* _tmp2_ = NULL;
			const gchar* _tmp3_ = NULL;
			const gchar* _tmp4_ = NULL;
			gint _tmp5_ = 0;
			_tmp2_ = keyfile;
			_tmp3_ = kf_categorie;
			_tmp4_ = kf_key1;
			_tmp5_ = g_key_file_get_integer (_tmp2_, _tmp3_, _tmp4_, &_inner_error_);
			_tmp1_ = _tmp5_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_KEY_FILE_ERROR) {
					goto __catch33_g_key_file_error;
				}
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return 0;
			}
			return_value = _tmp1_;
		} else {
			gint _tmp6_ = 0;
			GKeyFile* _tmp7_ = NULL;
			const gchar* _tmp8_ = NULL;
			const gchar* _tmp9_ = NULL;
			gchar* _tmp10_ = NULL;
			gchar* _tmp11_ = NULL;
			const gchar* _tmp12_ = NULL;
			gchar* _tmp13_ = NULL;
			gchar* _tmp14_ = NULL;
			gint _tmp15_ = 0;
			gint _tmp16_ = 0;
			_tmp7_ = keyfile;
			_tmp8_ = kf_categorie;
			_tmp9_ = kf_key1;
			_tmp10_ = g_strconcat (_tmp9_, "/", NULL);
			_tmp11_ = _tmp10_;
			_tmp12_ = kf_key2;
			_tmp13_ = g_strconcat (_tmp11_, _tmp12_, NULL);
			_tmp14_ = _tmp13_;
			_tmp15_ = g_key_file_get_integer (_tmp7_, _tmp8_, _tmp14_, &_inner_error_);
			_tmp16_ = _tmp15_;
			_g_free0 (_tmp14_);
			_g_free0 (_tmp11_);
			_tmp6_ = _tmp16_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_KEY_FILE_ERROR) {
					goto __catch33_g_key_file_error;
				}
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return 0;
			}
			return_value = _tmp6_;
		}
	}
	goto __finally33;
	__catch33_g_key_file_error:
	{
		GError* err = NULL;
		GError* _tmp17_ = NULL;
		const gchar* _tmp18_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp17_ = err;
		_tmp18_ = _tmp17_->message;
		g_message ("settings.vala:579: %s", _tmp18_);
		_g_error_free0 (err);
	}
	__finally33:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return 0;
	}
	_tmp19_ = return_value;
	if (_tmp19_ == 0) {
		gint _tmp20_ = 0;
		_tmp20_ = default_value;
		return_value = _tmp20_;
	} else {
		gint _tmp21_ = 0;
		gint _tmp22_ = 0;
		_tmp21_ = return_value;
		_tmp22_ = default_value;
		if (_tmp21_ == _tmp22_) {
			gint _tmp23_ = 0;
			_tmp23_ = default_value;
			return_value = _tmp23_;
		}
	}
	result = return_value;
	return result;
}


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


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


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


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, int default_value_length1, int* result_length1) {
	gchar** result = NULL;
	gchar** copy_value = NULL;
	gint copy_value_length1 = 0;
	gint _copy_value_size_ = 0;
	gchar** return_value = NULL;
	gint return_value_length1 = 0;
	gint _return_value_size_ = 0;
	gchar** _tmp23_ = NULL;
	gint _tmp23__length1 = 0;
	gchar** _tmp32_ = NULL;
	gint _tmp32__length1 = 0;
	GError * _inner_error_ = NULL;
	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;
	{
		const gchar* _tmp0_ = NULL;
		_tmp0_ = kf_key2;
		if (_tmp0_ == NULL) {
			gchar** _tmp1_ = NULL;
			GKeyFile* _tmp2_ = NULL;
			const gchar* _tmp3_ = NULL;
			const gchar* _tmp4_ = NULL;
			gsize _tmp5_;
			gchar** _tmp6_ = NULL;
			gint _tmp1__length1 = 0;
			gint __tmp1__size_ = 0;
			gchar** _tmp7_ = NULL;
			gint _tmp7__length1 = 0;
			_tmp2_ = keyfile;
			_tmp3_ = kf_categorie;
			_tmp4_ = kf_key1;
			_tmp6_ = g_key_file_get_string_list (_tmp2_, _tmp3_, _tmp4_, &_tmp5_, &_inner_error_);
			_tmp1_ = _tmp6_;
			_tmp1__length1 = _tmp5_;
			__tmp1__size_ = _tmp1__length1;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_KEY_FILE_ERROR) {
					goto __catch34_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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return NULL;
			}
			_tmp7_ = _tmp1_;
			_tmp7__length1 = _tmp1__length1;
			_tmp1_ = NULL;
			_tmp1__length1 = 0;
			copy_value = (_vala_array_free (copy_value, copy_value_length1, (GDestroyNotify) g_free), NULL);
			copy_value = _tmp7_;
			copy_value_length1 = _tmp7__length1;
			_copy_value_size_ = copy_value_length1;
			_tmp1_ = (_vala_array_free (_tmp1_, _tmp1__length1, (GDestroyNotify) g_free), NULL);
		} else {
			gchar** _tmp8_ = NULL;
			GKeyFile* _tmp9_ = NULL;
			const gchar* _tmp10_ = NULL;
			const gchar* _tmp11_ = NULL;
			gchar* _tmp12_ = NULL;
			gchar* _tmp13_ = NULL;
			const gchar* _tmp14_ = NULL;
			gchar* _tmp15_ = NULL;
			gchar* _tmp16_ = NULL;
			gsize _tmp17_;
			gchar** _tmp18_ = NULL;
			gchar** _tmp19_ = NULL;
			gint _tmp19__length1 = 0;
			gint _tmp8__length1 = 0;
			gint __tmp8__size_ = 0;
			gchar** _tmp20_ = NULL;
			gint _tmp20__length1 = 0;
			_tmp9_ = keyfile;
			_tmp10_ = kf_categorie;
			_tmp11_ = kf_key1;
			_tmp12_ = g_strconcat (_tmp11_, "/", NULL);
			_tmp13_ = _tmp12_;
			_tmp14_ = kf_key2;
			_tmp15_ = g_strconcat (_tmp13_, _tmp14_, NULL);
			_tmp16_ = _tmp15_;
			_tmp18_ = g_key_file_get_string_list (_tmp9_, _tmp10_, _tmp16_, &_tmp17_, &_inner_error_);
			_tmp19_ = _tmp18_;
			_tmp19__length1 = _tmp17_;
			_g_free0 (_tmp16_);
			_g_free0 (_tmp13_);
			_tmp8_ = _tmp19_;
			_tmp8__length1 = _tmp19__length1;
			__tmp8__size_ = _tmp8__length1;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_KEY_FILE_ERROR) {
					goto __catch34_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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return NULL;
			}
			_tmp20_ = _tmp8_;
			_tmp20__length1 = _tmp8__length1;
			_tmp8_ = NULL;
			_tmp8__length1 = 0;
			copy_value = (_vala_array_free (copy_value, copy_value_length1, (GDestroyNotify) g_free), NULL);
			copy_value = _tmp20_;
			copy_value_length1 = _tmp20__length1;
			_copy_value_size_ = copy_value_length1;
			_tmp8_ = (_vala_array_free (_tmp8_, _tmp8__length1, (GDestroyNotify) g_free), NULL);
		}
	}
	goto __finally34;
	__catch34_g_key_file_error:
	{
		GError* err = NULL;
		GError* _tmp21_ = NULL;
		const gchar* _tmp22_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp21_ = err;
		_tmp22_ = _tmp21_->message;
		g_message ("settings.vala:613: %s", _tmp22_);
		_g_error_free0 (err);
	}
	__finally34:
	if (G_UNLIKELY (_inner_error_ != 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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return NULL;
	}
	_tmp23_ = copy_value;
	_tmp23__length1 = copy_value_length1;
	if (_tmp23_ == NULL) {
		gchar** _tmp24_ = NULL;
		gint _tmp24__length1 = 0;
		gchar** _tmp25_ = NULL;
		gint _tmp25__length1 = 0;
		_tmp24_ = default_value;
		_tmp24__length1 = default_value_length1;
		_tmp25_ = (_tmp24_ != NULL) ? _vala_array_dup6 (_tmp24_, _tmp24__length1) : ((gpointer) _tmp24_);
		_tmp25__length1 = _tmp24__length1;
		return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
		return_value = _tmp25_;
		return_value_length1 = _tmp25__length1;
		_return_value_size_ = return_value_length1;
	} else {
		gchar** _tmp26_ = NULL;
		gint _tmp26__length1 = 0;
		gchar** _tmp27_ = NULL;
		gint _tmp27__length1 = 0;
		_tmp26_ = default_value;
		_tmp26__length1 = default_value_length1;
		_tmp27_ = copy_value;
		_tmp27__length1 = copy_value_length1;
		if (_tmp26_ != _tmp27_) {
			gchar** _tmp28_ = NULL;
			gint _tmp28__length1 = 0;
			gchar** _tmp29_ = NULL;
			gint _tmp29__length1 = 0;
			_tmp28_ = copy_value;
			_tmp28__length1 = copy_value_length1;
			_tmp29_ = (_tmp28_ != NULL) ? _vala_array_dup7 (_tmp28_, _tmp28__length1) : ((gpointer) _tmp28_);
			_tmp29__length1 = _tmp28__length1;
			return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
			return_value = _tmp29_;
			return_value_length1 = _tmp29__length1;
			_return_value_size_ = return_value_length1;
		} else {
			gchar** _tmp30_ = NULL;
			gint _tmp30__length1 = 0;
			gchar** _tmp31_ = NULL;
			gint _tmp31__length1 = 0;
			_tmp30_ = default_value;
			_tmp30__length1 = default_value_length1;
			_tmp31_ = (_tmp30_ != NULL) ? _vala_array_dup8 (_tmp30_, _tmp30__length1) : ((gpointer) _tmp30_);
			_tmp31__length1 = _tmp30__length1;
			return_value = (_vala_array_free (return_value, return_value_length1, (GDestroyNotify) g_free), NULL);
			return_value = _tmp31_;
			return_value_length1 = _tmp31__length1;
			_return_value_size_ = return_value_length1;
		}
	}
	_tmp32_ = return_value;
	_tmp32__length1 = return_value_length1;
	if (result_length1) {
		*result_length1 = _tmp32__length1;
	}
	result = _tmp32_;
	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;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	const gchar* _tmp13_ = NULL;
	const gchar* _tmp14_ = NULL;
	GQuark _tmp16_ = 0U;
	static GQuark _tmp15_label0 = 0;
	GHashTable* _tmp23_ = NULL;
	gboolean _tmp24_ = FALSE;
	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_ = categorie;
	_tmp1_ = g_strconcat (_tmp0_, ";", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = key1;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, ";", NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = key2;
	_tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, ";", NULL);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp10_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	item_key = _tmp12_;
	_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:
			{
				GKeyFile* _tmp17_ = NULL;
				const gchar* _tmp18_ = NULL;
				const gchar* _tmp19_ = NULL;
				const gchar* _tmp20_ = NULL;
				const gchar* _tmp21_ = NULL;
				gchar* _tmp22_ = NULL;
				_tmp17_ = kf;
				_tmp18_ = categorie;
				_tmp19_ = key1;
				_tmp20_ = key2;
				_tmp21_ = default_variable;
				_tmp22_ = lxsession_lxsession_config_key_file_read_keyfile_string_value (self, _tmp17_, _tmp18_, _tmp19_, _tmp20_, _tmp21_);
				_g_free0 (final_variable);
				final_variable = _tmp22_;
				break;
			}
		}
	}
	_tmp23_ = ((LxsessionLxsessionConfig*) self)->config_item_db;
	_tmp24_ = g_hash_table_contains (_tmp23_, item_key);
	if (_tmp24_ == FALSE) {
		const gchar* _tmp25_ = NULL;
		const gchar* _tmp26_ = NULL;
		const gchar* _tmp27_ = NULL;
		const gchar* _tmp28_ = NULL;
		const gchar* _tmp29_ = NULL;
		_tmp25_ = categorie;
		_tmp26_ = key1;
		_tmp27_ = key2;
		_tmp28_ = type;
		_tmp29_ = final_variable;
		lxsession_lxsession_config_create_config_item ((LxsessionLxsessionConfig*) self, _tmp25_, _tmp26_, _tmp27_, _tmp28_, _tmp29_);
	} else {
		const gchar* _tmp30_ = NULL;
		const gchar* _tmp31_ = NULL;
		const gchar* _tmp32_ = NULL;
		gchar* _tmp33_ = NULL;
		gchar* _tmp34_ = NULL;
		const gchar* _tmp35_ = NULL;
		const gchar* _tmp36_ = NULL;
		const gchar* _tmp37_ = NULL;
		const gchar* _tmp38_ = NULL;
		const gchar* _tmp39_ = NULL;
		_tmp30_ = categorie;
		_tmp31_ = key1;
		_tmp32_ = key2;
		lxsession_lxsession_config_get_item ((LxsessionLxsessionConfig*) self, _tmp30_, _tmp31_, _tmp32_, &_tmp33_, &_tmp34_);
		_g_free0 (default_variable);
		default_variable = _tmp33_;
		_g_free0 (type_output);
		type_output = _tmp34_;
		_tmp35_ = categorie;
		_tmp36_ = key1;
		_tmp37_ = key2;
		_tmp38_ = type;
		_tmp39_ = final_variable;
		lxsession_lxsession_config_set_config_item_value_on_starting ((LxsessionLxsessionConfig*) self, _tmp35_, _tmp36_, _tmp37_, _tmp38_, _tmp39_);
	}
	_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_ = NULL;
	GKeyFile* _tmp1_ = NULL;
	GKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gboolean _tmp5_ = FALSE;
	GKeyFile* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gboolean _tmp9_ = FALSE;
	GKeyFile* _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	gboolean _tmp17_ = FALSE;
	GKeyFile* _tmp20_ = NULL;
	gchar* _tmp21_ = NULL;
	gchar* _tmp22_ = NULL;
	gboolean _tmp23_ = FALSE;
	GKeyFile* _tmp26_ = NULL;
	gchar* _tmp27_ = NULL;
	gchar* _tmp28_ = NULL;
	gboolean _tmp29_ = FALSE;
	GKeyFile* _tmp33_ = NULL;
	gchar* _tmp34_ = NULL;
	gchar* _tmp35_ = NULL;
	gboolean _tmp36_ = FALSE;
	GKeyFile* _tmp39_ = NULL;
	gchar* _tmp40_ = NULL;
	gchar* _tmp41_ = NULL;
	gboolean _tmp42_ = FALSE;
	GKeyFile* _tmp45_ = NULL;
	gchar* _tmp46_ = NULL;
	gchar* _tmp47_ = NULL;
	gboolean _tmp48_ = FALSE;
	GKeyFile* _tmp51_ = NULL;
	gchar* _tmp52_ = NULL;
	gchar* _tmp53_ = NULL;
	gboolean _tmp54_ = FALSE;
	GKeyFile* _tmp57_ = NULL;
	gchar* _tmp58_ = NULL;
	gchar* _tmp59_ = NULL;
	gboolean _tmp60_ = FALSE;
	GKeyFile* _tmp63_ = NULL;
	gchar* _tmp64_ = NULL;
	gchar* _tmp65_ = NULL;
	gboolean _tmp66_ = FALSE;
	GKeyFile* _tmp69_ = NULL;
	gchar* _tmp70_ = NULL;
	gchar* _tmp71_ = NULL;
	gboolean _tmp72_ = FALSE;
	GKeyFile* _tmp75_ = NULL;
	gchar* _tmp76_ = NULL;
	gchar* _tmp77_ = NULL;
	gboolean _tmp78_ = FALSE;
	GKeyFile* _tmp81_ = NULL;
	gchar* _tmp82_ = NULL;
	gchar* _tmp83_ = NULL;
	gboolean _tmp84_ = FALSE;
	GKeyFile* _tmp87_ = NULL;
	GKeyFile* _tmp88_ = NULL;
	GKeyFile* _tmp89_ = NULL;
	GKeyFile* _tmp90_ = NULL;
	GKeyFile* _tmp91_ = NULL;
	GKeyFile* _tmp92_ = NULL;
	gchar* _tmp93_ = NULL;
	gchar* _tmp94_ = NULL;
	gboolean _tmp95_ = FALSE;
	GKeyFile* _tmp99_ = NULL;
	GKeyFile* _tmp100_ = NULL;
	GKeyFile* _tmp101_ = NULL;
	GKeyFile* _tmp102_ = NULL;
	GKeyFile* _tmp103_ = NULL;
	GKeyFile* _tmp104_ = NULL;
	GKeyFile* _tmp105_ = NULL;
	GKeyFile* _tmp106_ = NULL;
	GKeyFile* _tmp107_ = NULL;
	GKeyFile* _tmp108_ = NULL;
	GKeyFile* _tmp109_ = NULL;
	GKeyFile* _tmp110_ = NULL;
	GKeyFile* _tmp111_ = NULL;
	GKeyFile* _tmp112_ = NULL;
	GKeyFile* _tmp113_ = NULL;
	GKeyFile* _tmp114_ = NULL;
	GKeyFile* _tmp115_ = NULL;
	GKeyFile* _tmp116_ = NULL;
	GKeyFile* _tmp117_ = NULL;
	GKeyFile* _tmp118_ = NULL;
	GKeyFile* _tmp119_ = NULL;
	GKeyFile* _tmp120_ = NULL;
	GKeyFile* _tmp121_ = NULL;
	GKeyFile* _tmp122_ = NULL;
	GKeyFile* _tmp123_ = NULL;
	GKeyFile* _tmp124_ = NULL;
	GKeyFile* _tmp125_ = NULL;
	GKeyFile* _tmp126_ = NULL;
	GKeyFile* _tmp127_ = NULL;
	GKeyFile* _tmp128_ = NULL;
	GKeyFile* _tmp129_ = NULL;
	GKeyFile* _tmp130_ = NULL;
	GKeyFile* _tmp131_ = NULL;
	GKeyFile* _tmp132_ = NULL;
	GKeyFile* _tmp133_ = NULL;
	GKeyFile* _tmp134_ = NULL;
	GKeyFile* _tmp135_ = NULL;
	GKeyFile* _tmp136_ = NULL;
	GKeyFile* _tmp137_ = NULL;
	GKeyFile* _tmp138_ = NULL;
	gchar* _tmp139_ = NULL;
	gchar* _tmp140_ = NULL;
	gboolean _tmp141_ = FALSE;
	GKeyFile* _tmp147_ = NULL;
	GKeyFile* _tmp148_ = NULL;
	GKeyFile* _tmp149_ = NULL;
	GKeyFile* _tmp150_ = NULL;
	GKeyFile* _tmp151_ = NULL;
	GKeyFile* _tmp152_ = NULL;
	GKeyFile* _tmp153_ = NULL;
	GKeyFile* _tmp154_ = NULL;
	GKeyFile* _tmp155_ = NULL;
	GKeyFile* _tmp156_ = NULL;
	GKeyFile* _tmp157_ = NULL;
	GKeyFile* _tmp158_ = NULL;
	GKeyFile* _tmp159_ = NULL;
	GKeyFile* _tmp160_ = NULL;
	GKeyFile* _tmp161_ = NULL;
	GKeyFile* _tmp162_ = NULL;
	GKeyFile* _tmp163_ = NULL;
	GKeyFile* _tmp164_ = NULL;
	GKeyFile* _tmp165_ = NULL;
	GKeyFile* _tmp166_ = NULL;
	GKeyFile* _tmp167_ = NULL;
	GKeyFile* _tmp168_ = NULL;
	GKeyFile* _tmp169_ = NULL;
	GKeyFile* _tmp170_ = NULL;
	GKeyFile* _tmp171_ = NULL;
	GKeyFile* _tmp172_ = NULL;
	GKeyFile* _tmp173_ = NULL;
	GKeyFile* _tmp174_ = NULL;
	GKeyFile* _tmp175_ = NULL;
	GKeyFile* _tmp176_ = NULL;
	GKeyFile* _tmp177_ = NULL;
	GKeyFile* _tmp178_ = NULL;
	GKeyFile* _tmp179_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_desktop_config_path;
	_tmp1_ = lxsession_load_keyfile (_tmp0_);
	_g_key_file_free0 (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_ = NULL;
		GKeyFile* _tmp11_ = NULL;
		GKeyFile* _tmp12_ = NULL;
		_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_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp19_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp25_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp31_ = NULL;
		GKeyFile* _tmp32_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp38_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp44_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp50_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp56_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp62_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp68_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp74_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp80_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp86_ = NULL;
		_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_ = NULL;
		GKeyFile* _tmp97_ = NULL;
		GKeyFile* _tmp98_ = NULL;
		_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", "images_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_ = NULL;
		GKeyFile* _tmp143_ = NULL;
		GKeyFile* _tmp144_ = NULL;
		GKeyFile* _tmp145_ = NULL;
		GKeyFile* _tmp146_ = NULL;
		_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) {
	g_return_if_fail (self != NULL);
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_GET_CLASS (self)->read_secondary_keyfile (self);
}


void lxsession_lxsession_config_key_file_sync_setting_files (LxsessionLxsessionConfigKeyFile* self) {
	gchar* desktop_file = NULL;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	gboolean _tmp3_ = FALSE;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_desktop_config_home_path;
	_tmp1_ = g_strdup (_tmp0_);
	desktop_file = _tmp1_;
	_tmp2_ = desktop_file;
	_tmp3_ = g_file_test (_tmp2_, G_FILE_TEST_EXISTS);
	if (_tmp3_) {
		gchar* autostart_file = NULL;
		gchar* _tmp4_ = NULL;
		const gchar* _tmp5_ = NULL;
		gboolean _tmp6_ = FALSE;
		_tmp4_ = lxsession_get_config_home_path ("autostart");
		autostart_file = _tmp4_;
		_tmp5_ = autostart_file;
		_tmp6_ = g_file_test (_tmp5_, G_FILE_TEST_EXISTS);
		if (_tmp6_) {
		} else {
			GFile* file = NULL;
			gchar* _tmp7_ = NULL;
			gchar* _tmp8_ = NULL;
			GFile* _tmp9_ = NULL;
			GFile* _tmp10_ = NULL;
			GFile* destination = NULL;
			gchar* _tmp11_ = NULL;
			gchar* _tmp12_ = NULL;
			GFile* _tmp13_ = NULL;
			GFile* _tmp14_ = NULL;
			_tmp7_ = lxsession_get_config_path ("autostart");
			_tmp8_ = _tmp7_;
			_tmp9_ = g_file_new_for_path (_tmp8_);
			_tmp10_ = _tmp9_;
			_g_free0 (_tmp8_);
			file = _tmp10_;
			_tmp11_ = lxsession_get_config_home_path ("autostart");
			_tmp12_ = _tmp11_;
			_tmp13_ = g_file_new_for_path (_tmp12_);
			_tmp14_ = _tmp13_;
			_g_free0 (_tmp12_);
			destination = _tmp14_;
			{
				GFile* _tmp15_ = NULL;
				GFile* _tmp16_ = NULL;
				_tmp15_ = file;
				_tmp16_ = destination;
				g_file_copy (_tmp15_, _tmp16_, G_FILE_COPY_NONE, NULL, NULL, NULL, &_inner_error_);
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					goto __catch35_g_error;
				}
			}
			goto __finally35;
			__catch35_g_error:
			{
				GError* err = NULL;
				GError* _tmp17_ = NULL;
				const gchar* _tmp18_ = NULL;
				err = _inner_error_;
				_inner_error_ = NULL;
				_tmp17_ = err;
				_tmp18_ = _tmp17_->message;
				g_message ("settings.vala:901: %s", _tmp18_);
				_g_error_free0 (err);
			}
			__finally35:
			if (G_UNLIKELY (_inner_error_ != 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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				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_ = NULL;
	gchar* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->kf;
	_tmp1_ = g_key_file_to_data (_tmp0_, NULL, NULL);
	str = _tmp1_;
	{
		const gchar* _tmp2_ = NULL;
		gint _tmp3_ = 0;
		gint _tmp4_ = 0;
		_tmp2_ = self->priv->_desktop_config_path;
		_tmp3_ = strlen (str);
		_tmp4_ = _tmp3_;
		g_file_set_contents (_tmp2_, str, (gssize) _tmp4_, &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_FILE_ERROR) {
				goto __catch36_g_file_error;
			}
			_g_free0 (str);
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	goto __finally36;
	__catch36_g_file_error:
	{
		GError* err = NULL;
		GError* _tmp5_ = NULL;
		const gchar* _tmp6_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp5_ = err;
		_tmp6_ = _tmp5_->message;
		g_warning ("settings.vala:917: %s", _tmp6_);
		{
			gchar* user_config_dir = NULL;
			const gchar* _tmp7_ = NULL;
			gchar* _tmp8_ = NULL;
			GFile* file_parent = NULL;
			GFile* file = NULL;
			const gchar* _tmp9_ = NULL;
			GFile* _tmp10_ = NULL;
			GFile* _tmp11_ = NULL;
			GFile* _tmp12_ = NULL;
			GFile* _tmp13_ = NULL;
			gboolean _tmp14_ = FALSE;
			const gchar* _tmp18_ = NULL;
			gint _tmp19_ = 0;
			gint _tmp20_ = 0;
			const gchar* _tmp21_ = NULL;
			_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;
			_tmp14_ = g_file_query_exists (_tmp13_, NULL);
			if (!_tmp14_) {
				{
					GFile* _tmp15_ = NULL;
					_tmp15_ = file_parent;
					g_file_make_directory_with_parents (_tmp15_, NULL, &_inner_error_);
					if (G_UNLIKELY (_inner_error_ != NULL)) {
						goto __catch38_g_error;
					}
				}
				goto __finally38;
				__catch38_g_error:
				{
					GError* err = NULL;
					GError* _tmp16_ = NULL;
					const gchar* _tmp17_ = NULL;
					err = _inner_error_;
					_inner_error_ = NULL;
					_tmp16_ = err;
					_tmp17_ = _tmp16_->message;
					g_warning ("settings.vala:934: %s", _tmp17_);
					_g_error_free0 (err);
				}
				__finally38:
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					_g_object_unref0 (file);
					_g_object_unref0 (file_parent);
					_g_free0 (user_config_dir);
					if (_inner_error_->domain == G_FILE_ERROR) {
						goto __catch37_g_file_error;
					}
					_g_object_unref0 (file);
					_g_object_unref0 (file_parent);
					_g_free0 (user_config_dir);
					_g_error_free0 (err);
					_g_free0 (str);
					g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
					g_clear_error (&_inner_error_);
					return;
				}
			}
			_tmp18_ = user_config_dir;
			_tmp19_ = strlen (str);
			_tmp20_ = _tmp19_;
			g_file_set_contents (_tmp18_, str, (gssize) _tmp20_, &_inner_error_);
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				_g_object_unref0 (file);
				_g_object_unref0 (file_parent);
				_g_free0 (user_config_dir);
				if (_inner_error_->domain == G_FILE_ERROR) {
					goto __catch37_g_file_error;
				}
				_g_object_unref0 (file);
				_g_object_unref0 (file_parent);
				_g_free0 (user_config_dir);
				_g_error_free0 (err);
				_g_free0 (str);
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return;
			}
			_tmp21_ = user_config_dir;
			lxsession_lxsession_config_key_file_set_desktop_config_path (self, _tmp21_);
			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 __finally37;
		__catch37_g_file_error:
		{
			GError* err = NULL;
			GError* _tmp22_ = NULL;
			const gchar* _tmp23_ = NULL;
			err = _inner_error_;
			_inner_error_ = NULL;
			_tmp22_ = err;
			_tmp23_ = _tmp22_->message;
			g_warning ("settings.vala:945: %s", _tmp23_);
			_g_error_free0 (err);
		}
		__finally37:
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			_g_error_free0 (err);
			_g_error_free0 (err);
			_g_free0 (str);
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
		_g_error_free0 (err);
	}
	__finally36:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_free0 (str);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		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) {
	g_return_if_fail (self != NULL);
	LXSESSION_LXSESSION_CONFIG_KEY_FILE_GET_CLASS (self)->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_ = NULL;
	const gchar* _tmp1_ = NULL;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	static GQuark _tmp2_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;
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp4_ = NULL;
				const gchar* _tmp5_ = NULL;
				const gchar* _tmp6_ = NULL;
				const gchar* _tmp7_ = NULL;
				_tmp4_ = self->kf;
				_tmp5_ = kf_categorie;
				_tmp6_ = kf_key1;
				_tmp7_ = dbus_arg;
				g_key_file_set_value (_tmp4_, _tmp5_, _tmp6_, _tmp7_);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp8_ = NULL;
				const gchar* _tmp9_ = NULL;
				const gchar* _tmp10_ = NULL;
				const gchar* _tmp11_ = NULL;
				_tmp8_ = self->kf;
				_tmp9_ = kf_categorie;
				_tmp10_ = kf_key1;
				_tmp11_ = dbus_arg;
				g_key_file_set_value (_tmp8_, _tmp9_, _tmp10_, _tmp11_);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp12_ = NULL;
				const gchar* _tmp13_ = NULL;
				const gchar* _tmp14_ = NULL;
				const gchar* _tmp15_ = NULL;
				_tmp12_ = self->kf;
				_tmp13_ = kf_categorie;
				_tmp14_ = kf_key1;
				_tmp15_ = dbus_arg;
				g_key_file_set_value (_tmp12_, _tmp13_, _tmp14_, _tmp15_);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				GKeyFile* _tmp16_ = NULL;
				const gchar* _tmp17_ = NULL;
				const gchar* _tmp18_ = NULL;
				gchar* _tmp19_ = NULL;
				gchar* _tmp20_ = NULL;
				const gchar* _tmp21_ = NULL;
				gchar* _tmp22_ = NULL;
				gchar* _tmp23_ = NULL;
				const gchar* _tmp24_ = NULL;
				_tmp16_ = self->kf;
				_tmp17_ = kf_categorie;
				_tmp18_ = kf_key1;
				_tmp19_ = g_strconcat (_tmp18_, "/", NULL);
				_tmp20_ = _tmp19_;
				_tmp21_ = kf_key2;
				_tmp22_ = g_strconcat (_tmp20_, _tmp21_, NULL);
				_tmp23_ = _tmp22_;
				_tmp24_ = dbus_arg;
				g_key_file_set_value (_tmp16_, _tmp17_, _tmp23_, _tmp24_);
				_g_free0 (_tmp23_);
				_g_free0 (_tmp20_);
				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, int dbus_arg_length1, const gchar* kf_categorie, const gchar* kf_key1, const gchar* kf_key2) {
	LxsessionLxsessionConfigKeyFile * self;
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	static GQuark _tmp2_label2 = 0;
	self = (LxsessionLxsessionConfigKeyFile*) base;
	g_return_if_fail (kf_categorie != NULL);
	g_return_if_fail (kf_key1 != NULL);
	_tmp0_ = kf_key2;
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp4_ = NULL;
				const gchar* _tmp5_ = NULL;
				const gchar* _tmp6_ = NULL;
				gchar** _tmp7_ = NULL;
				gint _tmp7__length1 = 0;
				_tmp4_ = self->kf;
				_tmp5_ = kf_categorie;
				_tmp6_ = kf_key1;
				_tmp7_ = dbus_arg;
				_tmp7__length1 = dbus_arg_length1;
				g_key_file_set_string_list (_tmp4_, _tmp5_, _tmp6_, (const gchar* const*) _tmp7_, _tmp7__length1);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp8_ = NULL;
				const gchar* _tmp9_ = NULL;
				const gchar* _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gint _tmp11__length1 = 0;
				_tmp8_ = self->kf;
				_tmp9_ = kf_categorie;
				_tmp10_ = kf_key1;
				_tmp11_ = dbus_arg;
				_tmp11__length1 = dbus_arg_length1;
				g_key_file_set_string_list (_tmp8_, _tmp9_, _tmp10_, (const gchar* const*) _tmp11_, _tmp11__length1);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				GKeyFile* _tmp12_ = NULL;
				const gchar* _tmp13_ = NULL;
				const gchar* _tmp14_ = NULL;
				gchar** _tmp15_ = NULL;
				gint _tmp15__length1 = 0;
				_tmp12_ = self->kf;
				_tmp13_ = kf_categorie;
				_tmp14_ = kf_key1;
				_tmp15_ = dbus_arg;
				_tmp15__length1 = dbus_arg_length1;
				g_key_file_set_string_list (_tmp12_, _tmp13_, _tmp14_, (const gchar* const*) _tmp15_, _tmp15__length1);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				GKeyFile* _tmp16_ = NULL;
				const gchar* _tmp17_ = NULL;
				const gchar* _tmp18_ = NULL;
				gchar* _tmp19_ = NULL;
				gchar* _tmp20_ = NULL;
				const gchar* _tmp21_ = NULL;
				gchar* _tmp22_ = NULL;
				gchar* _tmp23_ = NULL;
				gchar** _tmp24_ = NULL;
				gint _tmp24__length1 = 0;
				_tmp16_ = self->kf;
				_tmp17_ = kf_categorie;
				_tmp18_ = kf_key1;
				_tmp19_ = g_strconcat (_tmp18_, "/", NULL);
				_tmp20_ = _tmp19_;
				_tmp21_ = kf_key2;
				_tmp22_ = g_strconcat (_tmp20_, _tmp21_, NULL);
				_tmp23_ = _tmp22_;
				_tmp24_ = dbus_arg;
				_tmp24__length1 = dbus_arg_length1;
				g_key_file_set_string_list (_tmp16_, _tmp17_, _tmp23_, (const gchar* const*) _tmp24_, _tmp24__length1);
				_g_free0 (_tmp23_);
				_g_free0 (_tmp20_);
				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_ = NULL;
	const gchar* _tmp1_ = NULL;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	static GQuark _tmp2_label2 = 0;
	self = (LxsessionLxsessionConfigKeyFile*) base;
	g_return_if_fail (kf_categorie != NULL);
	g_return_if_fail (kf_key1 != NULL);
	_tmp0_ = kf_key2;
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				const gchar* _tmp4_ = NULL;
				const gchar* _tmp5_ = NULL;
				gint _tmp6_ = 0;
				GKeyFile* _tmp7_ = NULL;
				const gchar* _tmp8_ = NULL;
				const gchar* _tmp9_ = NULL;
				gint _tmp10_ = 0;
				_tmp4_ = kf_categorie;
				_tmp5_ = kf_key1;
				_tmp6_ = dbus_arg;
				g_message ("settings.vala:1009: Changing %s - %s to %i", _tmp4_, _tmp5_, _tmp6_);
				_tmp7_ = self->kf;
				_tmp8_ = kf_categorie;
				_tmp9_ = kf_key1;
				_tmp10_ = dbus_arg;
				g_key_file_set_integer (_tmp7_, _tmp8_, _tmp9_, _tmp10_);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp11_ = NULL;
				const gchar* _tmp12_ = NULL;
				gint _tmp13_ = 0;
				GKeyFile* _tmp14_ = NULL;
				const gchar* _tmp15_ = NULL;
				const gchar* _tmp16_ = NULL;
				gint _tmp17_ = 0;
				_tmp11_ = kf_categorie;
				_tmp12_ = kf_key1;
				_tmp13_ = dbus_arg;
				g_message ("settings.vala:1013: Changing %s - %s to %i", _tmp11_, _tmp12_, _tmp13_);
				_tmp14_ = self->kf;
				_tmp15_ = kf_categorie;
				_tmp16_ = kf_key1;
				_tmp17_ = dbus_arg;
				g_key_file_set_integer (_tmp14_, _tmp15_, _tmp16_, _tmp17_);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp18_ = NULL;
				const gchar* _tmp19_ = NULL;
				gint _tmp20_ = 0;
				GKeyFile* _tmp21_ = NULL;
				const gchar* _tmp22_ = NULL;
				const gchar* _tmp23_ = NULL;
				gint _tmp24_ = 0;
				_tmp18_ = kf_categorie;
				_tmp19_ = kf_key1;
				_tmp20_ = dbus_arg;
				g_message ("settings.vala:1017: Changing %s - %s to %i", _tmp18_, _tmp19_, _tmp20_);
				_tmp21_ = self->kf;
				_tmp22_ = kf_categorie;
				_tmp23_ = kf_key1;
				_tmp24_ = dbus_arg;
				g_key_file_set_integer (_tmp21_, _tmp22_, _tmp23_, _tmp24_);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				const gchar* _tmp25_ = NULL;
				const gchar* _tmp26_ = NULL;
				const gchar* _tmp27_ = NULL;
				gint _tmp28_ = 0;
				GKeyFile* _tmp29_ = NULL;
				const gchar* _tmp30_ = NULL;
				const gchar* _tmp31_ = NULL;
				gchar* _tmp32_ = NULL;
				gchar* _tmp33_ = NULL;
				const gchar* _tmp34_ = NULL;
				gchar* _tmp35_ = NULL;
				gchar* _tmp36_ = NULL;
				gint _tmp37_ = 0;
				_tmp25_ = kf_categorie;
				_tmp26_ = kf_key1;
				_tmp27_ = kf_key2;
				_tmp28_ = dbus_arg;
				g_message ("settings.vala:1021: Changing %s - %s - %s to %i", _tmp25_, _tmp26_, _tmp27_, _tmp28_);
				_tmp29_ = self->kf;
				_tmp30_ = kf_categorie;
				_tmp31_ = kf_key1;
				_tmp32_ = g_strconcat (_tmp31_, "/", NULL);
				_tmp33_ = _tmp32_;
				_tmp34_ = kf_key2;
				_tmp35_ = g_strconcat (_tmp33_, _tmp34_, NULL);
				_tmp36_ = _tmp35_;
				_tmp37_ = dbus_arg;
				g_key_file_set_integer (_tmp29_, _tmp30_, _tmp36_, _tmp37_);
				_g_free0 (_tmp36_);
				_g_free0 (_tmp33_);
				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_ = NULL;
	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) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_desktop_config_path);
	self->priv->_desktop_config_path = _tmp1_;
	g_object_notify ((GObject *) self, "desktop-config-path");
}


const gchar* lxsession_lxsession_config_key_file_get_desktop_config_home_path (LxsessionLxsessionConfigKeyFile* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	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) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_desktop_config_home_path);
	self->priv->_desktop_config_home_path = _tmp1_;
	g_object_notify ((GObject *) self, "desktop-config-home-path");
}


static void lxsession_lxsession_config_key_file_class_init (LxsessionLxsessionConfigKeyFileClass * klass) {
	lxsession_lxsession_config_key_file_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionLxsessionConfigKeyFilePrivate));
	((LxsessionLxsessionConfigKeyFileClass *) klass)->read_secondary_keyfile = lxsession_lxsession_config_key_file_real_read_secondary_keyfile;
	((LxsessionLxsessionConfigKeyFileClass *) klass)->save_secondary_keyfile = lxsession_lxsession_config_key_file_real_save_secondary_keyfile;
	((LxsessionLxsessionConfigClass *) klass)->on_update_string_set = lxsession_lxsession_config_key_file_real_on_update_string_set;
	((LxsessionLxsessionConfigClass *) klass)->on_update_string_list_set = lxsession_lxsession_config_key_file_real_on_update_string_list_set;
	((LxsessionLxsessionConfigClass *) klass)->on_update_int_set = 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, g_param_spec_string ("desktop-config-path", "desktop-config-path", "desktop-config-path", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_LXSESSION_CONFIG_KEY_FILE_DESKTOP_CONFIG_HOME_PATH, g_param_spec_string ("desktop-config-home-path", "desktop-config-home-path", "desktop-config-home-path", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void lxsession_lxsession_config_key_file_instance_init (LxsessionLxsessionConfigKeyFile * self) {
	GKeyFile* _tmp0_ = NULL;
	self->priv = LXSESSION_LXSESSION_CONFIG_KEY_FILE_GET_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_free0 (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);
}


GType lxsession_lxsession_config_key_file_get_type (void) {
	static volatile gsize lxsession_lxsession_config_key_file_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_lxsession_config_key_file_type_id__volatile)) {
		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);
		g_once_init_leave (&lxsession_lxsession_config_key_file_type_id__volatile, lxsession_lxsession_config_key_file_type_id);
	}
	return lxsession_lxsession_config_key_file_type_id__volatile;
}


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:
		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:
		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:
		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:
		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;
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gboolean _tmp6_ = FALSE;
	g_return_val_if_fail (session_arg != NULL, NULL);
	g_return_val_if_fail (desktop_env_name_arg != NULL, NULL);
	_tmp0_ = session_arg;
	_tmp1_ = desktop_env_name_arg;
	self = (LxsessionRazorQtConfigKeyFile*) lxsession_lxsession_config_key_file_construct (object_type, _tmp0_, _tmp1_);
	lxsession_lxsession_config_key_file_init_desktop_files ((LxsessionLxsessionConfigKeyFile*) self);
	lxsession_razor_qt_config_key_file_init_desktop_razor_files (self);
	_tmp2_ = session_arg;
	lxsession_lxsession_config_set_session_name ((LxsessionLxsessionConfig*) self, _tmp2_);
	_tmp3_ = desktop_env_name_arg;
	lxsession_lxsession_config_set_desktop_env_name ((LxsessionLxsessionConfig*) self, _tmp3_);
	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);
	_tmp4_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) self, "State", "guess_default", NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strcmp0 (_tmp5_, "false") != 0;
	_g_free0 (_tmp5_);
	if (_tmp6_) {
		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_ = NULL;
	gchar* _tmp1_ = NULL;
	GFile* home_session_razor_file = NULL;
	const gchar* _tmp2_ = NULL;
	GFile* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	GFile* session_razor_file = NULL;
	const gchar* _tmp5_ = NULL;
	GFile* _tmp6_ = NULL;
	GFile* _tmp7_ = NULL;
	gboolean _tmp8_ = FALSE;
	const gchar* _tmp20_ = NULL;
	gchar* _tmp21_ = NULL;
	GFile* home_conf_razor_file = NULL;
	const gchar* _tmp22_ = NULL;
	GFile* _tmp23_ = NULL;
	gchar* _tmp24_ = NULL;
	GFile* conf_razor_file = NULL;
	const gchar* _tmp25_ = NULL;
	GFile* _tmp26_ = NULL;
	GFile* _tmp27_ = NULL;
	gboolean _tmp28_ = FALSE;
	GError * _inner_error_ = 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;
	_tmp8_ = g_file_query_exists (_tmp7_, NULL);
	if (_tmp8_) {
		const gchar* _tmp9_ = NULL;
		gchar* _tmp10_ = NULL;
		_tmp9_ = self->session_razor_config_home_path;
		_tmp10_ = g_strdup (_tmp9_);
		_g_free0 (self->session_razor_config_path);
		self->session_razor_config_path = _tmp10_;
	} else {
		GFile* _tmp11_ = NULL;
		gboolean _tmp12_ = FALSE;
		_tmp11_ = session_razor_file;
		_tmp12_ = g_file_query_exists (_tmp11_, NULL);
		if (_tmp12_) {
		} else {
			const gchar* _tmp13_ = NULL;
			gchar* _tmp14_ = NULL;
			_tmp13_ = self->session_razor_config_home_path;
			_tmp14_ = g_strdup (_tmp13_);
			_g_free0 (self->session_razor_config_path);
			self->session_razor_config_path = _tmp14_;
			{
				GFile* _tmp15_ = NULL;
				GFileOutputStream* _tmp16_ = NULL;
				GFileOutputStream* _tmp17_ = NULL;
				_tmp15_ = home_session_razor_file;
				_tmp16_ = g_file_create (_tmp15_, G_FILE_CREATE_NONE, NULL, &_inner_error_);
				_tmp17_ = _tmp16_;
				_g_object_unref0 (_tmp17_);
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					goto __catch39_g_error;
				}
			}
			goto __finally39;
			__catch39_g_error:
			{
				GError* err = NULL;
				GError* _tmp18_ = NULL;
				const gchar* _tmp19_ = NULL;
				err = _inner_error_;
				_inner_error_ = NULL;
				_tmp18_ = err;
				_tmp19_ = _tmp18_->message;
				g_message ("settings.vala:1101: %s", _tmp19_);
				_g_error_free0 (err);
			}
			__finally39:
			if (G_UNLIKELY (_inner_error_ != 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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return;
			}
		}
	}
	_tmp20_ = g_get_user_config_dir ();
	_tmp21_ = g_build_filename (_tmp20_, "razor", "razor.conf", NULL);
	_g_free0 (self->conf_razor_config_home_path);
	self->conf_razor_config_home_path = _tmp21_;
	_tmp22_ = self->conf_razor_config_home_path;
	_tmp23_ = g_file_new_for_path (_tmp22_);
	home_conf_razor_file = _tmp23_;
	_tmp24_ = g_build_filename ("etc", "xdg", "razor", "razor.conf", NULL);
	_g_free0 (self->conf_razor_config_path);
	self->conf_razor_config_path = _tmp24_;
	_tmp25_ = self->conf_razor_config_path;
	_tmp26_ = g_file_new_for_path (_tmp25_);
	conf_razor_file = _tmp26_;
	_tmp27_ = home_conf_razor_file;
	_tmp28_ = g_file_query_exists (_tmp27_, NULL);
	if (_tmp28_) {
		const gchar* _tmp29_ = NULL;
		gchar* _tmp30_ = NULL;
		_tmp29_ = self->conf_razor_config_home_path;
		_tmp30_ = g_strdup (_tmp29_);
		_g_free0 (self->conf_razor_config_path);
		self->conf_razor_config_path = _tmp30_;
	} else {
		GFile* _tmp31_ = NULL;
		gboolean _tmp32_ = FALSE;
		_tmp31_ = conf_razor_file;
		_tmp32_ = g_file_query_exists (_tmp31_, NULL);
		if (_tmp32_) {
		} else {
			const gchar* _tmp33_ = NULL;
			gchar* _tmp34_ = NULL;
			_tmp33_ = self->conf_razor_config_home_path;
			_tmp34_ = g_strdup (_tmp33_);
			_g_free0 (self->conf_razor_config_path);
			self->conf_razor_config_path = _tmp34_;
			{
				GFile* _tmp35_ = NULL;
				GFileOutputStream* _tmp36_ = NULL;
				GFileOutputStream* _tmp37_ = NULL;
				_tmp35_ = home_conf_razor_file;
				_tmp36_ = g_file_create (_tmp35_, G_FILE_CREATE_NONE, NULL, &_inner_error_);
				_tmp37_ = _tmp36_;
				_g_object_unref0 (_tmp37_);
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					goto __catch40_g_error;
				}
			}
			goto __finally40;
			__catch40_g_error:
			{
				GError* err = NULL;
				GError* _tmp38_ = NULL;
				const gchar* _tmp39_ = NULL;
				err = _inner_error_;
				_inner_error_ = NULL;
				_tmp38_ = err;
				_tmp39_ = _tmp38_->message;
				g_message ("settings.vala:1128: %s", _tmp39_);
				_g_error_free0 (err);
			}
			__finally40:
			if (G_UNLIKELY (_inner_error_ != 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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				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;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	const gchar* _tmp13_ = NULL;
	const gchar* _tmp14_ = NULL;
	GQuark _tmp16_ = 0U;
	static GQuark _tmp15_label0 = 0;
	GHashTable* _tmp23_ = NULL;
	gboolean _tmp24_ = FALSE;
	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_ = categorie;
	_tmp1_ = g_strconcat (_tmp0_, ";", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = key1;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat (_tmp5_, ";", NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = key2;
	_tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_strconcat (_tmp10_, ";", NULL);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp10_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	item_key = _tmp12_;
	_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:
			{
				GKeyFile* _tmp17_ = NULL;
				const gchar* _tmp18_ = NULL;
				const gchar* _tmp19_ = NULL;
				const gchar* _tmp20_ = NULL;
				const gchar* _tmp21_ = NULL;
				gchar* _tmp22_ = NULL;
				_tmp17_ = kf;
				_tmp18_ = categorie_razor;
				_tmp19_ = key1_razor;
				_tmp20_ = key2_razor;
				_tmp21_ = default_variable;
				_tmp22_ = lxsession_razor_qt_config_key_file_read_razor_keyfile_bool_value (self, _tmp17_, _tmp18_, _tmp19_, _tmp20_, _tmp21_);
				_g_free0 (final_variable);
				final_variable = _tmp22_;
				break;
			}
		}
	}
	_tmp23_ = ((LxsessionLxsessionConfig*) self)->config_item_db;
	_tmp24_ = g_hash_table_contains (_tmp23_, item_key);
	if (_tmp24_) {
		const gchar* _tmp25_ = NULL;
		const gchar* _tmp26_ = NULL;
		const gchar* _tmp27_ = NULL;
		const gchar* _tmp28_ = NULL;
		g_message ("settings.vala:1151: Create new config key: %s", item_key);
		_tmp25_ = categorie;
		_tmp26_ = key1;
		_tmp27_ = key2;
		_tmp28_ = type;
		lxsession_lxsession_config_create_config_item ((LxsessionLxsessionConfig*) self, _tmp25_, _tmp26_, _tmp27_, _tmp28_, NULL);
	} else {
		const gchar* _tmp29_ = NULL;
		const gchar* _tmp30_ = NULL;
		const gchar* _tmp31_ = NULL;
		gchar* _tmp32_ = NULL;
		gchar* _tmp33_ = NULL;
		const gchar* _tmp34_ = NULL;
		const gchar* _tmp35_ = NULL;
		const gchar* _tmp36_ = NULL;
		const gchar* _tmp37_ = NULL;
		const gchar* _tmp38_ = NULL;
		_tmp29_ = categorie;
		_tmp30_ = key1;
		_tmp31_ = key2;
		lxsession_lxsession_config_get_item ((LxsessionLxsessionConfig*) self, _tmp29_, _tmp30_, _tmp31_, &_tmp32_, &_tmp33_);
		_g_free0 (default_variable);
		default_variable = _tmp32_;
		_g_free0 (type_output);
		type_output = _tmp33_;
		_tmp34_ = categorie;
		_tmp35_ = key1;
		_tmp36_ = key2;
		_tmp37_ = type;
		_tmp38_ = final_variable;
		lxsession_lxsession_config_set_config_item_value ((LxsessionLxsessionConfig*) self, _tmp34_, _tmp35_, _tmp36_, _tmp37_, _tmp38_);
	}
	_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_ = NULL;
	GKeyFile* _tmp1_ = NULL;
	GKeyFile* _tmp2_ = NULL;
	GKeyFile* _tmp3_ = NULL;
	GKeyFile* _tmp4_ = NULL;
	GKeyFile* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gboolean _tmp8_ = FALSE;
	GKeyFile* _tmp9_ = NULL;
	const gchar* _tmp10_ = NULL;
	GKeyFile* _tmp11_ = NULL;
	GKeyFile* _tmp12_ = NULL;
	GKeyFile* _tmp13_ = NULL;
	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_free0 (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_free0 (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* result = NULL;
	gchar* copy_value = NULL;
	gchar* return_value = NULL;
	const gchar* _tmp21_ = NULL;
	GError * _inner_error_ = NULL;
	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;
	{
		const gchar* _tmp0_ = NULL;
		_tmp0_ = kf_key2;
		if (_tmp0_ == NULL) {
			gchar* _tmp1_ = NULL;
			GKeyFile* _tmp2_ = NULL;
			const gchar* _tmp3_ = NULL;
			const gchar* _tmp4_ = NULL;
			gchar* _tmp5_ = NULL;
			gchar* _tmp6_ = NULL;
			_tmp2_ = keyfile;
			_tmp3_ = kf_categorie;
			_tmp4_ = kf_key1;
			_tmp5_ = g_key_file_get_value (_tmp2_, _tmp3_, _tmp4_, &_inner_error_);
			_tmp1_ = _tmp5_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_KEY_FILE_ERROR) {
					goto __catch41_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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return NULL;
			}
			_tmp6_ = _tmp1_;
			_tmp1_ = NULL;
			_g_free0 (copy_value);
			copy_value = _tmp6_;
			_g_free0 (_tmp1_);
		} else {
			gchar* _tmp7_ = NULL;
			GKeyFile* _tmp8_ = NULL;
			const gchar* _tmp9_ = NULL;
			const gchar* _tmp10_ = NULL;
			gchar* _tmp11_ = NULL;
			gchar* _tmp12_ = NULL;
			const gchar* _tmp13_ = NULL;
			gchar* _tmp14_ = NULL;
			gchar* _tmp15_ = NULL;
			gchar* _tmp16_ = NULL;
			gchar* _tmp17_ = NULL;
			gchar* _tmp18_ = NULL;
			_tmp8_ = keyfile;
			_tmp9_ = kf_categorie;
			_tmp10_ = kf_key1;
			_tmp11_ = g_strconcat (_tmp10_, "/", NULL);
			_tmp12_ = _tmp11_;
			_tmp13_ = kf_key2;
			_tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
			_tmp15_ = _tmp14_;
			_tmp16_ = g_key_file_get_value (_tmp8_, _tmp9_, _tmp15_, &_inner_error_);
			_tmp17_ = _tmp16_;
			_g_free0 (_tmp15_);
			_g_free0 (_tmp12_);
			_tmp7_ = _tmp17_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_KEY_FILE_ERROR) {
					goto __catch41_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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return NULL;
			}
			_tmp18_ = _tmp7_;
			_tmp7_ = NULL;
			_g_free0 (copy_value);
			copy_value = _tmp18_;
			_g_free0 (_tmp7_);
		}
	}
	goto __finally41;
	__catch41_g_key_file_error:
	{
		GError* err = NULL;
		GError* _tmp19_ = NULL;
		const gchar* _tmp20_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp19_ = err;
		_tmp20_ = _tmp19_->message;
		g_message ("settings.vala:1213: %s", _tmp20_);
		_g_error_free0 (err);
	}
	__finally41:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_free0 (return_value);
		_g_free0 (copy_value);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return NULL;
	}
	_tmp21_ = copy_value;
	if (_tmp21_ == NULL) {
		const gchar* _tmp22_ = NULL;
		gchar* _tmp23_ = NULL;
		_tmp22_ = default_value;
		_tmp23_ = g_strdup (_tmp22_);
		_g_free0 (return_value);
		return_value = _tmp23_;
	} else {
		const gchar* _tmp24_ = NULL;
		_tmp24_ = copy_value;
		if (g_strcmp0 (_tmp24_, "true") == 0) {
			const gchar* _tmp25_ = NULL;
			gchar* _tmp26_ = NULL;
			_tmp25_ = kf_key1;
			_tmp26_ = g_strdup (_tmp25_);
			_g_free0 (return_value);
			return_value = _tmp26_;
		} else {
			const gchar* _tmp27_ = NULL;
			gchar* _tmp28_ = NULL;
			_tmp27_ = default_value;
			_tmp28_ = g_strdup (_tmp27_);
			_g_free0 (return_value);
			return_value = _tmp28_;
		}
	}
	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_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	GKeyFile* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gboolean _tmp9_ = FALSE;
	gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gboolean _tmp14_ = FALSE;
	gchar* _tmp17_ = NULL;
	gchar* _tmp18_ = NULL;
	gboolean _tmp19_ = FALSE;
	gchar* _tmp22_ = NULL;
	gchar* _tmp23_ = NULL;
	gboolean _tmp24_ = FALSE;
	gchar* str_session = NULL;
	GKeyFile* _tmp27_ = NULL;
	gchar* _tmp28_ = NULL;
	gchar* str_conf = NULL;
	GKeyFile* _tmp34_ = NULL;
	gchar* _tmp35_ = NULL;
	GError * _inner_error_ = 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_ = NULL;
		_tmp10_ = self->kf_session;
		g_key_file_set_value (_tmp10_, "modules", "razor-panel", "true");
	} else {
		GKeyFile* _tmp11_ = NULL;
		_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_ = NULL;
		_tmp15_ = self->kf_session;
		g_key_file_set_value (_tmp15_, "modules", "razor-desktop", "true");
	} else {
		GKeyFile* _tmp16_ = NULL;
		_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_ = NULL;
		_tmp20_ = self->kf_session;
		g_key_file_set_value (_tmp20_, "modules", "razor-runner", "true");
	} else {
		GKeyFile* _tmp21_ = NULL;
		_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_ = NULL;
		_tmp25_ = self->kf_session;
		g_key_file_set_value (_tmp25_, "modules", "razor-policykit-agent", "true");
	} else {
		GKeyFile* _tmp26_ = NULL;
		_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_ = NULL;
		gint _tmp30_ = 0;
		gint _tmp31_ = 0;
		_tmp29_ = self->session_razor_config_path;
		_tmp30_ = strlen (str_session);
		_tmp31_ = _tmp30_;
		g_file_set_contents (_tmp29_, str_session, (gssize) _tmp31_, &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_FILE_ERROR) {
				goto __catch42_g_file_error;
			}
			_g_free0 (str_session);
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	goto __finally42;
	__catch42_g_file_error:
	{
		GError* err = NULL;
		GError* _tmp32_ = NULL;
		const gchar* _tmp33_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp32_ = err;
		_tmp33_ = _tmp32_->message;
		g_warning ("settings.vala:1292: %s", _tmp33_);
		_g_error_free0 (err);
	}
	__finally42:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_free0 (str_session);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		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_ = NULL;
		gint _tmp37_ = 0;
		gint _tmp38_ = 0;
		_tmp36_ = self->conf_razor_config_path;
		_tmp37_ = strlen (str_conf);
		_tmp38_ = _tmp37_;
		g_file_set_contents (_tmp36_, str_conf, (gssize) _tmp38_, &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_FILE_ERROR) {
				goto __catch43_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_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	goto __finally43;
	__catch43_g_file_error:
	{
		GError* err = NULL;
		GError* _tmp39_ = NULL;
		const gchar* _tmp40_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp39_ = err;
		_tmp40_ = _tmp39_->message;
		g_warning ("settings.vala:1303: %s", _tmp40_);
		_g_error_free0 (err);
	}
	__finally43:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_free0 (str_conf);
		_g_free0 (str_session);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
	_g_free0 (str_conf);
	_g_free0 (str_session);
}


static void lxsession_razor_qt_config_key_file_class_init (LxsessionRazorQtConfigKeyFileClass * klass) {
	lxsession_razor_qt_config_key_file_parent_class = g_type_class_peek_parent (klass);
	((LxsessionLxsessionConfigKeyFileClass *) klass)->read_secondary_keyfile = lxsession_razor_qt_config_key_file_real_read_secondary_keyfile;
	((LxsessionLxsessionConfigKeyFileClass *) klass)->save_secondary_keyfile = 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) {
	GKeyFile* _tmp0_ = NULL;
	GKeyFile* _tmp1_ = NULL;
	_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_free0 (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_free0 (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);
}


GType lxsession_razor_qt_config_key_file_get_type (void) {
	static volatile gsize lxsession_razor_qt_config_key_file_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_razor_qt_config_key_file_type_id__volatile)) {
		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);
		g_once_init_leave (&lxsession_razor_qt_config_key_file_type_id__volatile, lxsession_razor_qt_config_key_file_type_id);
	}
	return lxsession_razor_qt_config_key_file_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int 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, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}


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



