I can't think of a quick fix short of going through deleting what you know isn't installed and manually Googling what you can't identify. It's a horrible problem that I've just opted for the Etch-a-Sketch method and either deleted my whole profile or have deleted large chunks of it (
The only long term solution I could think of doing this is setting up an online database of:
- What configuration paths they use
You'd store that information in a simple JSON "database", perhaps gzip it and store it somewhere online.
You'd then have a tool that downloaded this global list and scanned the paths, looking for corresponding paths in the user's home. Where there are matches, you check the package list to see if that package is still installed. If it's not, it goes on a death-list.
After that scan, the user gets a list of available clean-up operations (with detail on what package the program thinks it is) and it given the option to nuke whatever they like.
In a perfect world, we'd have this integrated right into the packaging system (and have
apt-get clean-my-home), but I think that's a pipe dream. Maintainers would have to do a ton of work on top of requiring reengineering the package database formats (which are shakey enough already).
As getting this written into the fabric of each package is unappealing, there also needs to be some sort of interface for normal people to suggest paths for packages. (As it's my dayjob) I'd probably suggest a quick and dirty web-app where people can make their suggestions and MOTUs, Ubuntu members, etc can moderate the flow to make sure people aren't suggesting potentially dangerous searches.
As it is, it's going to require a whole load of manpower to get the however-many thousand apps that write home-files.
This is an interesting problem. This might give me a good excuse to play with Quickly's cli template (Quickly because I'm a Pythonista and also because packaging scares me).