|
GNOME Goal: XDG config folder implementation
Guidelines
I think we all agree that Gnome's hidden folders structure is awful, with .gnome, .gnome2, .gnome-private, .gconf, .gconfd. This induces some strange bugs when people upgrade across version for years, trying sometimes experimental snapshots.
The problem is described in this post.
FreeDesktop has issued a recomendation. This Gnome Goal is set to implement it.
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. Backward compatibility also has to be kept into account. Also, it might be a huge amount of work regarding Gconf. It has to be decided how to handle GConf in this context.
Tips : if you remove the .cache folder, the user will not notice it except maybe for performance (might be huge performance). 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.
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.
|
If your application store 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 |
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 |
to do |
libgnomekbd |
to do |
libgtop |
to do |
libgweather |
to do |
liboobs |
to do |
librsvg |
to do |
to do |
|
libwnck |
to do |
metacity |
to do |
mousetweaks |
to do |
nautilus-cd-burner |
to do |
orca |
to do |
pygtksourceview |
to do |
to do |
|
to do |
|
swfdec-gnome |
to do |
tomboy |
|
totem-pl-parser |
to do |
to do |
|
vinagre |
|
vino |
to do |
vte |
to do |
to do |
|
to do |
|
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 |
to do |
libglade |
to do |
libxml2 |
to do |
libxslt |
to do |
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 |
|
