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.


  1. The tabs to the side waste screen space when using big conversation windows with few chats and still have the problem of really small avatars.

    I’m not with you on the “actually doesn’t look bad”, I think it looks horrible and there is a reason no self-respecting UI designer uses them for these cases (at least since the OS/2 times).

  2. @popeko: You can toggle display of buddy icon under the Options menu. Glad you like my icon.

    @Andrei B: I suppose the avatar could be placed beside the conversation history window, and the info-pane could be ‘chunk-wrapped’ to display the elements horizontally if there’s space… but i don’t see really wide conversation windows being very practical, and definitely not the common situation.

    @Anon: I don’t think you have much to worry about. The suggestion was, after all, named ‘crack.png’ πŸ™‚

  3. Can we PLEASE get a send button for the text field? I know so many people who HATE that there isn’t one, and it drives them crazy. They type a message, go back to the mouse, realize they didn’t send it, and want to CLICK SEND. PLEASE add a SEND button to the window. Its such a basic feature every other non-mac client has in the world.

  4. @SEND: I’m not sure whether you’re serious or not, but learning that ENTER sends the message is a one-time thing that benefits the user in the end. When typing messages, having to use the mouse in between each is a severe interruption.

  5. I can’t believe I am replying to your nerdy post.

    Most IM clients don’t have/need the send button, because their input boxes are single-lined (even though you can write multiple lines). Hitting Return in that case implies propagating the text to the top box (sending the message).
    For clients that have a taller, multi-line input box (like Pidgin and MSN), hitting Return can imply linebreak. It is not clear whether send is Return, CTRL-Return or Shift-Return.

  6. @Shyaarii: I can’t believe you replied to my nerdy post.

    I agree, single line inputs are more clear in suggesting that a new line will propagate the text up (whatever that means πŸ˜› ) I don’t think either are obvious. But to learn the behaviour, it takes the user a grand total of one message. I can definitely picture some first-time users being afraid of pushing Enter, unsure of what will happen, or looking through the GUI for how to send the message, however.

    I think some IM programs have a greyed out “Type message here and press ENTER to send” message when the text area doesn’t have focus, and that would probably be a good addition to Pidgin. Or maybe even only when the window is first created. Can’t remember where I’ve seen this, though….

    Edit: Updated post with mockup.

  7. I’m really missing the send button, I copy and paste a lot of links and don’t always have a hand on the keyboard. Being able to copy, paste, click send is a lot faster, if you are just using the mouse . . .

  8. While I don’t mind if the Send button is there or not I get really frustrated with Return/Enter sending the message. I like to write multi line messages with some sort of formatting.
    The GTK keybindings are helpful here… but I am really annoyed that s cannot be used for send. Every other messenger program I use has s send. I can’t assign this because of the “Send To” menu. So I am totally in favour of your protocol dropdown icon and taking away the “Send To” menu πŸ™‚

  9. oops I just realised that in my previous post all the “alt” occurrences are missing.
    I meant alt-s for send.

  10. This is really nice. I’ve came around your post, searching for “clickable text in pidgin status”. Is Pidgin development team looking at this ? Personally, I really like all of the UI improvements presented here and I would like to see results of gaim-vv integration which were supposed to exist in Gaim 2.0 (later Pidgin). Good work!

  11. This same information was posted to the developer’s mailing list and you can see any discussion that occurred by following the links above. So yes, they know about these ideas. Anything regarding the infopane/avatar/protocol is kind of controversial… some people prefer no infopane, others like it. My protocol-button suggestion, at least in terms of removing the send-to menu, requires that it always be displayed, removing that choice – I couldn’t really think of a nice way around that. I also filed the following related bugs:

    Feel free to file your own bugs and spark discussion. πŸ™‚

  12. This has inspired some of my changes to the Pidgin code. Funpidgin has a send button, buddy icon resizing, text entry area resizing and a few other features. Hopefully I will be able to add more ideas you have posted.

    I have been a Gaim/Pidgin user for over 3 years… it was only the second open source app I used (after Firefox) and played a big role in introducing me to Linux and the great FOSS world in general.

    I understand that there are some features the developers don’t find particularly useful and don’t want to implement, but… come on… replacing a perfectly good resizable textbox with an automatic one that second guesses you? Then telling thousands of people that they refuse to bring resizing back? I think that crosses the line.

  13. Hikari, I’m guessing you’d have to modify the source and recompile, as that is already taken. But if you want to make some other shortcut, like ctrl+s, send a message, you can do that by editing (creating if it’s not already there) the .gtkrc-2.0 file for pidgin. See here for more info.

  14. I was able to config ctrl+s, but alt+s for sending message is standard on all other IMs :/
    Anyway lets hope this is fixed on the future.

    tnx for the reply!

  15. If you configured ctrl+s to send the message, you can use autohotkey as a little workaround to use alt+s instead:

    #IfWinActive, ahk_class gdkWindowToplevel, Pidgin
    Send ^s

    This maps alt+s to ctrl+s in every Pidgin window. Unfortunately, autohotkey is only available for Windows.

  16. To have s configured to send message, use plugin “Send Button” (Tools->Plugins), and in IM window check off Options->Show Formatting Toolbars.

    Also to have multiline message with just enter this in ~\Application Data\.purple\gtkrc-2.0 file:

     binding "pidgin-bindings"
     bind "Return" { "insert-at-cursor" ("\n") }
     bind "Return" { "message_send" () }
     bind "s" { "message_send" () }
     widget "*pidgin_conv_entry" binding "pidgin-bindings"

Leave a comment

Your email address will not be published. Required fields are marked *