Skip to content

Commit 9d41078

Browse files
committed
main.c: add environment_set()
1 parent 9e4b9fd commit 9d41078

File tree

1 file changed

+37
-27
lines changed

1 file changed

+37
-27
lines changed

main.c

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,32 +22,12 @@ static struct themes cursor_themes = { 0 };
2222
static GSettings *settings;
2323

2424
static void
25-
set_value(GSettings *settings, const char *key, const char *value)
25+
environment_set(const char *key, const char *value)
2626
{
27-
if (!value) {
28-
fprintf(stderr, "warn: cannot set '%s' - no value specified\n", key);
29-
return;
30-
}
31-
g_settings_set_value(settings, key, g_variant_new("s", value));
32-
}
33-
34-
35-
static void
36-
update(GtkWidget *widget, gpointer data)
37-
{
38-
/* labwc settings */
39-
xml_set_num("cornerradius.theme", gtk_spin_button_get_value(GTK_SPIN_BUTTON(corner_radius)));
40-
xml_set("name.theme", gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(openbox_theme_name)));
41-
xml_set("naturalscroll.device.libinput", gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(natural_scroll)));
42-
xml_save();
43-
44-
/* gtk settings */
45-
set_value(settings, "cursor-theme", gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cursor_theme_name)));
46-
set_value(settings, "gtk-theme", gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(gtk_theme_name)));
47-
set_value(settings, "icon-theme", gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(icon_theme_name)));
48-
4927
/* set cursor for labwc - should cover 'replace' or 'append' */
50-
char xcur[4096] = "XCURSOR_THEME=";
28+
char xcur[4096] = {0};
29+
strcpy(xcur, key);
30+
strcat(xcur, "=");
5131
char filename[PATH_MAX];
5232
char bufname[PATH_MAX];
5333
char *home = getenv("HOME");
@@ -68,13 +48,43 @@ update(GtkWidget *widget, gpointer data)
6848
}
6949
}
7050
fclose(fe);
71-
char *s = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cursor_theme_name));
72-
if (s) {
73-
fprintf(fw, "%s", strcat(xcur, s));
51+
if (value) {
52+
fprintf(fw, "%s\n", strcat(xcur, value));
7453
}
7554
fclose(fw);
7655
rename(bufname, filename);
56+
}
57+
58+
static void
59+
set_value(GSettings *settings, const char *key, const char *value)
60+
{
61+
if (!value) {
62+
fprintf(stderr, "warn: cannot set '%s' - no value specified\n", key);
63+
return;
64+
}
65+
g_settings_set_value(settings, key, g_variant_new("s", value));
66+
}
67+
68+
#define COMBO_TEXT(w) gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(w))
69+
#define SPIN_BUTTON_VAL(w) gtk_spin_button_get_value(GTK_SPIN_BUTTON(w))
70+
71+
static void
72+
update(GtkWidget *widget, gpointer data)
73+
{
74+
/* ~/.config/labwc/rc.xml */
75+
xml_set_num("cornerradius.theme", SPIN_BUTTON_VAL(corner_radius));
76+
xml_set("name.theme", COMBO_TEXT(openbox_theme_name));
77+
xml_set("naturalscroll.device.libinput", COMBO_TEXT(natural_scroll));
78+
xml_save();
79+
80+
/* gsettings */
81+
set_value(settings, "cursor-theme", COMBO_TEXT(cursor_theme_name));
82+
set_value(settings, "gtk-theme", COMBO_TEXT(gtk_theme_name));
83+
set_value(settings, "icon-theme", COMBO_TEXT(icon_theme_name));
7784

85+
/* ~/.config/labwc/environment */
86+
environment_set("XCURSOR_THEME", COMBO_TEXT(cursor_theme_name));
87+
7888
/* reconfigure labwc */
7989
if (!fork()) {
8090
execl("/bin/sh", "/bin/sh", "-c", "killall -SIGHUP labwc", (void *)NULL);

0 commit comments

Comments
 (0)