
Krzysztof KosiĆski wrote:
Joshua L. Blocher wrote:
I'm not sure that having more than one way to store preferences is a "good thing". Seems to me to it adds unneeded complexity. It will make cross-platform troubleshooting harder.
The solution is to add a switch to the command line that will tell the program to ignore the saved preferences altogether, or reload the defaults. Additionally, I think the GConf backend won't cause much headaches after it is implemented. It will be much simpler because most of the work will be done by GConf. By the way, clearing GConf data is as easy as deleting the prefs file - just remove ~/.gconf/apps/inkscape.
Right the former sounds like a good thing to have regardless. Since most of our user are on win32 based on sourceforge d/l counts, and we have a community where users help each other, Gnome being the odd man out about how preference are done could be a problem at the very least initially.
Joshua L. Blocher wrote:
It is harder to explain to users if its stored in a different way on every platform
It would only be stored differently for Gnome. In Gnome, there is a GUI tool to tweak the GConf settings (gconf-editor). It shows the name and description for each setting, so it's self documenting. It's actually easier to tweak because everything is documented. One of my motivations for GConf is that it will require documenting user-settable preferences in the GConf schema files (undocumented settings are still permitted, but discouraged).
So if I have Gnome and KDE on my system, gconf will only be used when I'm running Gnome and not KDE, correct? That's a potentially confusing situation whatever the answer. My other concern is this will make Inkscape a Gnome app instead of the GTK+/GTKMM application it is now even though gconf doesn't require Gnome.
Joshua L. Blocher wrote:
Especially since it looks like gconf backend loses us any gain on XDG compliance.
I had a look into this. XDG basedir spec only defines directories in which to place and search for specific kinds of files. If you don't have a file, XDG basedir doesn't concern you. With GConf we are not breaking compliance, because we are not using a file. Similarly we wouldn't break compliance if we decided to store our settings in some location on the Web. The purpose of this spec is to ensure that you can place your config in any dir you like, and then be sure the application finds its stuff. With GConf we don't even have to look for the stuff (we're just talking to the GConf daemon).
By the way, using ~/.config/Inkscape is not correct. It's also wrong to store palettes, templates and the like there. The right way to do this is to use g_get_user_config_dir for the configuration directory and g_get_user_data_dir for the data directory (palettes, templates, extensions...).
Links: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Func...
I have to disagree the spec clearing states, ~/.config is the default location (configuration files) unless otherwise set. It is IMO is where gconf should be putting all configuration files it deals with. <quote> $XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used. </quote>
So, ~/.config/Inkscape is where we should be if everything is default which to my knowledge is true on most *nix systems. And if not we get it by grabbing the correct directory. As to where palettes and other media supplies go, You maybe correct I'm not sure on that point but I thing the CREATE project covers those. :)
Joshua L. Blocher verbalshadow