|
GNOME Goal: XDG config folder implementation
Guidelines
GNOME's hidden folders structure is split over various directories: .gnome, .gnome2, .gnome-private, .gconf, .gconfd. Some application even store data outside of these directories. Further, it is a mix of various files. Sometimes it is used as a cache (could be removed to gain disk space), or it containers user settings.
The problem is described in detail in this post.
FreeDesktop has issued a recomendation. This GNOME goals targhet is to implement the specification.
In order for this Goal to be successful, it is important to take the time and to be sure that each maintainer really understands the specification. This is NOT about just moving hidden .folder in a huge .config. It's about separation of user data, preferences and cache element. Further, backwards compatibility also has to be kept into account. Lastly, it might be a huge amount of work regarding Gconf. How to handle gconf in this context is still to be decided.
Tips : if you remove the .cache folder, the user MUST not notice it except maybe for performance (might be huge performance drop). If you remove the .config folder, the user will see all the preferences reset to the default but without any data loss. In fact, it would not be a problem if the user didn't customize his desktop. A contrario, .local should be treated as any other user file.
Read this more detailled explanation of the XDG specification.
Bonus point: if the user chooses a default preference, this preference should not be saved anywhere and the corresponding entry in the config file should be empty (or "default" or whatever). This way, we are sure that an user does not keep the 10 years old default without even noticing it and that his default setup is correctly upgraded.
If you use Ubuntu, you might want to vote for this proposition.
|
The application is a target for this goal if:
- the application stores file in an hidden folder others than the XDG ones
- OR if removing the .cache or the .config folders induces data loss for the user
- OR removing the .config folder doesn't get the application in its default configuration
Comments before approval
|
Quoting vuntz here: This is not official because we need to do it right (from a compatibility point of view, eg). Replacing the old directories in your code will mean to "lose" any stuff in the old ones. E.g. you should have a "list_files_from_before_224" function. It's a topic that is way more complex than it first appears.
Status of this goal
|
State |
Markup |
todo |
<: #ff8080> todo |
patch |
<: #ffc849> [[GnomeBug:xxxxx|patch]] |
done |
<: #80ff80> [[GnomeBug:xxxxx|done]] |
not needed |
<: #80ff80> not needed |
Above are the states and corresponding markup to update the modules state table below.
Tarball |
Status |
Desktop |
|
alacarte |
to do |
bug-buddy |
to do |
to do |
|
dasher |
to do |
eel |
to do |
to do |
|
to do |
|
to do |
|
to do |
|
evolution-data-server |
to do |
to do |
|
evolution-exchange |
to do |
evolution-webcal |
to do |
fast-user-switch-applet |
to do |
file-roller |
to do |
gcalctool |
to do |
gconf-editor |
to do |
to do |
|
to do |
|
to do |
|
gnome-backgrounds |
to do |
gnome-desktop |
to do |
to do |
|
to do |
|
gnome-icon-theme |
to do |
gnome-keyring |
to do |
gnome-netstatus |
to do |
gnome-nettool |
to do |
gnome-mag |
to do |
to do |
|
gnome-menus |
to do |
to do |
|
gnome-power-manager |
to do |
gnome-python-desktop |
to do |
to do |
|
gnome-session |
to do |
gnome-settings-daemon |
to do |
to do |
|
gnome-system-monitor |
to do |
to do |
|
gnome-terminal |
to do |
to do |
|
gnome-user-docs |
to do |
to do |
|
gnome-volume-manager |
to do |
to do |
|
gst-plugins |
to do |
to do |
|
gtkhtml |
to do |
to do |
|
to do |
|
gvfs |
to do |
libgail-gnome |
not needed |
libgnomekbd |
not needed |
libgtop |
not needed |
libgweather |
not needed |
liboobs |
not needed |
librsvg |
not needed |
not needed |
|
libwnck |
not needed |
metacity |
|
mousetweaks |
to do |
nautilus-cd-burner |
to do |
orca |
to do |
pygtksourceview |
not needed |
to do |
|
swfdec-gnome |
to do |
tomboy |
|
totem-pl-parser |
not needed |
vinagre |
|
vino |
to do |
vte |
to do |
to do |
|
not needed |
|
Desktop (to be deprecated) |
|
libgnomeprint |
to do |
libgnomeprintui |
to do |
Platform |
|
GConf |
|
at-spi |
to do |
atk |
to do |
gail |
to do |
glib |
to do |
gnome-mime-data |
to do |
gnome-vfs |
to do |
to do |
|
gtk-doc |
to do |
intltool |
not needed |
libglade |
to do |
libxml2 |
not needed |
libxslt |
not needed |
pango |
to do |
pkgconfig |
to do |
Platform (to be deprecated) |
|
ORBit2 |
to do |
audiofile |
to do |
esound |
to do |
libIDL |
to do |
libart_lgpl |
to do |
libbonobo |
to do |
libbonoboui |
to do |
libgnome |
to do |
libgnomecanvas |
to do |
libgnomeui |
to do |
Admin |
|
to do |
|
sabayon |
to do |
Development Tools |
|
accerciser |
to do |
anjuta |
|
devhelp |
to do |
gdl |
to do |
glade3 |
to do |
gnome-build |
to do |
gnome-devel-docs |
to do |
Bindings (C++) |
|
glibmm |
to do |
gtkmm |
to do |
libglademm |
to do |
gconfmm |
to do |
libgnomecanvasmm |
to do |
libgnome-vfsmm |
to do |
libgnomemm |
to do |
libgnomeuimm |
to do |
libxml++ |
to do |
Bindings (java) |
|
glib-java (jg-common) |
to do |
libgtk-java |
to do |
libgnome-java |
to do |
libgconf-java |
to do |
libglade-java |
to do |
Bindings (perl) |
|
Glib |
to do |
Gtk2 |
to do |
Gtk2-GladeXML |
to do |
Gnome2-GConf |
to do |
Gnome2-Canvas |
to do |
Gnome2-VFS |
to do |
Gnome2 |
to do |
Bindings (python) |
|
pygobject |
to do |
to do |
|
GnomePython |
to do |
Other |
|
atomix |
to do |
banshee |
to do |
to do |
|
to do |
|
contact-lookup-applet |
to do |
to do |
|
eggcups |
to do |
f-spot |
to do |
gnome-blog |
to do |
to do |
|
gnome-cups-manager |
to do |
gnome-main-menu |
to do |
to do |
|
goffice |
to do |
to do |
|
GParted |
to do |
GNOME Phone Manager |
to do |
to do |
|
gtetrinet |
to do |
gthumb |
to do |
to do |
|
libbtctl |
to do |
libgda |
to do |
libgnomekbd |
to do |
nautilus-sendto |
to do |
nautilus-vcs |
to do |
to do |
|
