Thunderbird prefs redesign (aka mega-prefs)
squibblyflabbetydoo at gmail.com
Sun Dec 26 21:10:59 UTC 2010
One project I've been thinking about for Thunderbird is reorganizing
the prefs windows. clarkbw has done some work on this too and put up a
proof-of-concept of a "mega-prefs" page that holds the
application-wide prefs and the account-specific prefs:
<http://clarkbw.net/designs/mega-prefs/>. Here are some of my thoughts
on the matter.
* Per-account prefs
Since the plan is to put all the prefs in one spot, we need a way to
handle options that can be set per-account. There are really two types
of per-account prefs: account-specific details (e.g. incoming server,
drafts folder location) and common prefs (e.g. compose in HTML). For
the former, it's going to be rare that the details are the same across
accounts, but for the latter, they may well be the same. (The former
might also work better in their own dialog.)
For the common prefs, we probably want a way of selecting the behavior
for all accounts and then drill down to individual accounts, like in
clarkbw's example. This will probably need some experimentation to get
it right. Here's what I think would work well:
[ ] Compose in HTML [>]
[-] Compose in HTML [v]
[x] one at example.org
[ ] two at example.org
[ ] three at example.org
The little button on the right should probably have some kind of a
useful icon and a tooltip like "Configure each account individually".
To make things simple for developers (there are going to be a lot of
prefs like this), we could maybe implement an XBL binding that wraps
around the control to automatically generate the per-account
Since there are bound to be a lot of prefs on one page with this
design, one way to help people find what they're looking for would be
a search bar that filters out the prefs to show only the relevant
ones. We could also get rid of the "advanced" category entirely by
adding a checkbox at the top that says "Show advanced options", which
would display the advanced options in the relevant categories.
Add-ons (e.g. Lightning) will probably want to put stuff in the
mega-prefs window, so we should make it easy to hook into. Not too
much to say here, really.
* HTML vs. XUL and OS-integration
Whether we do this in HTML or XUL, I think we should try to make
everything look OS-native if at all possible. This is at least partly
for selfish reasons, since I just prefer that everything looks like it
fits together with the OS.
I'm not sure if you can use XBL or XUL from inside HTML, so that might
make a difference in what we decide. There are lots of useful
controls, (folder-picker, dual-buttons, menu-buttons) that would
probably be useful, and if we can't use them from HTML, I'd probably
vote for using XUL.
Using XUL would also probably make it easier to gradually migrate to
the new prefs system by just dropping the old prefs windows in
unchanged until they get updated.
Hopefully this will just fall out automatically from the redesign, but
we should make sure the UI works for netbooks. I suppose just adding a
scrollbar would be sufficient for this.
That's about all I've got for now. Ideas/comments?
More information about the tb-planning