This is based off of a Summer of Code application I made in 2007, titled “Intelligent Desktop.” Recent discussions have reminded me to at least blog about it. And given my current employment status, I have the time. 🙂
Note: You may also be interested in File List Applet .
Messy Desk
The desktop – this gigantic area of screen real-estate – is a mess. Some people use their desktop to dump random files that they’re working on, or have recently downloaded. Others work tirelessly to keep the pretty background picture visible with minimal icon clutter. Still others find the Desktop useless because it fills up with icons too easily. In the Nautilus Desktop (GNOME’s default), icons can get placed on top of one another either by a bug in placement or simply because there is no space left, which really deters from the usability. Personally, I clump different themed files/folders into the corners of my desktop. When a file is added to the desktop procedurally, there is no obvious place to put it and thus no obvious place to look for it. This is compounded if there is a “hole” in one of my “icon clumps,” in which case the hole may be filled with the new icon making it extremely difficult to locate by both file name and screen location. I recently gave up on having mounted drives displayed on the desktop. Anything dynamic fails miserably as their location changes each time, and sometimes they even end up overlapping other icons. In any case, it seems the desktop requires maintenance to work, when it really shouldn’t.
An Intelligent Desktop would overcome icon clutter automatically and intelligently. It would also be a starting point to looking at potential benefits of a more dynamic desktop view. I’ll explain what I mean by this in a second. This is NOT that silly little notification that your desktop has old/unused icons on it.
Automatically Sorted, Categorized, Updated and Easily Searched
The desktop is a useful place to dump files, but retrieving them is a pain. In fact, browsing the desktop for that particular file (or folder) is a pain without a lot of maintenance. My idea requires an always-visible, on-the-desktop set of UI elements that I will call the Desktop Action Window (DAW). The easiest way to think of the DAW is as a sidebar for the desktop. (Don’t stand up quite yet, sidebar haters.) But rather than the DAW being a collection of meta-information or unrelated widgets, think of it as a controller to the desktop view (formerly just a desktop). Performing actions on the desktop via the DAW simply creates a new view of the desktop. The original/default view that is customized by the user will always be available. If you think in terms of Model-View-Controller, the current desktop is essentially everything. With the DAW, the DAW becomes the controller, the desktop viewing area becomes the view, and the model is partially hidden. The DAW should allow easy management of multiple views of the desktop, some automatic (Images, Movies, Recently Modified), some static (Default, Custom).
And you shouldn’t be concerned about a sizable widget infringing on your carefully chosen background, there are ways around that: the DAW could be hidden when no mouse movement on the desktop occurs (like the controls of a photo slide show), it could be semi transparent until the mouse is over it, it’s location could be customized, etc.
Some quick ideas for different actions in the DAW include:
- An automatically generated list of types of files on the Desktop. Selecting one of them displays all icons of that type.
- A text entry for string pattern matching.
- Ability to easily hide all icons, except ‘always visible icons.’
- Ability to have custom views displaying only icons that user specifies.
- Ability to easily open file manager and display all files
- Some form of icon pager or scrollable desktop view to allow for arbitrary numbers of icons to be displayed per view.
- Ability to view and manipulate an arbitrary folder, such as Home, in the same way.
Mockups
This is where I stop the prose and leave you with a couple mockups. The “Overflow” view could probably be replaced with “New” or “Recent” for recently modified files. Anytime new files/folders/launchers have been added, the button could be flashing to grab the user’s attention. Better not to alter the default view at all, I think.
Update 2008/12/04: I’ve started implementing what I was thinking about with the automatic view filter as a GNOME panel applet. Check out File List Applet.
I have implemented something similar to this called Desktop Drawers. It allows one to have project spaces by selecting between dynamic and static desktops. If you have any suggestions I would be very grateful. Here is the current source page of Drawers: https://launchpad.net/desktopdrawers
Hi, Ryan! I’ve tried out “Desktop Drawers” for a day and it is interesting! Nice little project. 🙂 I’ve filed a few bugs on the project page. 😉 You have a bit more information/disclaimer on the ubuntu forums page, so that may be a better place to link to when first informing people.
I think it’s a great start! But in general, I think the most compelling use-case is not made clear enough, neither through the UI nor the documentation / description:
1) Install the Desktop Drawers applet on your panel.
2) Select Manage Desktops to open the ~/.Desktops directory in Nautilus.
3) In this folder, create folders for different “workspaces,” (”Project 1?, “Project 2?, etc)
4) Then create links to related folders and files in each of these workspaces.
5) Projects/Workspaces can now be switched between using the applet.
Although it’s not quite addressing the issues that I wanted to with the “Intelligent Desktop,” I’m going to continue using Desktop Drawers for a while more, I think. 🙂 Thanks!
The desktop is trouble not only because people put all files there, but also because it is obscured by windows. You can create a widget to hide all the windows, but why complicate things? Why not just use a folder and improve the file manager. General solutions make the user’s mental model simpler, make the UI easier to grasp and learn to use efficiently, and are less prone to programming bugs.
Remove the Desktop, its obsolete. I run without one and dont miss it. my files are in my ~ under directories that corespond to what they are, movies, documents/work and so on. Launch applications are done trough a panel/launcher so i can see any reason for populating a area so big and undefined as the the “desktop” Not for random icons/files anyways.