XDG Base Directory Specification
Posted on June 18th, 2009 in Gnome, KDE, Programmierung, Ubuntu | 3 Comments »
Jeder der sich schon etwas mit Linux beschäftigt hat, kennt die vielen versteckten Dateien in seinem Home-Verzeichnis. Die meisten Programme speichern ihre Konfigurationsdateien und Userdaten unter ~/.programmname/. Dies kann jedoch sehr schnell unübersichtlich werden. Wenn ich z.B auf meinem Rechner das Kommando
bernd@taylor:~$ ls -d .* | wc -l
88
ausführe, so kann man sehen, dass ich 88 versteckte Dateien/Ordner direkt in meinem Homeverzeichnis habe.
Um das ganze besser zu Strukturieren und um eine einheitliche Basis auf verschiedenen Arbeitsumgebungen (Gnome, KDE,..) zu haben, gibt es dazu eine Spezifikation des freedesktop.org Projekts, welches sich zum Ziel gesetzt hat, die Interoperabilität und die gemeinsame Basis von Arbeitsumgebungen für das X Window System zu verbessern. (Wikipedia-Artikel zu freedesktop.org: http://de.wikipedia.org/wiki/Freedesktop.org)
Die Spezifikation findet man unter: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html Darin wird definiert wo Userdaten, Cachedaten des Users und Konfigurationsdaten gespeichert werden sollen. Ebenfalls wird definiert in welcher Reihenfolge nach Daten- und Konfigurationsordnern gesucht werden soll.
Grundsätzlich sind folgende Speicherorte als Defaultwerte definiert:
- $HOME/.local/share für alle Userdaten
- $HOME/.config für alle Konfigurationsdaten
Es gibt einige Programme, welche sich an diese Spezifikation halten. Einige Programme legen jedoch alles (Daten und Konfigurationen) unter $HOME/.config ab. Doch leider schreiben die meisten Programme ihre Daten/Konfigurationen nur unter $HOME, und somit kommt es zu der Anfangs erwähnten unübersichtlichen Ordnerstruktur im Home-Verzeichnis.
Daher mein Appell an alle Entwickler sich an diese Spezifikation zu halten. All jene, welche selbst keine Software schreiben, könnten Bugreports oder Feature-Request bei den einzelnen Softwareprojekten eintragen um somit auf diesen Standard hinzuweisen.
Aber auch Canonical’s Design und Usability Team hat sich diesem Thema schon angenommen. Für Ubuntu 9.10 (Karmic Koala) gibt es die Initiative “One Hundred Paper Cuts“, welche “kleine” Usability-Probleme beheben soll. In einem Dokument im Ubuntu-Wiki wird das Thema “XDG folders” auch aufgeführt. Jetzt müssen sich nur mehr die Entwickler der einzelnen Softwareprojekte um dieses Thema kümmern.
Zuletzt habe ich noch einen Tipp für alle Python-Programmierer unter euch. Freedesktop.org stellt noch eine Python Library zur Verfügung, welche es erleichtert sich an die Standards zu halten. Die Library findet man unter: http://freedesktop.org/wiki/Software/pyxdg.