Warning: this article is old and possibly outdated.


Last modified : 2008 04 28 00:00

I Don't Want to Care About the Trash

Tonight I'll be reflecting again on the concept of the trash can and automation that I wrote about in September, but adding one or two new elements along the way.

First things first: I'm kind of obsessive on certain aspects on computing. I change wallpapers, icon and widget themes, almost daily, depending on the mood, the amount of stuff I have to deal with, etc.

full trash

The trash can can become a very easy-to-trigger compulsion. I mean, it's there, sitting innocently in the corner of your panel or desktop, and it's... not empty. And it is eyeballing you, saying, "HEY, empty me you messy freak!". And you do it. Immediately. Every time you put something in.

Why leave stuff there? If I don't empty the thing right after I fill it, why would I ever empty it at another time?

What time is the "right" time for emptying a trash? When your home partition is full and gdm refuses to let you log in? Am I supposed to go inside it to see the contents before emptying? No! Therefore I empty the trash as soon as possible, and am done with it.

Or am I? Two minutes later, I deleted some other file. Oh shoot, I have to empty the trash again. Therefore deleting a file becomes a two step operation.

  1. ask the file to be trashed
  2. empty the trash compulsively

Unless you cheat. That is, you use shift-delete. That's what I started doing, two years ago. I conditioned myself to shift-deleting everything. But you can guess how dangerous that can be. Sometimes you delete a file and have an afterthought. Sometimes you delete the wrong file or you made an error when selecting the files to delete. Sometimes the focus was not even in the right window! Blessed be backup drives.

Let's recapitulate our situation: the "safer" two-step deletion (move, empty) is annoying, and the "faster" real deletion is dangerous. Well, just think harder before deleting, WONTFIX NOTABUG right?

Hold yer seahorses buddy! Let us think about the whole computer thing for a second. Computers were all about being smart tools to make our lives much easier and automated, right? So where is the magic I was promised? I am in front of a computer, and I have to empty a damn recycle bin? Let me rephrase this: I have to execute a manual, 99% not fun and redundant chore that I do in-real-life, but I actually do it twice because I do it "IRL" and "digitally"? Do not want! Fail!

Shoot. I hit ctrl-S again. I still haven't gotten used to the fact that Gedit saves my text automatically every minute.

Hey, what if the trash was smart? Let's hypothesize that it would empty itself automatically at set intervals of time. Intervals that the user needs to know, of course. That's what I concluded when I first thought about this, last september. I thought that it was something that could only be done manually by maniacs like me (or OEMs), that is, add a cron job that empties the trash every day at midnight. The reason I chose to do it every 24 hours is that it allows me to delete items and know that if I did something stupid in the past day, I can undo it (if I'm fast enough), and that gives me peace of mind. It is very zen not to have to think about the trash, and you can even remove the need for an applet or trash desktop icon.

But the 24 hours cron job seems like an unelegant hack in need of a better solution. Therefore, if you have some ideas, I'd be delighted to hear them, most likely the new gvfs in GNOME 2.22 may have changed the odds regarding this issue.

Some UI proposals

In the meantime, the first idea that comes to my mind is to display a message such as "Next cleanup in 23 hours 21 minutes". This message could be displayed as a tooltip for the trash applet, and as a label in that "header bar that contains the Empty button" (see below) in the nautilus trash window. This way, the user would be able to learn that there is a feature that empties the trash regularly, and live a worry-free life hereafter.

mockup: indicating to the user when the trash would be emptied

The new gvfs could maybe, on the other hand, allow automated individual file deletion based on "time since deletion", though I currently have no idea how to convey that information to the user for the time being. Maybe something along those lines:

mockup: indicating to the user when individual files in the trash would be removed

That's it for now, I hope you enjoyed this short usability rant.

See also