Making Pidgin small-screen-friendly

Michael Terry michael.terry at
Thu Feb 19 14:34:27 EST 2009

Hello, gentle Pidgin developers!

I'm from Ubuntu land, and I was investigating how to make Pidgin fit on
tiny netbook screens as part of our Ubuntu Netbook Remix project [1].  A
common screen size is 1028x576 (the current hot spot price-wise with
manufacturers, but the trend is ever smaller), with some of that taken
up by panels; we're hoping to fit in ~520-540 vertical pixels.

There are three problem dialogs that I know of: Preferences, the SILC
protocol Advanced properties (in account editor dialog), and the Buddy
Pounce setup dialog.

I have some proposals, and I wanted to get your feedback.  Some
suggestions may be radical or stupid (e.g. dropping preferences); please
correct me.

I don't have mockups yet.  I can make them if that would help.

First, preferences.  Within this dialog, there are three problem tabs:
Conversations, Sounds, and Network.

== Conversations Tab ==

1. Drop the Font section.  The 'Default Formatting' section already
allows changing the font face and size and reverting to the desktop
default.  The only loss is that getting back to 'default' size isn't
obvious, since there's no feedback on when you have modified the size.
Not sure if that's a deal breaker; we could clarify that in the current
UI by making 'Smaller' or 'Larger' checked when the font is smaller or

2. Move the 'Default Formatting' section to the 'Smiley Themes' tab and
rename the tab to 'Theme' or 'Appearance'.  The smiley theme selector
can shrink safely.

== Sounds Tab ==

3. Drop 'Mute sounds' option.  Is this necessary, since user can choose
'No Sounds' as their 'Sound Method'?

4. I don't *think* it will be needed, since 'Sound Events' will shrink
naturally, but if we need more space on this dialog, move the 'Sound
Options' section to be to the right of the 'Sound Method' section.

== Network Tab ==

5. Move the 'Example:' help text to right of server

6. Have 'Start Port' and 'End Port' fields be horizontal to each other,
not vertical.

7. Layout Proxy and Browser buttons vertically to each other, move their
help text to the right of each button.

8. Optionally, drop Proxy & Browser section?  Why are these needed
(honest question, I don't know)?  In what environment do these not just
link to the desktop proxy or browser preference dialog (as they do in
GNOME)?  I noticed each account also has its own Proxy setting under the
Advanced tab.

== SILC Advanced Dialog ==

Now, this is obviously a generic dialog that takes the fields from the
protocol plugin and just displays them.  But maybe we can try to do
something clever if the plugin is giving us too many fields.

9. If a plugin gives 'too many' fields (>= 10?  would hit just Yahoo and
SILC I think), lay them out in a table.  e.g. If given 10 fields, lay
them out in a 5x2 grid.

10. The above is slightly ham-fisted.  It would be nicer if protocols
could provide groupings of preferences, and maybe they could be layed
out in different tabs.  But I was looking for a less invasive change
right now.

== Buddy Pounce ==

11. Move 'Pounce when Buddy...' section to the right of 'Pounce on Whom'
section.  Horizontal space is easier to come by than vertical space.

12. Move 'Execute a command' and 'Play a sound' actions to right of
other actions (two column format again), with their associated buttons
being layed out below the checkboxes.

13. Move 'Recurring' checkbox to right (two columns again).

14. Drop dialog separator, possibly shrink dialog spacing a bit (looks
like it's ending up with a 20 pixel border, but I think you are rightly
intending it to be 12, per HIG).

I'd welcome feedback on the approaches above, with obviously the intent
of upstreaming any patches that ya'll would accept.


mterry | UI & App Engineer, Canonical Ltd. | +1 781 761 9092
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the Devel mailing list