Idea #4: Keep Your Desktop Clean with ‘Squeaky’
I would like a basic Mac app (let’s call it ‘Squeaky’) which automatically keeps my desktop clean via some simple, configurable rules. If I start with a clean desktop, after a week of working, my desktop looks like this:

I’d like to be able to automagically sort files into folders by File Name Pattern, Kind, Date Created, and Date Modified. An example might be to grab all the image files on my Desktop and store them in a folder called Images. These would be swept automatically at some interval (configurable).
I’ve registered a domain for the application: squeakyapp.com (as in squeaky clean), but I am of course open to some other name for the app. My original codename for the project is ‘crap app’, so perhaps that would work.
I’d also like a manual cleanup option which would let me sweep all files into a file named Stuff-. This would be especially handy when I’m about to give a presentation and put my laptop on the big screen.
Sometimes though, I just want a clean desktop to think more clearly. It’d be neat if I could ‘press a button’ and voila, clean desk.
I figure this would be worth at least $10 to people who need it, perhaps more if it was well done.
Known Implementations:
- Hazel ($21.95) [I think this probably does much more than what I'm asking for, and as such, the cost is more than I would expect. However, it's the best thing that I know of to solve the problem.]
- Clean (command line utility by Ross Andrews)
Please let me know if you know of other existing solutions or if you would like to create this application. My computer and my brain would thank you greatly if you could help keep my Desktop squeaky clean.


‘find’ is a essentially a dsl for this problem. Granted, it’s not a solution for the masses, but if you want a quick and dirty solution while you wait for squeakyapp, you could just set up a shell script with a series of find commands and run it via cron, e.g.:
# Move images
find -E ~/Desktop -iregex “.*\.jpg|.*\.png|.*\.gif” -exec mv images {} \;
#Move files older than 7 days
find ~/Desktop \! -newermt ’7 days ago’ -exec mv 7dayfolder {} \;
etc
It would probably take you a few minutes to figure out the exact options for each new type of rule, but once you had samples, you could just copy/paste.
And btw, crapapp.com is already take
.
Brian
Good thought. Yeah, it’s a bit low-tech, but it seems worth trying to start with.
I wrote this about a year ago, and it seems to be almost exactly what you want: http://www.geekfu.org/clean/index.html
Nifty. Do you have examples of config files that add different document types?
Unfortunately, I wrote it a year ago, so it’s not on Github or anything (which I’ll probably fix in a little while). It only does file extension-based rules, too, so for age or whatever you’d have to hack it in.
The basic config file (it’ll make a default one the first time you run it, in ~/.clean.yml) is a YAML file that looks like this:
folders:
images:
– .jpg
– .png
And so on. If a filename ends in .jpg, it’ll move it to images/ (creating the folder if necessary, and renaming the file if necessary to avoid collisions).
The other handy thing is that if a file matches two extensions, it uses the longer one, so you can define a rule for .gz and .xml.gz going to different places.
There are a couple command-line switches too, like –dry-run, which will not move anything, but instead just print a list of mv/mkdir commands for what it *would* move, and then you can edit it.
Also, the special directory _rm in the config file will just remove any files that match it (so I have .torrent going to _rm, because once I’ve added a torrent to uTorrent I don’t care about the file any more).
Actually, I take that back, apparently I did put it on Github:
http://github.com/randrews/clean
Here’s the example / default config file:
http://github.com/randrews/clean/blob/master/res/clean.yml
awesome thanks. added it to the post.