In the trend of short, quick applications comes Mound Data Manager. If you've ever swapped out profiles for applications or wanted to snapshot them, this is your new friend.

Mound will try to find applications it is able to manage on your system. Any application that appears can have snapshots taken of its data and have data deleted, among other tricks.
In addition to plenty of sanity and safety checks, snapshots are taken and restored using tar, so your data should be just as safe as its always been.

As an example, I took a snapshot of Htop above, which manages only my local .htoprc. I then was able to mess around with some Htop settings and take another snapshot. These two snapshots can now be used to either restore default settings, or my custom ones. (Another quick way to restore defaults is to simply delete the data, which is available on the Application menu.)
In the future it will be possible to export these snapshots for use on other systems. They are stored as plain tar.gz archives currently, so you can do so already yourself, but there are no checks to make sure the data is valid yet.

Mound works by reading through your installed applications. Inside each application it will attempt to look for an X-UserData line inside the desktop entry, and if found, makes the application visible in Mound for managing. If one is not found, it will search through /etc/userdata (supplied) in attempt to find a default to show.
A UserData line in the desktop entry or in /etc/userdata tells Mound what files are available to manage. See a line for Empathy as an example:
empathy $CONFIG/Empathy;~/.gnome2/Empathy
$CONFIG is a shortcut for ~/.config using XDG directories. (Others are available, such as $CACHE and $DATA.) The two directories there are then scanned by Mound, and then the user is able to take snapshots of this data, delete the data, and revert older snapshots in place.
The shipped userdata defaults file currently only has support for 36 applications (those that are currently installed on my system). Give Mound a try, and if you see some applications that aren't listed that should be, be sure to let me know.
There are two ways to allow your application to be managed:
- Add an X-UserData line to your application's shipped desktop entry, with a value of a semicolon-separated list of files/directories to manage.
- Add a default line in /etc/userdata by contacting me or by making a merge request in Launchpad with your changes. No packaging changes required on your end.
I understand that most people will pick the second option -- this is perfectly acceptable, especially since this stuff is completely new. :)
And finally, the download links:
Download, give it a try, and let me know what you like and what you don't. Enjoy.






Nice nice nice!
Is the X-UserData key completely your idea? It is not bad. I wonder if the custom key needs a namespace as well.
And what about:
X-UserData X-UserConfig (X-UserCache?)
1) Mound can tell if the application has a cache and offer to clean it 2) Mound can snapshot config and allow you to launch a clean config, while still keeping your user data. Data/config separation you know.
The namespace is sort of implied by the X- for unofficial entries.
UserData is a general term to represent all data used by the application. I do like your idea of separation of cache/data+config, however, but I'm not sure that having more than one entry in the desktop file is the solution.
Is it just me or does the Jaunty PPA package not work, it tells me:
Could you modify the ppa package? (BTW Mound looks like a great utility :-] )
Sorry about that. I'll rebuild it.
..and fixed. :)
on jaunty with 0.2 ppa2
~$ mound-data-manager Traceback (most recent call last): File "/usr/bin/mound-data-manager", line 25, in ui = MainUI(m) File "/var/lib/python-support/python2.6/Mound/ui/init.py", line 63, in init self.detailsui = DetailsUI(moundinst, self.builder) File "/var/lib/python-support/python2.6/Mound/ui/details.py", line 49, in init self.lblappinformation.connect('activate-link', self.opensnapshotsexternal) TypeError: : unknown signal name: activate-link
Hmm. It would appear that the activate-link signal is not available in the GTK+ version Jaunty uses (2.16). I'll try to fix it up later tonight.
Great! I have wanted something like X-UserData for ages now. So much potential for keeping things tidy and easy for people. Let's hope it catches on :)
Looks cool, please upload to Debian!
Planning on it. :) If any DD is willing to sponsor, please give me a shout.
Great idea about X-UserData! How about filing a bug report in Ubuntu / Debian for its inclusion and standardization? :)
A lot of backup and other-operating-system-conversion applications could benefit too!!
Yes, X-UserData has potential.
Two suggestions: iceweasel support (exactly same as firefox)
It does not seem to read applications in XDGDATAHOME/applications, where you can "install your own", tweak or install for only one user. Perhaps it could read all of XDGDATADIRS.
kupfer will support this in the next version, I might as well ship it in the desktop file. http://kaizer.se/wiki/kupfer/
Using XDGDATADIRS is not a bad idea. I'll see about fixing that. :)
What a lovely idea for a tool. It would be nice if I could have mound dump out in my Ubuntu One (or indeed Dropbox) folder :)
Would be good for migrating settings from one machine to another, especially for testing and bug finding.
I guess I could use symlinks, but it would be "neater" to do it direct.