--- lxappearance.c 2011-07-29 16:50:19.000000000 +0200 +++ lxappearance-modif.c 2011-08-01 21:00:18.145117323 +0200 @@ -133,6 +133,7 @@ } +// for GTK2 static void lxappearance_save_gtkrc() { static const char* tb_styles[]={ @@ -219,20 +220,101 @@ g_file_set_contents(file_path, content->str, content->len, NULL); - /* Save also for GTK3 */ - g_string_prepend(content, "[Settings] \n"); - char* file_path_gtk3 = g_build_filename(g_get_home_dir(), "gtk-3.0", NULL); - char* file_path_settings = g_build_filename(g_get_home_dir(), "gtk-3.0", "settings.ini", NULL); + g_free(file_path); +} + +// for GTK3 +static void lxappearance_save_settings() +{ + static const char* tb_styles[]={ + "GTK_TOOLBAR_ICONS", + "GTK_TOOLBAR_TEXT", + "GTK_TOOLBAR_BOTH", + "GTK_TOOLBAR_BOTH_HORIZ" + }; + static const char* tb_icon_sizes[]={ + "GTK_ICON_SIZE_INVALID", + "GTK_ICON_SIZE_MENU", + "GTK_ICON_SIZE_SMALL_TOOLBAR", + "GTK_ICON_SIZE_LARGE_TOOLBAR", + "GTK_ICON_SIZE_BUTTON", + "GTK_ICON_SIZE_DND", + "GTK_ICON_SIZE_DIALOG" + }; + + char* file_path_gtk3 = g_build_filename(g_get_home_dir(), ".config", "gtk-3.0", NULL); + char* file_path_settings = g_build_filename(g_get_home_dir(), ".config", "gtk-3.0", "settings.ini", NULL); if (!g_file_test(file_path_gtk3, G_FILE_TEST_IS_DIR)) { g_mkdir_with_parents(file_path_gtk3, 0755); } + GString* content = g_string_sized_new(512); + g_string_prepend(content, "[Settings] \n"); + g_string_append(content, + "# DO NOT EDIT! This file will be overwritten by LXAppearance.\n" + "# Any customization should be done in ~/.gtkrc-2.0.mine instead.\n\n"); + if(app.widget_theme) + g_string_append_printf(content, + "gtk-theme-name=%s\n", app.widget_theme); + if(app.icon_theme) + g_string_append_printf(content, + "gtk-icon-theme-name=%s\n", app.icon_theme); + if(app.default_font) + g_string_append_printf(content, + "gtk-font-name=%s\n", app.default_font); + if(app.cursor_theme) + g_string_append_printf(content, + "gtk-cursor-theme-name=%s\n", app.cursor_theme); + save_cursor_theme_name(); + + g_string_append_printf(content, + "gtk-cursor-theme-size=%d\n" + "gtk-toolbar-style=%s\n" + "gtk-toolbar-icon-size=%s\n" + "gtk-button-images=%d\n" + "gtk-menu-images=%d\n" +#if GTK_CHECK_VERSION(2, 14, 0) + "gtk-enable-event-sounds=%d\n" + "gtk-enable-input-feedback-sounds=%d\n" +#endif + "gtk-xft-antialias=%d\n" + "gtk-xft-hinting=%d\n" + + , app.cursor_theme_size, + tb_styles[app.toolbar_style], + tb_icon_sizes[app.toolbar_icon_size], + app.button_images ? 1 : 0, + app.menu_images ? 1 : 0, +#if GTK_CHECK_VERSION(2, 14, 0) + app.enable_event_sound ? 1 : 0, + app.enable_input_feedback ? 1 : 0, +#endif + app.enable_antialising ? 1 : 0, + app.enable_hinting ? 1 : 0 + ); + + if(app.hinting_style) + g_string_append_printf(content, + "gtk-xft-hintstyle=%s\n", app.hinting_style); + + if(app.font_rgba) + g_string_append_printf(content, + "gtk-xft-rgba=%s\n", app.font_rgba); + + if(app.color_scheme) + { + char* escaped = g_strescape(app.color_scheme, NULL); + g_string_append_printf(content, + "gtk-color-scheme=%s\n", + escaped); + g_free(escaped); + } + g_file_set_contents(file_path_settings, content->str, content->len, NULL); g_string_free(content, TRUE); - g_free(file_path); } static void lxappearance_save_lxsession() @@ -305,7 +387,10 @@ if(app.use_lxsession) lxappearance_save_lxsession(); else + { lxappearance_save_gtkrc(); + lxappearance_save_settings(); + } reload_all_programs();