Skip to content
January 5, 2010 / Damon Clinkscales

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:

dirty desktop

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.

7 Comments

Leave a Comment
  1. Brian Deterling / Jan 5 2010 11:42 pm

    ‘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

    • damonclinkscales / Jan 6 2010 4:47 pm

      Good thought. Yeah, it’s a bit low-tech, but it seems worth trying to start with.

  2. Ross / Jan 7 2010 11:56 pm

    I wrote this about a year ago, and it seems to be almost exactly what you want: http://www.geekfu.org/clean/index.html

    • damonclinkscales / Jan 8 2010 11:37 am

      Nifty. Do you have examples of config files that add different document types?

      • Ross / Jan 8 2010 12:06 pm

        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).

      • Ross / Jan 8 2010 12:12 pm

        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

      • damonclinkscales / Jan 8 2010 12:31 pm

        awesome thanks. added it to the post.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: