MessagingMenu

Differences between revisions 5 and 6
Revision 5 as of 2009-03-31 14:56:39
Size: 12136
Editor: yttrium
Comment: restructuring
Revision 6 as of 2009-03-31 14:59:16
Size: 12137
Editor: yttrium
Comment: fixes link and formatting
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
''This specification contains some issues not yet resolved. '''Your feedback is welcome''' at [[MessageStatusMenu/Comments]].'' ''This specification contains some issues not yet resolved. '''Your feedback is welcome''' at [[MessagingMenu/Comments]].''
Line 23: Line 23:
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.
3. '''Total:''' The number of new messages concerning you in this source.
4. '''Timestamp:''' A timestamp for the most recent message from that source, in ISO 8601 format. The messaging menu takes care of presenting this time in an easier-to-read and locale-sensitive format.
5. '''Callback:''' A function that should be called when the menu item is selected.
 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.
 3. '''Total:''' The number of new messages concerning you in this source.
 4. '''Timestamp:''' A timestamp for the most recent message from that source, in ISO 8601 format. The messaging menu takes care of presenting this time in an easier-to-read and locale-sensitive format.
 5. '''Callback:''' A function that should be called when the menu item is selected.

This specification contains some issues not yet resolved. Your feedback is welcome at MessagingMenu/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 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, 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.

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.

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

  4. Timestamp: A timestamp for the most recent message from that source, in ISO 8601 format. The messaging menu takes care of presenting this time in an easier-to-read and locale-sensitive format.

  5. Callback: A function that should be called when the menu item is selected.

Desired behavior for e-mail clients

For e-mail clients, a new message is an unread message that the program discovered since the last time you performed any action in the program or 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 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.

== Desired behavior for instant messaging clients ===

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.

structure.jpg

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

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

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

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