MessagingMenu

Revision 1 as of 2009-03-31 07:19:33

Clear message

This specification contains some issues not yet resolved. Your feedback is welcome at MessageStatusMenu/Comments.

To satisfy many the major use cases previously catered for by interactive notification bubbles, and to reduce the number of icons in the notification area, there should be a message status menu replacing the notification icons used by Pidgin, Evolution, and later other instant messaging and e-mail applications.

This specification covers changes to instant messaging and e-mail programs, involving both the message status menu and notification bubbles for new messages.

Canonical Ltd’s Design team and Desktop Experience team are the upstream developers for this work. The message status menu is hosted on Launchpad.

Rationale

The message status menu exists to provide convenient access to messages concerning you that you may not have seen.

The exact definition of “concerning you” is application-dependent. For example, some e-mail messages are important enough for you to be notified immediately, while others are not; and IRC clients typically let you specify terms that you should be notified about.

structure.jpg

The menu should contain one section for each messaging program that supports it and either (a) is running or (b) has been configured to be present even when not running. There should be a separator above each instant messaging section if, and only if, it has a preceding section.

When there are “new messages” concerning you, the menu title should be an icon of an envelope with a green dot. When there are not, the menu should be a lighter envelope without a dot. The menu title should not have any accompanying text.

Each section should begin with an item giving the name of the application. Selecting the item should switch to, opening if necessary, a window for the messaging functions of that program. For example, if the only Evolution window currently open is a Calendar window, choosing “Evolution” from the message status menu should open and focus an Evolution Mail window.

If a program is closed, either intentionally or crashily, its corresponding section should disappear from the menu. The item for the program as a whole should still be present if it is configured to be.

Nothing in the menu should change while it is open.

Neither the menu nor any of its items should have a tooltip.

E-mail sections

For the purpose of e-mail sections, a new message is an unread message that the mail client discovered since the last time you performed any action in the mail client.

If you have any e-mail accounts set up in mail programs that support the status menu, the Inboxes of each of those accounts should have items in the menu, plus any other mail folders that contain new messages.

If there is only one account set up, the name of each menu item should be the name of the folder, followed by the number of new messages in brackets with the word “new” if there are any. For example, “Inbox” or “Inbox (4 new)”.

If there is more than one account set up, the name of each menu item should be the same, except with the name of the account in a separate set of brackets. For example, “Inbox (Work)” or “Inbox (Work) (17 new)”.

Each item should have a mailbox icon, ideally the same icon as is used by the mail client for that mailbox.

Selecting an item from the menu should focus the most relevant window to display that mailbox (for example, a window that is already displaying that mailbox if there is one), and switch to the mailbox if necessary.

Instant messaging sections

For the purpose of instant messaging sections, a new message is a message concerning you that was posted at a time when the tab or window in which it appeared was not focused. “Concerning you” for a private chat means every message, and for a public chat means every message that the program highlights (for example, because it mentions your name).

After than the item for the instant messaging program as a whole, each instant messaging section should list the union set of {people who, or group chats that, have sent you new messages} and {people in your contact list who have come online in the past minute and are still online}.

The item for each person or group should consist of up to four elements.

  1. A “just-arrived” icon if the person came online in the past minute, otherwise the icon of the person if known, otherwise a generic person or group icon (depending on whether it is an individual or group chat).
  2. For a group conversation, the name of the channel or chat room. For an individual conversation, the name of the person if known, otherwise their instant messaging ID or IRC nickname.
  3. For a group chat, if only one person has sent highlighted messages, the name of that person in brackets. Otherwise, the number of people who have sent highlighted messages in brackets.
  4. In smaller print and right-aligned, the word “offline” if that person has since gone offline, otherwise the hour and minute of the earliest unseen message from that group or individual if there is one, otherwise the word “online” for someone who has just come online. If the time is displayed, it should be in the same format (e.g. 12- or 24-hour) as is used by the panel clock. It should be preceded by the day if that earliest message is from before today, or by the date in the (highly unlikely) event that the earliest message is from earlier than a week ago.

Selecting one of these items should:

  1. bring the relevant window to the front
  2. switch to the relevant tab in that window, if necessary
  3. remove the item from the menu.

Switching to a relevant window or tab by other means should also remove the corresponding item from the menu.

Pidgin

Settings

In the “Interface” tab of Pidgin’s Preferences, the “System Tray Icon” section should be removed, with the “Show system tray icon” setting being hard-coded to “Never”.

Behavior

When you receive an instant message in Pidgin, in a window that is not active, or in a tab that is not frontmost regardless of whether the window is active, a notification bubble should appear. The icon of the bubble should be the icon of the person, a generic person icon for people with or group icon for people .

Evolution

Settings

How you are notified of new mail is one of the most important settings for a mail program. So it should be presented prominently in Evolution’s Preferences, instead of being hidden in a plug-in as it is now.

Therefore, the “General” tab of the “Mail” panel of Evolution’s Preferences should be altered:
evolution-old.pngevolution-new.png

Specifically:

  • A “When new mail arrives in” menu should be added, containing “Inbox” and “any folder” items. If you have more than one e-mail account, the text of the “Inbox” option should change to “any Inbox”. A colon should be shown after the menu, not before.
  • A “Play a sound:” checkbox and menu should be added. The menu should contain:
    • “Beep”
    • the name of the currently chosen sound file (as distinct from the beep), if there is one
    • a separator
    • a “Choose File…” item that opens a filepicker for choosing a new sound file.
  • A “Display a notification bubble” checkbox should be added.
  • An “Indicate unread messages in the panel” checkbox should be added. (Eventually this will become “Indicate unread messages in the menu bar”.)

The “General” tab is the densest tab in Evolution’s Preferences, so to make room for these new settings, other settings should be rearranged or removed:

  • The “Message Display” section should be changed to “When displaying messages:”.
  • The “Message Fonts” section heading should be removed, and its contents moved to the top of the “When displaying messages:” section.
  • The “Use the same font as other applications” checkbox should be removed, and Evolution should assume you always want to use a custom font. (Having an interface to share font settings between Yelp, Evolution, and nothing else, is more cluttersome than useful.)
  • To make their purpose clearer in the absence of a font-specific introductory heading or checkbox, “Standard Font:” should be changed to “Use proportional font:”, and “Fixed width font:” should be changed to “Use fixed-width font:”.
  • The “Highlight quotations with XX color” checkbox should be moved immediately below the font settings.

  • The “Shrink To/Cc/Bcc headers to x addresses” checkbox should be dropped. (These headers can be expanded by clicking a button in the individual message, and how many addresses are shown by default isn’t nearly interesting enough to be a visible setting.)

  • The “Enable Search Folders” checkbox should be removed, and Evolution should assume it is always on. (If you don’t want any search folders, don’t create any.)

evolution-plugin.png

Upgrading to a version of Evolution that implements this specification should uninstall the “Mail Notification” plug-in, if it is installed, while migrating its settings. Specifically:

  • The selection of the “Notify new messages for Inbox only” setting should be mapped to whether the “When new mail arrives in” menu is set to “Inbox” or “any folder”.
  • The “Generate a D-Bus message” setting should be dropped.
  • The “Show icon in notification area” setting should be mapped to the “Indicate unread messages in the panel” setting.
  • The “Blink icon in notification area” setting should be dropped.
  • The “Popup message sound together with the icon” setting should be mapped to the “Display a notification bubble” setting.

Behavior

Future work

  • Extend the menu to include SMS messages, Laconica updates, and feed items.

Empathy

XChat

KMail

Konversation

Unresolved issues

  • How to turn the notification on or off for each program.
  • How to turn the menu off altogether.