MessagingMenu

Differences between revisions 24 and 25
Revision 24 as of 2009-08-06 16:03:26
Size: 15740
Editor: 89
Comment:
Revision 25 as of 2009-08-06 16:20:06
Size: 15825
Editor: 89
Comment:
Deletions are marked like this. Additions are marked like this.
Line 96: Line 96:
Messaging menu shows launchers for the messaging applications, with a light, informative label accompanying each launcher informing the user what kind of activity they can engage in by launching each messaging application. Messaging menu shows launchers for the messaging applications, with a light, informative label accompanying each launcher telling the user what kind of activity they can engage in by launching each messaging application.
Line 98: Line 98:
||<tablestyle="float: right; margin: 0 0 1em 1em;" style="border: none;">{{attachment:launcher_2.png}}|| ||<tablestyle="clear: both;" style="border: none;">||

||<tablestyle="clear: both;
float: right; margin: 0 0 1em 1em;" style="border: none;">{{attachment:launcher_2.png}}||
Line 102: Line 104:
After launching a messaging application, using either the messaging menu or other means, the application launched is removed from the launcher section of the menu, and placed in the top section of the menu where active applications reside. After launching a messaging application, using either the messaging menu or other means, the application launched becomes active in the messaging menu, and can now display information about its new messages.
Line 104: Line 106:
In this example, Evolution was launched from the messaging menu. As a result: In this example, Evolution was launched from the messaging menu. As a result, the Evolution window opened and presented itself to the user. Then Evolution determined that it had new messages of interest for the user and displayed them in the messaging menu. In the example to the right, Evolution shows that 12 "important" messages reside in the mailbox named "Inbox (Canonical)."
Line 106: Line 108:
  1. The Evolution window opened and presented itself to the user.
  2. The "Evolution Mail" entry was hidden in the launcher section of the messaging menu.
  3. An "Evolution Mail" entry was added to the active applications section of the messaging menu.

In the example, Evolution shows that 12 "important" messages reside in the mailbox named "Inbox (Canonical)."
||<tablestyle="clear: both;" style="border: none;">||
Line 114: Line 112:
||<tablestyle="clear: both;" style="border: none;">||
Line 115: Line 115:

||<tablestyle="clear: both;" style="border: none;">||
Line 118: Line 120:
||<tablestyle="float: right; margin: 0 0 1em 1em;" style="border: none;">{{attachment:launcher_6.png}}|| ||<tablestyle="clear: both;" style="border: none;">||

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

structure.jpg

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 messaging menu listing sources of new messages concerning you. This menu should replace the notification icons used by Pidgin, Evolution, and later other instant messaging and e-mail applications.

This specification covers the menu itself, as well as desired changes to instant messaging and e-mail programs.

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, e-mail programs often let you distinguish between messages that are important enough to notify you about, and messages that are not. Similarly, IRC clients typically let you specify terms that you should be notified about.

User stories

  • Tillie uses a Telstra BigPond e-mail account in Thunderbird. She is subscribed to the AUS-Scottish mailing list, which receives about five messages per month. Any other messages are usually from her nieces and nephews and their children, so receiving one is the highlight of Tillie’s day. When a message arrives she hears the “ding-dong!” from the computer, and stops whatever she’s doing to read it.

  • Claude uses Gmail through Prism (with the prism-google-mail package), with cGmail to notify him of new messages. He receives about 80 messages a day, most of which are from mailing lists and get tagged automatically. The new message count appears in the messaging menu, along with status updates from his friends on Identica. He goes through e-mail daily at 9.15 a.m., except for messages from his girlfriend, which he reads as soon as they arrive.

API

To appear in the messaging menu, an application can provide either a single total, or a set of separate message sources (for example, mail folders or syndicated feeds) with their own totals. For example, a Laconica client may provide only the single total, because it presents its updates in a single list and not as separately navigable items. A Usenet newsreader, on the other hand, may provide an item for each newsgroup.

When an application provides separate items, each item should have five components.

  1. icon: A vector or bitmap image representing the message source. Ideally, it should be exactly the same icon as the program uses for the same source in the rest of its interface.

  2. name: The name of the source. For example, a person’s name, a feed title, or a discussion group name. If a single application has multiple sources with the same name, it should disambiguate them if practical: for example, “Inbox (Work account)” and “Inbox (Home)”.

  3. total: The number of new messages concerning you in this source.

  4. im-timestamp: A timestamp for the most recent instant message from that source, in ISO 8601 format. The messaging menu takes care of presenting this time in an easy-to-read and locale-sensitive format. Programs that are not IM clients should not set a timestamp.

  5. signal: A signal that the messaging menu should return to the application when the menu item is selected. When it receives this signal, the application should immediately display the message source represented by the item, and ideally also the first relevant message in that source.

The following sections describe more specific recommended behavior for e-mail clients and instant messaging clients.

What's the API for an application appearing in the menu or not?

For the purpose of the messaging menu, a new message is an unread message that the program discovered since the last time you (a) performed any action in that mailbox or (b) selected the corresponding item in the messaging menu. Whether a new message concerns you may be configurable within the program, perhaps by folder or by mail filters.

A mail program should place one item in the menu for each mailbox that contains new messages concerning you. The icon should be of a mailbox or mail folder, ideally the same icon as the program uses for the same folder in the rest of its interface.

If there is more than one mailbox with the same name, the mail program should disambiguate it, e.g. “” “”.

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.

For the purpose of IM clients, 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.

When there are new messages concerning you, the menu title should be an icon of an envelope with a green starburst at the top right corner. When there are no such messages, the menu title should be a lighter envelope without a dot. The title should not have any accompanying text.

The menu should contain one section for each 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 between the program sections, but not at the top or bottom of the menu.

Each section should begin with an item giving the name of the application, without an icon (so that it doubles as a subtle heading for the more-important message source items). 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 it is configured to be in the menu, a messaging application should be present regardless of whether it is running at the time. If it is not running, however (even if it has crashed), only its named item should be present, without any total.

How to distinguish between applications that are running and not?

Nothing about the menu should change while it is open.

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

Launching Messaging Applications Workflow

Note: the following mockups are only meant to demonstrate changing menu structure as messaging applications are launched. Details (e.g. use of the green dot) are to be ignored.

With no messaging applications running:

Messaging menu shows launchers for the messaging applications, with a light, informative label accompanying each launcher telling the user what kind of activity they can engage in by launching each messaging application.

After launching a messaging application:

After launching a messaging application, using either the messaging menu or other means, the application launched becomes active in the messaging menu, and can now display information about its new messages.

In this example, Evolution was launched from the messaging menu. As a result, the Evolution window opened and presented itself to the user. Then Evolution determined that it had new messages of interest for the user and displayed them in the messaging menu. In the example to the right, Evolution shows that 12 "important" messages reside in the mailbox named "Inbox (Canonical)."

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

Empathy

XChat

KMail

Konversation

Unresolved issues

  • How to turn the notification on or off for each program.
  • How to turn the menu off altogether.
  • [from Brian Curtis] How to run programs in the background so they're accessible only from the messaging menu?
  • How to configure appearance, length of display, etc
  • MessagingMenu/UDSKarmic

MessagingMenu (last edited 2014-01-07 16:35:50 by mpt)