MessagingMenu

Differences between revisions 30 and 31
Revision 30 as of 2009-08-14 13:50:54
Size: 17226
Editor: yttrium
Comment: item limit question; formatting fixes
Revision 31 as of 2009-08-14 15:43:18
Size: 17053
Editor: yttrium
Comment: Pidgin Preferences changes; Evolution Preferences changes; some restructuring
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
To satisfy many the major use cases previously catered for by interactive [[NotifyOSD|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. To satisfy many of the major use cases previously catered for by interactive [[NotifyOSD|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.
Line 10: Line 10:
Canonical Ltd’s Design team and Desktop Experience team are the upstream developers for this work. The message status menu is [[https://launchpad.net/indicator-applet|hosted on Launchpad]]. Canonical Ltd’s Design team and Desktop Experience team are the upstream developers for this work. The messageing menu is [[https://launchpad.net/indicator-applet|hosted on Launchpad]].
Line 16: Line 16:
The message status menu exists to provide convenient access to messages concerning you that you may not have seen. The messaging menu exists to provide convenient access to messages concerning you that you may not have seen.
Line 22: Line 22:
 * Tillie uses a Telstra Big``Pond e-mail account in Thunderbird. She is subscribed to the [[http://lists.rootsweb.ancestry.com/index/other/Ethnic-Scots/AUS-SCOTTISH.html|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.  * Tillie uses a Telstra Big``Pond e-mail account in Thunderbird. She is subscribed to the [[http://lists.rootsweb.ancestry.com/index/other/Ethnic-Scots/AUS-SCOTTISH.html|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. Her nephew has taught her to look for the “Inbox” item under the envelope menu at the top of the screen.
Line 48: Line 48:
Each section should begin with an item for the application as a whole. This item should use the .desktop `Name` of the application as its text, but (by request of sabdfl) should not have any icon. Selecting the menu item should (re-)launch the application; the application can then decide whether it is most appropriate to open a new window, focus an existing window, or do something else. (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.) Each section should begin with an item for the application as a whole. This item should use the .desktop `Name` of the application as its text, but (by request of sabdfl) should not have any icon. Selecting the menu item should (re-)launch the application; the application can then decide whether it is most appropriate to open a new window, focus an existing window, or do something else. (For example, if the only Evolution window currently open is a Calendar window, choosing “Evolution” from the messaging menu should open and focus an Evolution Mail window.)
Line 128: Line 128:
== Pidgin == == Application integration ==
Line 130: Line 130:
=== Settings === === Pidgin ===
Line 132: Line 132:
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”. ==== Settings ====

When the messaging menu is being used, the “System Tray Icon” section of Pidgin’s Preferences should be hidden completely, and Pidgin should always behave as if the “Show system tray icon” setting was set to “Never”.

{{attachment:pidgin-preferences-old.png}} → {{attachment:pidgin-preferences-new.png}}
Line 138: Line 142:
== Evolution == === Evolution ===
Line 140: Line 144:
=== Settings === ==== Settings ====
Line 148: Line 152:
 * 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”.)
 * A “When new mail arrives in” menu should be added to the top of the “General” panel, containing “Inbox” and “any folder” items. If you have more than one e-mail account, the text of the “Inbox” option should read “any Inbox” rather than just “Inbox”. A colon should be shown after the menu, not before.
 * A “Play a sound” checkbox should be added.
 * A “Show a notification bubble” checkbox should be added.
 * An “Indicate unread messages in the panel” checkbox should be added.
Line 158: Line 158:
 * The “Message Display” section should be changed to “When displaying messages:”.  * The “Message Display” section should be renamed to “When displaying messages:”.
Line 160: Line 160:
 * 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 “Use the same font as other applications” checkbox should be removed, and Evolution should assume you always want to use the custom font setting. (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:”.
 * The “Highlight quotations with [XX] color” checkbox should be moved immediately below the font settings.
Line 164: Line 164:
 * 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.)  * The “Enable Search Folders” checkbox should be removed, and Evolution should run as if it is always on. (If you don’t want any search folders, don’t create any.)
Line 170: Line 170:
 * The “Generate a D-Bus message” setting should be dropped.  * The “Generate a D-Bus message” setting should be ignored.
Line 172: Line 172:
 * The “Blink icon in notification area” setting should be dropped.  * The “Blink icon in notification area” setting should be ignored.
Line 175: Line 175:
=== Behavior === === Empathy ===
Line 177: Line 177:
== Empathy == === Gwibber ===
Line 179: Line 179:
== Gwibber == === XChat ===
Line 181: Line 181:
== XChat == === KMail ===
Line 183: Line 183:
== KMail ==

== Konversation ==
=== Konversation ===
Line 189: Line 187:
 * How to turn the notification on or off for each program.
 * How to turn the menu off altogether.

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

messaging-menu-karmic.png

To satisfy many of 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 messageing menu is hosted on Launchpad.

Rationale

The messaging 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. Her nephew has taught her to look for the “Inbox” item under the envelope menu at the top of the screen.

  • 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 that has new messages.

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

  1. 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.

  2. 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. We request that the icon be provided only by instant messaging clients (the avatar for a contact), with other types of client omitting the icon.

  3. count: The number of new messages concerning you from this source. (Currently the count is not displayed if im-time is provided, but this may change in future.)

  4. time: 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. draw_attention: A request that the messaging menu communicate to the user that something important has arrived in the menu. Currently this is displayed as a green dot in the menu title.

  6. 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?

What's the API for communicating whether an item has appeared in the menu or not?

Treatment of the API

Each messaging application registered should have its own section of the menu. There should be a separator between the program sections, but not at the top or bottom of the menu. If it is registered, an 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 count or time.

Each section should begin with an item for the application as a whole. This item should use the .desktop Name of the application as its text, but (by request of sabdfl) should not have any icon. Selecting the menu item should (re-)launch the application; the application can then decide whether it is most appropriate to open a new window, focus an existing window, or do something else. (For example, if the only Evolution window currently open is a Calendar window, choosing “Evolution” from the messaging menu should open and focus an Evolution Mail window.)

If the application has not provided sub-items, its count or time should be shown as part of the application item.

If the application has provided sub-items, any count or time for the application as a whole should be ignored. The sub-items should be presented in the menu, in the same order the application provided them, below the item for the application as a whole. Each item should be indented by 1 em (measured using the size of the standard menu font). They should use name as their text, and icon (if any) as their icon. The count or time for each item should be presented as part of the menu item. If it has neither count nor time, the time at which the item was registered should be presented as its time.

Selecting an item from the menu should send the associated signal, and also remove the item from the menu.

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

How should draw_attention be handled?

How to distinguish visually between applications that are running and not?

Presentation of count

A count should be presented as small white text, inside a lozenge with a color 20% along the line from the menu background color towards the menu text color. The lozenge should be wide enough to contain the number of digits in the count, and the trailing edge of the lozenge should line up with the trailing edge of the available space for the menu item. The vertical alignment should be such that the baseline of the text inside the lozenge lines up with the baseline of the rest of the text in the menu item.

Presentation of time

The time for an item should be presented only if that item does not also have a count.

A time should be displayed in small print, with its baseline aligned with the baseline of the main menu text, and with its trailing edge horizontally aligned with the trailing edge of the menu contents area.

A time less than an hour ago should be presented as relative minutes. For example, “4 m” or “58 m”.

A time greater than or equal to an hour ago, but from today, should be presented as absolute hours and minutes, using the same 12- or 24-hour format as used by the panel clock, but without date or seconds. For example, “4:11 AM” or “20:07”.

A time both great than or equal to an hour ago, and from before today, but from less than six days before the most recent midnight, should be presented the same way, but preceded by the day in abbreviated form. For example, “Thu 4:11 AM” or “Sat 20:07”.

A time from more than six days before the most recent midnight should be preceded by the date instead of the day. For example, “Aug 8 4:11 AM” or “Oct 11 20:07”.

This presentation should be revisited once it becomes possible to customize date presentation in Ubuntu.

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.

name should be set to to the name of the mailbox. If (and only if) there is more than one mailbox with the same name, the mail program should disambiguate them using the account name if possible, e.g. “Inbox (Home)” vs. “Inbox (Yoyodyne)”.

signal should be set such that selecting an item from the menu focuses the most relevant window to display that mailbox (for example a window that is already displaying that mailbox, if one is open), and switches 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}.

For a group conversation, name should be set to the name of the channel or chat room. If only one person has sent highlighted messages, this should be followed by the name of that person in brackets. Otherwise, it should be followed by the number of people who have sent highlighted messages in brackets.

For an individual conversation, name should be set to the name of the person if known, otherwise their instant messaging ID or IRC nickname.

time should be set to the time of the earliest unseen message from that group or individual, if there is one.

signal should be set such that selecting an item from the menu brings the relevant window to the front, and switches to the relevant tab in that window if necessary.

Launcher 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)."

Application integration

Pidgin

Settings

When the messaging menu is being used, the “System Tray Icon” section of Pidgin’s Preferences should be hidden completely, and Pidgin should always behave as if the “Show system tray icon” setting was set to “Never”.

pidgin-preferences-old.pngpidgin-preferences-new.png

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 to the top of the “General” panel, containing “Inbox” and “any folder” items. If you have more than one e-mail account, the text of the “Inbox” option should read “any Inbox” rather than just “Inbox”. A colon should be shown after the menu, not before.
  • A “Play a sound” checkbox should be added.
  • A “Show a notification bubble” checkbox should be added.
  • An “Indicate unread messages in the panel” checkbox should be added.

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 renamed 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 the custom font setting. (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:”.
  • 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 run as if 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 ignored.
  • 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 ignored.
  • The “Popup message sound together with the icon” setting should be mapped to the “Display a notification bubble” setting.

Empathy

Gwibber

XChat

KMail

Konversation

Unresolved issues

  • [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)