Quick Filtering in Thunderbird

Today we’ve released a new add-on the Mozilla Messaging team has been working on for a little while, the Quick Filter.  A new single folder search and filter system that will work alongside our previously released Thunderbird global search.

The Quick Filter add-on is reminiscent of the old quick search system of Thunderbird 2.0  but we’ve improved it in a number of areas.  Here’s how it’s changed from the 2.0 days:

Search Message Types

Unread, Starred, Contact, Tags, Attachments are all types of searches you can toggle to turn on.

A Tag search presents the array of possible tags to help you filter down even more.

Filter Results Count

If your search returns a lot of results we let you know the search bar will let you know how many messages match.

And if even if the search query is too strict and there are no results the Quick Filter will display this inline.

Better Search Type Options

The old quick search tended confuse people because the search type settings were hidden in this popup menu:

In the new Quick Filter we’ve brought those options out every time you focus on the search entry so you always know what kind of search you are performing.

Space Saving Options

Last but not least we’ve worked hard to make sure that if you are using the Quick Filter on a smaller screen it converts down to icons only mode automatically.

Note for Techies: This change was made possible by the CSS  @media rule

Try it out!

You’ll need to be running Thunderbird 3 and then from the Add-on Manager (Tools -> Add-on)  search for “quick filter”.

Give Feedback!

We’re looking for feedback before this lands in Thunderbird as a core feature so any praise and/or comments you have would be greatly appreciated.  Leave your comments in the Quick Filter add-on reviews.

Something you might have already noticed is that this is a separate toolbar just for quick filtering but you can show or hide it as you need it.  Try out the keyboard shortcut and see how it feels.

Thanks for taking a look!


Try other web apps in Thunderbird tabs

Colin Dean converted the code from my post on Google Calendar in Thunderbird tabs and created a GMail tab for Thunderbird.

If you’re interested in trying what a web application would look like running inside a Thunderbird tab without modifying an extension use the following code snippet.

Open the Error Console from the Tools Menu


Copy & Paste this code into the input entry at the top:


update: here’s a text input which you can easily copy and paste the above code from.

Change the provided link ( http://tinyvid.tv/show/2h9led44g152z ) at the end to the web application you’d like to try, like http://twitter.com for example.  Click the ( Evaluate ) button.


It’s Party Time! ( if you didn’t change the link,  http://tinyvid.tv/show/2h9led44g152z )


You can continue to iterate the tab application by creating a new click handler, however at that point it might be worthwhile to start with the extension code instead of working in the error console.

Jetpack for Thunderbird

In the hopefully not too distant future Thunderbird will gain Jetpack as it’s new extension model and it will be no longer necessary for add-ons like this these be created but instead a simple Jetpack which can do the same things without restarts or complicated installs.

If you’re interested in this take a look at Andrew’s recent Jetpack in Thunderbird post.

Above code snippet courtesy of Magnus in


Google Calendar in Thunderbird tabs

If you’re a Google Calendar user like myself you might want to check out this really simple add-on for Thunderbird, which should be available as an official add-on for the coming Thunderbird 3 release.

The Google Calendar Tab

As simple as it sounds, this adds the Google Calendar web interface as a new tab directly into Thunderbird.  Creating and viewing events works just as it would in a browser like Firefox. 🙂

Google Calendar Tab

If your calendar is setup to show popup alerts you’ll continue to see them from the calendar tab while in other, mail, tabs.

Here’s my family Pinochle game reminder alert showing.

Google Calendar Alerts

There is no official release of this extension yet, however you could grab the latest XPI, download and install it into the latest (at least rc1) Shredder release.

More Extensions

It’s easy to get started integrating a web application like Twitter, Remember the Milk, and other sites into Thunderbird.  Once you get the initial pieces you can start working on better integration into your email conversations.

If you’re interested in creating an extension similar to this one, here are a couple links you probably want to check out:


This calendar extension only handles a single url for Google Calendar.  If you’re looking for actual calendar integration with different calendars, including google calendar, you’ll want to check out the Lightning Calendar extension which also runs inside Thunderbird tabs.


Cubed Mail

Lately I’ve been working a lot on the Thunderbird add-ons developers user experience.  Often times designers don’t get to work on developer experiences because developers tend to do those pieces themselves without much design.  With a lot of others I’ve spent a good amount of time working on the whole experience of development, docs, and extension types so hopefully the Thunderbird 3 add-on developer experience will be significantly better.

To get into the user experience of an add-on developer I recently made a Jetpack, Bugzilla Air Traffic Control, to examine what it is like to develop inside Jetpack.  I’ve also been creating a number of example extensions that take advantage of the new code that has landed in Thunderbird recently and learn the pitfalls of extension development.

So in honor of the hacks.mozilla.org recent article called 3D transforms in Firefox 3.5 – the isocube I added a similar hack to my tabbed message example extension.  I give you…

Cubed Email Messages


To demonstrate the awesome interactiveness that I didn’t add to my email extension I also have a pure HTML demo available.   Try out the email cube test demo for yourself.  This demo requires Firefox 3.5, go get it if you don’t have it.

If you’re asking “why email in a cube,?” then I’ll ask you why not?  This demo reminds me that Thunderbird has all the same Firefox goodness that’s coming out in 3.5 but we have yet to take advantage of much of it.  Hopefully as we make more progress in the coming months we’ll do just that.

And if you’re asking yourself… Is this what Bryan gets paid to do?  Well then we’re asking ourselves the same question; though I don’t think I’m referring to myself in the third person.


question: dualbutton css

How do you make the dualbutton always appear like the last two sets of screenshots (as it does on hover)?

I’m looking to make dualbuttons always show their dropdown button with a real button like look.  This dualbutton reply button is  going to land in Thunderbird 3 soon and I’d like the style to look correct for both Linux and Windows (Mac is using its own button style).


However this doesn’t appear to be some kind of toolkit CSS hover issue. The windows CSS is decidedly worse than the Linux right now so that may be a separate issue all together; and if so we can attempt that in the same way we handled the Mac.

Hints, answers, and the like are greatly appreciated in the comments.


Testing RTL in Thunderbird

For bug 484166 we’re moving away from the old search icon  to the newer Firefox search icon .  Included in this change we need to ensure this icon works for RTL as well as LTR.   With bug 481860 offering a way to use css to transform the image I just needed to test that the transform works.

Here are some notes I have from my limited experience working to test application UI in both LTR and RTL.  Please drop a comment if you have better experiences, I’d love to be able to save a bit of time.


In the GNOME world to do a simple test of an RTL language you could start up the application with the LANG environment variable set to an appropriate language.  For instance:

LANG=he_IL eog

LANG=he_IL eog

Thunderbird RTL

With Thunderbird I’ve found a number of options to make this happen.

The UILocale flag can be added your command arguments.

thunderbird -UILocale he

However Thunderbird, as compiled from hg, or download nightly likely doesn’t contain the translations needed to run that test successfully.

For the nightly build you’ll want to grab a translation XPI from the comm-central-l10n nightly builds.  You can drag any of those XPI links into the Thunderbird add-on manager window to install them.  (saves a bit of time compared to downloading and installing)

For your compiled builds the process seems a bit longer and more difficult getting the translations from l10n-central built in.  I gave up half way through as there is an easy method out there already, at least for simple testing.

Force RTL Extension

An easy alternative approach is to use the Force RTL extension, which I only just found out about today.  The extension provides an option in the tools menu to trigger RTL mode, which is really a lot better than trying a language you don’t understand.  If all you need is to test layout in an RTL this works really well.


Thunderbird 3 beta 2

It’s been a little while since the release of Thunderbird beta 2 and today we’re automatically offering the upgrade to all our existing alpha and beta users.


Upgrading from Previous Development Releases

At 12:00pm today (12:00 PDT) updates will start to be picked up by Thunderbird Alpha and Beta users.  In the following 24 – 48 hours you should be offered the update if you’re running a previous development release.

Alternatively, you can pick it quicker by going to the menu, selecting Help and then “Check for updates…”

Take a look a the Thunderbird 3.0 Beta 2 Release Notes for more information, we have one additional note for POP3 users.


Looking at User Experience for Thunderbird 3

Over the past year the Thunderbird platform has received a large number of updates, however it is also seeing a number of improvements to it’s over all user experience.   In a recent email I tried to write out some of the major improvements that are in the works for the next bird release, here’s a summary of that mail.


With some needed changes to the Thunderbird platform it has become possible to provide efficient full text search over messages and their headers.  This will enable Thunderbird to offer a much improved search experience over the previous search methods.  Search can start over the full text of a message and then be filtered against specific attributes like sender or subject to narrow down the set of results.  We can also offer auto-complete on subjects and people in the search entry to help prevent spelling mistakes and partial matches from slowing down the search process.


We’ve been doing a lot of thinking about how people use tabs which lead us to a tab mail implementation that should improve searching, reading, and processing; hopefully also saving that state.  Currently a search over mail will destroy the state of your message list by filtering down the messages in the exposed view.  With searches opening in new tabs your current view can remain intact while you explore your mailboxes in new tabs.   Messages can be opened with a middle click, just like in Firefox, to help you process mail quickly by queuing the messages you’d like to read later in tabs; later you can close your opened tabs as you read each message.

Account Auto Configuration

When trying to setup Thunderbird the details of your email accounts host, port, and security settings are so 2008, lets evolve.  Long in the works has been a better, easier way to setup an email account.  Our design goal was to get an email account setup with absolute the minimal number of questions.

  • Name
  • Email Address
  • Password

With those 3 items Thunderbird can infer all other details automatically, with exception cases handled gracefully.  It has been difficult work to make this happen, but we are well on our way and we know that when we finish it will have been worth it.

Message Archive

Thanks to the recent improvements to enabling cross-folder search we are able to implement an archive system for IMAP and  POP clients.  With a single button Thunderbird users can automatically file messages from their Inbox and other folders into the archive folder system.  We’ve pushed the Archives folder into the list of special folders such that it will sort with your Inbox, Sent Mail, and Drafts.  If you’re interested, take a look at the archive bug for more of the technical details, otherwise just take a deep breath… its coming.

Activity Manager

Notifications and download progress concerning your mail accounts are important events, however they aren’t events that require your full attention.  Earlier last year we looked at how we could reduce the amount of dialog noise Thunderbird generates in order to handle your account details in a more civilized manner.  We took a good look at the Firefox Download Manager and created, what we called, an Activity Manager.   Recent activity on the activity manager has lead to new patches in the review cycle headed toward a coming release.

Theme Improvements

With recent steps forward Thunderbird has finally made room for the Linux Desktop theme space.  I don’t even need to say much else about this change, this list says it all.

And of course lots more

There are many more changes, from the auto-sync offline work to preference cleanups that have happened and/or are still in the works; this list is just a grouping of major areas.  We’ve come a long way, but have an even longer road ahead.


This bird can dance!

Thunderbird can finally do the Tango

For a long time Thunderbird has been using the same theme for Linux and Windows, resulting in an ugly and out of place Linux theme.  However now Magnus has a patch is up to create a gnomestripe theme space.  Magnus already moved Thunderbird menus over to using the gtk stock icons.

Here’s a screenshot (courtesy of Michael Monreal) of Thunderbird using the desktop icon spec.

Now we can start the move over to using the Tango icon set!


Thunderbird Tab Session Restore

The new Thundertab has (partially) landed in the nightly builds of Thunderbird.  You’ll need to get Lightning installed to see all this and it’s not too pretty yet, but we’re making lots of progress.

But there’s no time to lose!  We’re already talking about how to handle tab session restore to keep all your opened mail tabs around for future sessions.

I’ve put up a partial mockup already, but it’s still early.  As always please leave comments below!



I’ve been experimenting with how we can use tabs inside Thunderbird.

Thunderbird Tabbing

The previous tabbing post already discussed how tabs help people to keep their current context and multi-task more flexibly.  I’ve created a number of designs that look into using tabs in Thunderbird so email users can have the same kind of power over their context.

In Tabs By Default

To keep your current context of email reading, searches will open up in a new tab by default.  Such that anytime you’re in the All Mail tab and start a search the results will open in a new tab.  Opening up the Calendar, Tasks, and Contacts will also open up by default in a new tab as well.  Tabs will need to be fast to open.

Tab Shortcuts

Much like you could want quick bookmarks to open up the web pages that you access frequently Thunderbird needs a way for users to open up different types of tabs that are unique and used frequently.


Tab shortcuts allow us to offer a default set of tab locations that users may want to open.  We can also offer this location up to extensions to enable them to add in their own shortcuts for items like CRMs, Thunderbrowse, and other elements that would want to be opened up in tabs.

With shortcuts we should also focus on some ideas for preventing people from opening up too many tabs of the same interface.  Perhaps something that (on mouse over) shows you the other tabs of that type already opened.

New Tabs / Summary Views

Sometimes you just want a new tab to start fresh, there are lots of reasons to start a new tab. For this we have a new tab button that allows Thunderbird users to open a new, empty tab.

New Tab Button

Upon opening a new tab Thunderbird could just show a blank page and focus the search bar.  However it would probably make more sense to use the opportunity to open up a summary view page while the search bar is focused.

This summary page could use the widget system that Spicebird uses or just give a static summary of your mail, events, and tasks.  Adding in items for recent searches could be good as well.  Pulling information from places like whoisi about my contacts could be another interesting element to this summary page.


There’s still lots of work to be done and issues to understand; this design work isn’t finalized.  For tracking the Thunderbird tab work that’s planned for Thunderbird 3, see bug 21899 where I’ll be posting more comments and designs.  Comments on this blog are always appreciated as well.


How to steal from a Fox

Interface design is hard work, so it’s really nice when someone else has done much of the heavy lifting for you and left their labor open to cherry picking.  🙂  The Mozilla platform has been getting a number of upgrades in large part due to the work of the Firefox team and thankfully I have no shame in stealing the work of our compatriots.  Here’s how you can do it too.

What to Steal

I started in the Preferences area because we (TB & FF) share many of the same mechanisms used to change preferences.  Also it’s difficult to get preferences done right so it’s nice to be able to take all the hard work someone else did there and make it our own.

In Bug 451620 — “Remove the Advanced Preference for Connection timeout” we are cleaning up a preference mostly used for debugging and therefore doesn’t really belong in the main interface.  While working on the patch I took a look at FIrefox’s preferences to see what they were doing in that area and noticed they have the exact same preference, but it looked cleaner and nicer.  So I took it. 🙂

In Bug 452711 — “Use firefox default font chooser for display” I wanted to improve a users ability to change their font preferences.  Currently Thunderbird requires a user to change fonts with the daunting font dialog now available from the Advanced button.  In making this patch I went straight over to the Firefox font preferences and ported it over to our code.  Again, I have no shame about taking this either. 🙂

How You Can Steal Too!

Stealing code for preferences is easy, so easy, that I (not a programmer) can do this in a fairly short amount of time.  It only takes a reasonable knowledge of HTML/XML (XUL can help) and Javascript.

There are lots of this kind of preferences work to be done and it’s a great way for a new person who wants to submit a patch into the codebase to get a sense of the process.

Here’s a step by step on how I’ve been borrowing their code such that anyone should be able to do it.

Step 1 – Source Code

Get the source code from steps in the Comm-Central source code wiki page.  This step takes a little while as it downloads all the necessary components to build Thunderbird.

Step 2 – Initial Build

Build Thunderbird initially, you should only need to build it entirely once.  Follow the steps to create your .mozconfig or you could just try mine, which gives you a debug build.

export MOZCONFIG=~/tbsrc/comm-central/mozilla/browser/config/mozconfig
. $topsrcdir/mozilla/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/tbird-debug
mk_add_options MOZ_CO_PROJECT=mail,calendar
ac_add_options --enable-application=mail
ac_add_options --disable-optimize
ac_add_options --enable-debug

Then run the build command as they describe.  Now go get some coffee or something.

Step 3 – Start Stealing

Time to start stealing!  Move into the Mail Preferences code and open up one of the files (check out Prime Places to Steal for ideas).

(from src)
cd mail/components/preferences/

Then at the same time go into the Firefox preferences and open up the preferences file that has the component pieces you’re looking to steal.

(from src)
cd mozilla/browser/components/preferences/

Step 4 – Building Your Theft

Now as you viciously swap pieces from the Firefox preferences over to Thunderbird preferences you don’t need to rebuild the entire Thunderbird source code, just the preferences component you’re changing.

Move into the preferences component on the build directory.  (this assumes you have a tbird-debug directory, which you’d get if you used my .mozconfig file)  There should only be a Makefile in this directory so type “make” and it will build up the preferences component.

(from src)
cd tbird-debug/mail/components/preferences

If you were to change any of the strings (preferences DTD files) used in the DTD that the XUL file references then you’ll need to rebuild the locales jar, which is just as easy.

(from src)
cd tbird-debug/mail/locales

Step 5 – Testing Your Theft

Now you’re ready to run your new version of Thunderbird!  You’ll likely want to create a different profile than your normal profile.

(from src)
./tbird-debug/mozilla/dist/bin/thunderbird -P test

Common Gotchas I Encountered

Here are some common errors I hit that were annoying to work through.

Parse Error: If you add code with references to DTD entities ( often labels like “&colors.label” ) that don’t exist you’ll get a parse error that’s pretty difficult to understand.  Check that your DTD has the correct entity ( <ENTITY colors.label “Colors:”> ) and that you’ve built the jar from the locales directory.

Adding New Files: If you’ve added new XUL and DTD files you’ll need to add references to those files in the “.mn” file.  Don’t ask me why!  I just work here.  See the preferences jar.mn and the locales jar.mn files, the format is pretty obvious.

Prime Places to Steal

Bug 451599 — “Add preferences UI for disk cache size and clearing the cache“.  To implement this bug you really just need to grab the Firefox Preference code from line 221 to line 233 and copy it just after line 216 of the Thunderbird Preferences code.  You’ll need to poke around at the related Javascript code for hooking it up.   And don’t forget to copy the strings from Firefox advanced.dtd file into the Thunderbird advanced.dtd file.  See, no shame at all!

Another one is the continuation of Bug 452711 — “Use firefox default font chooser for display” where you can copy over the color chooser.  First apply the patch provided in the bug. Copy the Firefox colors.xul file over to the Thunderbird preferences directory and the colors.dtd over to the Thunderbird preferences locale directory. Don’t forget to update both jar.mn files (and build the jars) as mentioned in the Gotchas section.

Then have a look at the code for the Firefox Content Preference and grab the row from line 195 to line 201, the button which launches the color chooser dialog.  You’ll also need to grab the content.js configureColors function and add it to the display.js code.  Don’t forget to change “chrome://browser/…” to “chrome://messenger/…”.

Making and Submitting Your Patch

Once you’ve made your changes and tested them out you’ll want to open a new bug, and upload your patch to that bug.  Use the hg diff command to make your patch, I generally do something like this.

hg diff --git > ~/Desktop/stealing-ff-preferences.patch

Make sure the new bug is against Thunderbird Preferences, use this link to get the product/component entries correct, and attach your patch along with that new bug.

Don’t forget to CC me on that bug!  Use my email: clarkbw at gnome . org

Legitimate Sharing

Stealing isn’t right.  It’s not that we want to copy all this code, which can create known issues of code sharing.  However I defend this especially for something like the preferences UI which goes under a considerable amount of churn each release; making it difficult to place those elements in a lower layer like toolkit for optimum sharing.

Once we’ve played catch up for a bit I hope that Thunderbird can start sharing code back as we create new improvements on the current systems.


This is Dialog Invasion!!

Later today I’ll be giving a summit session on UX for Thunderbird.  The Thunderbird Dialog Invasion is one of the many topics to cover.

<a href="http://clarkbw.net/blog/2008/07/30/this-is-dialog-invasion/"><img class="alignnone size-full wp-image-430" title="Dialog Invasion" src="http://clarkbw.net/blog/wp-content/uploads/2008/07/dialog-invasion-thumb.png" alt="" width="300" height="161" /></a><br />non-flash formats available. ogg and wmv
Watch it in a High Quality format.
If you love Reggie and the Full Effect as much as I do you can grab his new album from  MySpace.com -Reggie and the Full Effect or Vagrant Records – Reggie and the Full Effect. Please don’t sue me reggie!!


All-Star Break

I arrived in Vancouver on Tuesday July 1st after my long adventure across the country. I think all the sun, baseball parks, and driving ran down my system so after my friends left and I got 2 days of work in I spent the weekend sleeping.

Cleveland Indians Stadium
Cleveland Indians
Detroit Tigers Stadium
Detroit Tigers
White Sox vs. Pittsburgh - U.S Cellular Field
Chicago White Sox
Busch Stadium
St. Louis Cardinals
Kauffman Stadium
Kansas City Royals
Coors Field
Colorado Rockies
McAfee Stadium
Oakland A’s
Safeco Field
Seattle Mariners

Eight stadiums in all.  An amazing trip, though some places were certainly missed due to timing.  I would have loved to see a Cubs game in Chicago as well as a Giants game in San Francisco but the teams weren’t available when we were coming through.  Next time.


Is a beautiful place.  I seem to have brought nothing but perfect weather with me as everyday but one was sunny and warm.  I quickly setup a Canadian SIN (which is similar to an American SSN), a local bank account and spent the last couple of weeks getting settled into to my international digs.  I had already prearranged a stay in a temporary apartment which is working out well as it’s right in Yaletown and lets me easily explore the downtown area.

Sunset Beach

Vancouver has such a mix of different people.  Everyday I hear people speaking in a number of different languages, Chinese, German, Russian, and Spanish to name a few I could recognize.  Everyday on my walk to and from work I smell someone smoking weed somewhere.  And everyday I hear the grinding and pounding noise of construction.  Overall somewhat similar to summers in Cambridge.

Experimental Message View

Before I left the states we started work on something I called The Experimental Message View.  I’ll post more about it later, but the simplistic goal is to create a new way of interacting with messages and with the required technology change enables others to easily create alternate experiments inside Thunderbird.

Andrew Sutherland has been cranking on the Global Database work with an initial preview, an m-1 trial release (download and install), and even an early visualization.

Paul Rouget has updated his work on the new treeview API which could help us implement richer message lists by changing how we display messages.

Things are coming together quickly.


Activity is the new download

So hip, just like silver is the new gold

Last week I began some work on some ideas for a richer, interactive user notification system for Thunderbird.

Status Bar

Currently the status bar acts as one of the only notification systems to the user.  However the status bar is a steady stream of temporal plain text messages.  The messages are helpful if you understand what they are indicating, otherwise to most people they only convey general activity happening.  In general the messages end up lacking meaning because there is too much information running by.

A First Approach

Initially I took an approach of an interactive status bar that looked a little bit like the awesome bar replacing the status bar.  Instead of just giving plain text messages we could make richer messages with visualizations.

  • Linked Messages
  • Progress Meters

The linked message could open thunderbird up to the account or message they were referring to.  Next is to add some access to status history where people can see a list of what Thunderbird had done and perform actions (like restart) on those past activities.

  • History of Activity
  • Interactive History Items

The New Download

After seeing the amazing work that has been done on the download manager in firefox it seemed like a good second approach to the problem could be to reuse much of what they’ve done.

The download manager in firefox is solving a similar set of problems.  We want to allow people to watch the progress of a specific set of (likely asynchronous) activities. We also want to ensure that people can view the list of past activities in case they want to manage them.

Should we continue using a simple text status message?  The progress bar included in the status bar gives a visualization for time to complete an action.  But do we need to help people visualize what is happening in the background?

And then instead of an inline popup for the history list we open up the download manager window which allows for searching and management of items inside the list.

Nothing is set yet, most likely a final version will be taking bits of both approaches.  Still lots of work to go, more comments and ideas are always appreciated!


Standard8 has your name

Obviously after kicking so much ass there was nothing left for mr. banner to do but take names.

What used to be an awkward set of instructions is about to become as simple as a checkbox.

And yes this isn’t quite the feature that gets everyone laid (hopefully at least a couple people get laid).  But it’s an excellent intermediary step toward getting some more testing on the Mac OS X System Address Book connection that should be available in the next alpha.  Likely in a month or so when Mark is done with your name he will have replaced this system with an even better experience.

What is the connection experience?

It’s well beyond time to be thinking about what it means to have the OS X Address Book connected to Thunderbird.  There’s a long road ahead.  What is the end game here?

Should all contacts be stored in the System Address Book or the Thunderbird Address Book? Would that kind of change mean something for Windows? What would that mean for Linux?

If we want to sync your contacts with your iPhone or other iAppleDevices then we should be storing our data in the OS X Address Book, however we should also be careful of another systems limitations.

I like to think of the future of the Thunderbird address book as providing an overlay on top of other address book systems like the OS X System Address Book or an LDAP type address book.  We want our data to be compatible with those different basic remote and local storage services.  However we also want to do more interesting things with your contacts than what most LDAP systems offer.

If I were to steal the look and feel of GNOME Mobile platform diagram (which I like a lot) it might come out looking something like this for the Thunderbird Address Book Overlay.  Underneath is a system address book, ldap, or local thunderbird address book providing the basics of storage.  Then above that layer is where we can begin doing interesting things with your Thunderbird Address Book.  Going beyond just emails and names and perhaps linking with different kinds of accounts your friends have.


Some Signature Updates

Some news for the Thunderbird signatures in email.  I’ve updated the Message Signatures wiki page with some new possible directions.

Signature Manager

One still missing piece has been adding a signature manager.  Previously I mentioned that we could create a new dialog window for managing signatures, however several comments posted and emailed made me want to look into other possibilities.

So here’s a mockup of a possible layout for the Signature manager to be in the Thunderbird preferences, under the Composition tab.  (tabs within tabs… whoo hoo!)

Script Signatures

I keep offering a possible script signature in different mockups and yet there hasn’t been any mention of how you’d add a script signature yourself.  My feeling is that we can leave script signatures up to extensions and extension developers.  It might be nice to offer a script signature by default and perhaps this would lead more people to try out extensions that provide script signatures, however I don’t have a plan to create a default interface for them yet.

Signature Add-ons

Here’s a pretty simple way to introduce signature add-ons specifically to the signature preferences.  There are some open ended pieces of this that need to be worked out.  What does the add-on manager look like when it opens up from a link like this?

Your comments and suggestions are appreciated as always.



Lately I’ve been asking a lot of different people, “Why do you use tabs?”, in reference to tabbed web browsers.  I wanted to do some quick and dirty research on the design and usage behind tabs; some of this is obvious yet it helps to have it written out.

So here’s a bit of what I’ve found people claim to use tabs for.  I’ve arranged the information into what I felt were 4 distinct types of usage.  I’d love to hear about other usage that doesn’t fit into these categories or other categories people have observed.

Defer Action

Tabs for Defering

Often people want to defer an action until a later time.  In a web browser they will open a link in tab that they’d like to read a little bit later.  This was reported to occur on news or information sites where a person is reading a single page but wants to branch off to other links after reading.  After completing the tab in their current focus the person would begin processing the other tabs lined up for later.

Lightweight Bookmark

Similar to deferring an action, people mentioned that tabs were a way of keeping certain pages around for an indefinite period of time.  These pages weren’t necessarily going to be processed right away but they didn’t want to be lost.  When asked if they bookmarked these page people responded that these pages were transitive reference type pages (i.e. they needed them to continuously use them for a certain project) and so tabbing seemed to be a way to bookmark things in a lightweight fashion.  This especially made sense when tabs are saved within a session; people reported opening lots of tabs (hundreds) and then closing Firefox down completely only to reopen them all later.

Collect Related Information

Many people cited using tabs specifically to collect information on the same subject.  Often this kind of collection was research for a composition like a blog post.  Some people claimed to do this in a very formal fashion of opening up a fresh window for a blog post and then creating new tabs in that window for research related to the blog post.  While others referenced doing an important activity in one window and having a set of windows with tabs in them for researching ideas around that important activity.  This type of collection is similar to the lightweight bookmark except that most of the tabs were intended for a very finite period of time such as using the page to link to.

Switch Context and Keep Current State

Many people also talked about how they would “Adventure off” into other tabs to follow something that was either more important or more interesting but they really wanted to keep their exact place they were.  This  is very similar to the defer action, you could say this is the after state of the defer action.  The only difference here is that the person is intentionally keeping the first tab around in it’s exact state where the defer might lead to closing tabs as they are finished.  A common example was a quick interruption that called for searching for something unrelated to what they were doing.  People would open a new tab, complete their search and then close that tab to go back to what they were doing.

Some Related Links for you to open up in Tabs

What does this mean for Thunderbird?

This information isn’t for figuring out how tabs work in firefox and then squeezing that idea into thunderbird.  It is merely here to create a common language reference for talking about tabs and their usage.  Hopefully people could see new ideas on how tabs can be used from understanding how they are used in other contexts.  There currently exists an implementation of tabs in Thunderbird but it will not be the same as it is now by the 3.0 release.


Signatures in Email

Last week I was blitzed by being cc’d on a lot of email signature related bugs. 🙂  To remain calm and keep delusions of control active I started on a wiki page for Message Signatures in Thunderbird.  Right now the page contains lots of links to relevant areas and ascii art mockups for choosing a default signature for accounts; it’s meant to collect thoughts, research, and define direction.

Managing Signatures

I think a general improvement plan will involve simplifying the signature selection and creation process.  Here are a number of points that I think can improve the current aspects of signature management.

  • Each account is created a default signature (from the person’s name and organization)
  • Every signature can be edited with a built-in signature editor (created from the compose window)
  • Signatures can be imported from files, but are saved in the Thunderbird profile or preferences (see bug 324495)
  • A separate dialog is used for managing all signatures, with import, add, edit, remove actions as well as a link to see the signature extensions available from AMO.

Concept Mockup of Signature Chooser in Account Settings

Using Signatures

In the relevant extensions section of the wiki page I tried to list most of the extensions that are dealing with how to use signatures in the compose window.  There are a number of ways of solving this problem and lots of issues surrounding posting style that I am hesitant to battle with.

Several bugs (see bug 219197, bug 73567, and bug 37644) have suggestions that attack the problem from different angles.  New comments and suggestions are welcome!

ASCII Art Side Note

I think I’ve started to use Johan’s ASCII Art Mockup post as a reference for my own ascii art; it’s good to see some style written down somewhere.


A bit of a Communication Problem

I’ve been doing some testing recently with Thunderbird and its offline support; trying to get a handle on what the state of the onion is.  One problem that has bothered me is the silent state of online to offline, not to mention the dialogs that happen after that.


How do you convey that Thunderbird is offline or online? I’m not too sure of the implementation yet but I think we can get some excellent ideas when examining IM clients and how they handle online vs. offline; for email it’s just a little less extreme.


Should have some indication that is available, but not too prominent because this is the state where everything is good.  When you’re online, emails will be sent right away and new messages will arrive, we don’t need a large piece of real estate to inform you that the situation is normal.

Simple and obvious green signal that you’re online


Requires a clear indication that is prominent and obvious.  Auto-reconnection should be the default and  timeouts created that indicate when the next reconnect will take place; allow people to interrupt and reconnect immediately.

You’re grey and offline, do you want to try going online now? I’ll try in a little bit anyway…

Because for email we can also expect that some people will want to be offline intentionally we need to allow for people to remove the indication and include ways for people to tell Thunderbird to stop trying to auto-reconnect.

Getting Back Online

When you’ve finally reconnected it’s a moment for celebration… Yay! Get back to work!!  This kind of notification allows people to understand that you’ve reconnected and things will be back to normal.

Getting back online from an offline state can also incur some syncing and likely heavy network traffic so for those reasons alone it’s good to let people know that Thunderbird has realized the new online state and is going to start doing it’s business again. Hold on to your butts…

Woo Hoo! We’re back online!

Some Caveats

We examined an IM client with a single account.  There are some extra things about Thunderbird and email that need to be considered, here’s just one:  You could have multiple email accounts and only a few are not connecting.  What does it look like to have the account you’re focused on online and another account offline?  What does the opposite look like?