From the examples you have provided, I take it that you mean application data specific to a certain user's configuration, usage or the data owned by the user (e.g., mail messages, templates, themes). In this case, these data are stored in the user's home directory as "dot-files" or inside an application-specific "dot-directory".
Quoting from the Unix file-system hierarchy standard:
/home : User home directories (optional)
Purpose
/home is a fairly standard concept, but it is clearly a site-specific filesystem. The setup will differ from host to host. Therefore, no program should rely on this location.
Requirements
User specific configuration files for applications are stored in the user's home directory in a file that starts with the '.' character (a "dot file"). If an application needs to create more than one dot file then they should be placed in a subdirectory with a name starting with a '.' character, (a "dot directory"). In this case the configuration files should not start with the '.' character.
The linux file-system hierarchy standard also states almost the same thing.
For example, the user's configuration for the vim editor is stored in .vimrc inside the home directory, the firefox profile (containing among other things the users bookmarks and history information) is stored in a separate directory within the user's home-directory (~/.mozilla/firefox/<randomstring>
.default)
Typically all applications will store information about user initiated sessions, passwords etc within the user's home directory in such "dot-files/ directories".
So (extrapolating a bit), if you want just enough encryption that user-specific data is protected, then home directory encryption alone would suffice.
Having said that, it is possible, like with all things linux, to customize and override the default location and choose to store these application specific user-data elsewhere. However, in Ubuntu, that needs to be explicitly done by the user.
It depends on your set-up. They are stored in several locations. The best way for you to find them is to open your Terminal Ctrl-Alt-T
, then type sudo locate compiz
and press Enter. It will return several results, but you can tell by the names which will contain your settings.
Best Answer
gconf
is deprecated, so for a new project I would not use it.dconf
is a backend for storing the settings, as an application developer you should normally not have to bother with it.What you seem to need is
gsettings
, a high-level API (API documentation for C) to store/retrieve settings without bothering how/where they are actually stored.gsettings
is part ofgio
, which is one of the core packages of gnome (likeglib
andgobject
). This blog post gives a short introduction how to use it with Python.If you do not want any dependencies on
gio
(e.g. you are not developing a GNOME application) and want to store simple config files, I'd suggest to use the$HOME/.config
directory (or whatever directory defined by$XDG_CONFIG_DIRS
) instead of$HOME/.your_appname
, in line with the freedesktop spec.