Sean Egan's Blog

UI Changes in the Works

Since releasing Pidgin 2.0.0, we've been able to resume our normal rapid release cycle, getting lots of issues addressed quickly, and having time to experiment with different things, to see what works best.

UI changes are the funnest changes to write about, as I can let pictures do the talking, so that's what this post is about.

Conversation Window

Our conversation window has had a ton of issues reported about it. Some of the biggest:

  • The buddy icons and tooltips all draw over other parts of the Window and generally look bad (506, 1150)
  • There are two many items in the toolbar, so that if you want to use the 'Insert Smiley' button, you must have a very wide window just to access it.
  • Some features are difficult to access
  • I can't fit enough conversations in a window before those pesky arrows show up, and tabs scroll off-screen.
  • More information should be available

For 2.1.0, our designer Hylke Bons, has created a new conversation window interface that clears some of these issues up. Right now, it looks like this:

The toolbar has been re-organized into two drop-downs and a "Reset" button. The "Font" dropdown was inspired by Tomboy, a note-taking application:

This organization makes all the features more accessible, even at small window sizes, and doesn't require the toolbar to overlap anything

We've added something we call the "infopane." It's modelled to exactly resemble a buddy list node. It moves the buddy icon to a nice, fixed-size, rounded icon like those found in the buddy list. The status message is included beneath your buddy's name (for chats, it shows the topic). Emblems, such as 'mobile' will likewise appear right on the conversation window. It will have the same tooltip and context menu as the buddy list does, and the conversation's "Send To" menu will be replaced with something analagous to the buddy list's "Expand" menu option.

The infopane also acts as an extension of the tab. In current development code, when there is only one conversation, the tab disappaears entirely, leaving only the infopane to serve as a drag-and-drop point.

The tabs themselves have had the status icons removed, freeing up a lot of room to fit more conversations. The status icon of the current conversation is visible in the infopane.

All of this will, I proimise you, be entirely optional. If you prefer having just two text boxes in your conversations, this won't need to get in the way.

This is all targetted for 2.1.0, which is scheduled to be released tomorrow, but as many of the issues mentioned above are still very much hotly debated (I seem to be the only one who thinks that "more tabs" is better than "status icons of inactive tabs", for instance), there's a chance this release may be postponed.

Status Icon themeing

A bit further down the pipeline, Etan, who doesn't care for the "Green light" available icon has gone and implemented status icon themes!

This works by integrating with GTK+'s stock item themeing, and allows you to easily manage and change the look of your status icons. This work is mostly done, but a few snags have kept it out of 2.1.0.

The "Themes" header in the above screenshot will also have "Smiley Theme" added to it (note it's not one of the tabs above), and I've told him to save room for message styles (eventually), and notification themes.


Guifications has long been one of the most popular plugins for Gaim (and now Pidgin). It creates small, discrete, "toaster" notifications in the corner of your screen to inform you of events in a non-intrusive way.

pidgin-libnotify is a plugin that does the same thing, but uses the 'libnotify' D-Bus protocol to integrate well with modern Linux desktops.

We've decided that this is a feature useful enough to make part of Pidgin proper. The "Sounds" settings in Preferences will become more general "Notifications" settings. We'll expand the list of events to match Guificiations' extensive list of events, and each event will offer two ways of notifying you of them: sound and popup. Pop-ups will be created by libnotify, if available, or otherwise by Guifications. Hylke has created an awesome default theme for notifications

This has been a little glimpse at some of the UI ideas we've been working on. All of this is tentative, all highly debated and contended. It's fun to try lots of different things and see what works and what doesn't, without necessarily turning Pidgin into a science experiment.