Posts Tagged ‘ideas’

(on Technorati ,

File List Applet – GNOME Panel Applet

This is kind of a proof of concept I’ve been playing with. The idea is that finding a file within a folder is often easier by type, and you are often only interested in the most recently modified file. The problem with a file manager is that although you can easily sort by either type or modification time, you cannot filter your view of all the other files you’re not interested in. I previously wanted to address this issue within Nautilus, (and I still believe this functionality would be wonderful in Nautilus), but I ended up doing this much less ambitious applet as a proof of concept.

This applet will let you add any number of folders to it, and will try to categorize the files automatically and intelligently. Currently, it’s more automatic than intelligent as it just looks at the mime-type. Even so, I’ve found it especially useful for keeping track of all my downloads:

Steven is catching up on the latest on and has downloaded a couple screencasts demoing the latest and greatest. These files are typically 2-10 megabytes, so they didn’t download instantly. Steven continues reading and forgot about the screencasts until a couple hours later. At that time, he can simply click on the File List Applet, select Downloads, select Video, and look at the top of the list for the newest files. Steven is happy. When finished, he can follow the same process to delete them – without once opening his file manager and being assaulted with ALL the files in his Downloads folder.

Ultimately, I would like to extend the idea to provide the same type/subtype menu system for all files under all folders – a type of summary – but I have not implemented that yet. There are other features in the cooking pot, as well, but I have to get started on some “RL” tasks… like my resume. 🙂


I had a problem recording audio, so I ended up typing as narration. Unfortunately, this makes the YouTube one pretty unwatchable, but you can give the “HQ” version a try.


No tarball yet as it’s still extremely rough.
Browse the source here.
Branch the source: bzr branch


Update 2009/04/05: Updated install instructions here. (Some people don’t look at the comments….)

Installing will require some manual modifications.

  1. First, make sure you have the following packages (Ubuntu): python-xdg, python-gnome2-desktop, python-gtk2, python-pyinotify
  2. Then branch the source.
  3. Adjust the FileListApplet.server file’s location to wherever you keep it.
  4. Then copy FileListApplet.server to /usr/lib/bonobo/servers/.
  5. Restart the bonobo-activation-server. killall bonobo-activation-server
  6. Add it to the panel like other applets.

Update 2008/12/05: Added a couple screenshots.

GNOME 3.0 Ideas (Intelligent Desktop)

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

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.


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.

Pidgin 2.1 UI Ideas

Quite a lot of UI modifications have been made to Pidgin since 2.0, in a relatively short time. I’m happy to say, it’s gradually getting better. The window has a minimum size which prevents UI elements from being cut off, the text formatting has been collected into a drop-down menu, and it generally looks much cleaner.

I’ve been lurking on the pidgin-devel list keen on UI discussion, as I think it’s an area where pidgin can improve greatly. I spent an admittedly long time in The Gimp illustrating a couple UI ideas in the form of mockups.

First, this is the target conversation window mockup, done by Hylke Bons.

Now, this is what the conversation window currently looks like (minus the comments, of course).

I’ve basically modified the target UI slightly.

Full-size user avatar


It’s nice to see the avatar how it’s meant to be seen. It makes the conversation more unique for each individual. I think the vertical space will eventually be needed as pidgin implements more protocol features, anyway. Some people complain that too much space is occupied by such an infopane, but a button which toggles full-display and no-display (or small-display) could easily be implemented. I was thinking you could just double-click a tab, but when I tried it to see if that did anything, it let me give my contact an alias within the tab! Feature discovery! heh.

Selectable text

Something that has always irritated me with nearly every modal window: why not make text selectable? I can’t think of any reason why not to do it. It doesn’t change the UI at all, and will make it more useful to those copy-paste users – there’s a lot of them. (Get user info – which is terribly delayed, and fails often – should only be needed when the user wants to select information that is not displayed right in front of them.)

selectable text

Clickable links

Any email links should behave like a mailto: link, displaying a menu with the options of writing an email to that address or simply copying the email address. The same should be done for links inside the chat window, “open in browser” and “copy link location.”

clickable email links!


Pidgin handles many different protocols: MSN, Yahoo!, ICQ, IRC, etc. The idea is that you can use a single IM client to communicate to all of your friends. Many people use multiple protocols for whatever reason (some of my friends are on MSN, the rest on gChat, a couple on ICQ). But really, having a bunch of accounts for the same person cluttering your contact list does more harm than good. A good way to overcome this is to use the “Expand” item in the contact list context menu: right click on a contact, and select Expand in the context menu, then drag all this person’s different accounts into this expanded contact. When in a conversation window, you can change the active protocol used to chat with your friend by using the Send to menu item. But the problem is, you have to go up and check the menu to see what the active protocol is.

super-useful protocol button!

The entire Send to menu can be replaced by a protocol button in the infopane that acts as both the protocol indicator and selector. The space to the right of the protocol button can be used for protocol specific functionality, as they become available (video, voice, whiteboard, etc). Using the button to change the active protocol could change the available actions to the right of it.

Tab size

A lot of discussion/debate/flame is going on with the purpose of reducing tab-size (removing the status, and close icons). Personally, I think the status icon in the tab is very useful for seeing the status of the people you have open conversations with and should not be removed. If you have 10+ conversations open, you can always right-click on a tab and get a nice list. Sean Egan (the lead developer) jokingly put forward the idea of having the conversation tabs on the side, which actually doesn’t look bad. Maybe the format-bar and info pane would have to go on the right of the chat window… not sure how that would work.

Update Aug 5th

  • First of all, if you want the developers to hear your thoughts on this issue, you should discuss it on the pidgin-devel mailing list. If you just want to follow any discussion from the list, you can browse the archives.
  • I noticed this post has been dugg.
  • After a little feedback on the mailing-list, I’ve got another mockup. I’ve added a dropdown indicator to the button when the active conversation-buddy has more than one contact, and put example contact lists for clarity.

    Further illustrating the protocol button next to the contact list.

Update Aug 14th

It’s true. Pidgin doesn’t have a Send button. I had no idea this bothered some people, but I guess it could be made more obvious.

Greyed out text telling the user how to send a message.