#include <pio.h>
#include <plog.h>
+static const char *KEY_GNOME_AUTOSTART = "X-GNOME-Autostart-enabled";
+
static char *get_user_autostart_dir()
{
const char *xdg_cfg_dir;
{
return (!g_key_file_has_key(f,
G_KEY_FILE_DESKTOP_GROUP,
- "X-GNOME-Autostart-enabled",
+ KEY_GNOME_AUTOSTART,
NULL))
|| g_key_file_get_boolean(f,
G_KEY_FILE_DESKTOP_GROUP,
- "X-GNOME-Autostart-enabled",
+ KEY_GNOME_AUTOSTART,
NULL);
}
return ret;
}
-void pxdg_set_autostart(unsigned int enable)
+static void enable_gnome_autostart(const char *path)
{
- char *user_desktop, *data;
GKeyFile *f;
+ char *data;
+
+ f = get_key_file(path);
+ if (f) {
+ if (g_key_file_has_key(f,
+ G_KEY_FILE_DESKTOP_GROUP,
+ KEY_GNOME_AUTOSTART,
+ NULL))
+ g_key_file_set_boolean(f,
+ G_KEY_FILE_DESKTOP_GROUP,
+ KEY_GNOME_AUTOSTART,
+ TRUE);
+ data = g_key_file_to_data(f, NULL, NULL);
+ g_file_set_contents(path, data, -1, NULL);
+
+ g_key_file_free(f);
+ } else {
+ log_err("Fail to enable %s", KEY_GNOME_AUTOSTART);
+ }
+}
+
+void pxdg_set_autostart(unsigned int enable)
+{
+ char *user_desktop;
log_fct_enter();
if (enable) {
if (!is_file_exists(user_desktop))
file_copy(get_desktop_file(), user_desktop);
-
- f = get_key_file(user_desktop);
- if (f) {
- if (g_key_file_has_key(f,
- G_KEY_FILE_DESKTOP_GROUP,
- "X-GNOME-Autostart-enabled",
- NULL))
- g_key_file_set_boolean
- (f,
- G_KEY_FILE_DESKTOP_GROUP,
- "X-GNOME-Autostart-enabled",
- TRUE);
- data = g_key_file_to_data(f, NULL, NULL);
- g_file_set_contents(user_desktop,
- data,
- -1,
- NULL);
-
- g_key_file_free(f);
- }
+ enable_gnome_autostart(user_desktop);
} else {
/* because X-GNOME-Autostart-enabled does not turn off
* autostart on all Desktop Envs. */