GNOME Bugzilla – Bug 467829
Incorrect use of notification icon
Last modified: 2011-11-22 10:13:04 UTC
"Using the status notification area applications can notify the user of non-critical events (for example, arrival of new email, or a chat 'buddy' having logged on), and expose the status of active system processes"
Instead, Empathy perpetually displays a notification icon.
At the very least there should be a preference to disable this behaviour:
"Non-core programs for which a perpetual icon may be useful must default to not perpetually showing the icon. Users may select to enable a perpetual icon for the application as a preference."
In my opinion Empathy is a core application just like gnome-power-manager and network-manager, it exposes the status of your IM accounts.
I'm reopening this because core or non-core is not the issue.
"The utility of the notification area decreases rapidly when more than about four icons are always present. For this reason, icons that appear only temporarily in response to events are preferable."
This is a problem with Empathy, there's just no way to prevent it from occupying the notification area.
And what happens if there is no status icon and I close the contact list ? Use has no way to open the contact list again and have no way to know he is still connected.
What you suggest is to have an option to remove the status icon and get it back when there is an event or if the main window is closed?
That's an unusual comportment, I see other program that acts like that and my fear is users won't understand what's happening, they are used the have a status icon all the time for IM.
When there is no status icon and you hit the contact lists' window close button, Empathy would simply exit like any other application. (The fact that Close and Minimize now seem to perform the same action appears very strange to me.)
So yes, while I understand the need to meet the expectations of some users that the pivot of activity of an IM app should be in some kind of system tray, what I'm requesting here is a way to tell Empathy to be a well-behaved GNOME component in terms of only using the notification area when there's some event to notify the user about, simply minimizing to the tasklist and exiting when the window close button is pressed.
I strongly disagree with exit when closing the main window, I think only rhythmbox acts like that, all users a bit used to applications having an icon in the tray expect the application to not exit when closing the main window. If you do a mistake and close the window you'll be disconnected, all chats closed, you leave chatrooms, I think that's too dangerous because no other IM application do that, pidgin and MS-Messenger (most used IM applications) minimize in tray and users are used to that.
I agree with Xavier here, please do not make IM exit when closing the main window. Applications like Empathy do have to run in the background; i find Rhythmbox's behaviour really annoying.
Well, like I said, I recognize that some users have come to expect this awkward mode of interaction. Maybe it should be the default in Empathy, even. However I don't think it's too much to ask that there be at least an option to behave in a GNOME HIG-compliant way.
I don't want to sound pedantic but there's at least one IM app that does "close all chats" etc. when the contact list is closed, namely Gajim (at least it can be configured that way).
Of course we don't want to cause "data loss" to users in whatever mode of operation. Therefore it would be reasonable to give a warning dialog when conversation windows with unread messages are about to be closed. Also I don't see why Empathy couldn't simply reopen all conversations on startup that were open when the contact list was closed last time. IMHO all this should be possible without ever using the notification area. :)
I agree with this bug, and I would go even further by dropping the notification area completely, because I think the task list can be improved to incorporate notification area features. I have opened bug 470101 for this.
I had also become used to the ackward behavior of the Close button, which minimizes to the tray, and am now convinced it is a bad design, mainly because we ask the user to check two places to find his applications, mainly for historic reasons.
We need to break this habit of minimizing to tray.
Some explanation for Gossip's way of dealing with "quit vs iconify to the notification area" are in bug 368174. It basically boils down to this quote from Mikael Hallendal:
"The idea is to give the illusion that your "desktop" is connected, not a specific application."
One way to further that goal would be to remember if Gossip/Empathy was running when the user logged out and start it again if so when the user logs in again. And, of course, remember if the contact list was hidden or not.
Don't know if it's ok to use the notification area like that but if you think about it from that perspective it's not a clear cut.
Just for the record; I'm also strongly in favor of the close button to actually close the application. Clicking the tray icon already toggles minimization, so that show and hide are in the same place. The window close button shouldn't suddenly mean something else just because the application decided to offer a notification icon. I also think this should definitely be the default setting in order to maintain a consistent desktop.
As to the connection loss, I think the best solution would be to automatically save and restore session state -- at least to some reasonable extent.
IM needs a panel applet and a headless session daemon. I only need the roster window when starting a conversation, when someone else initiates it, it's almost useless.
I think the contact list should be a separate application that talks to empathy over DBUS or shares the same libraries but certainly not the one maintaining a network link to the server.
I'd like empathy to be more something along evolution-data-server than evolution itself. I can send an email without having the address book open and it's not the contact list that gets my messages delivered over SMTP so I don't see a point why it should be the case in IM.
Don't get me wrong, I really like Empathy but for smooth integration it should not clutter my notification area unless there is an incoming chat or file request. A panel applet would do a much better job (displaying my current status etc.) and integrating the contact list with deskbar would be much more useful than having to scroll through 10 or so screens of circles and triangles (sorry but the icons are poor at best - Gajim got that part almost perfect) just to say "hi" to my mother.
I strongly agree with this bug.
With the current state of apps such as empathy, gossip, rhythmbox and so on, GNOME must have two window lists to be useful: the actual window list and the status bar. This is a broken design. Users should expect that minimize minimizes to one area and close closes the application. Right now when I look for my roster I first look on the desktop, then the window list, and only since I've been educated about this strange behavior, I now look to the status bar (and not for a status mind you, but for a list of open applicatoins that choose not to use the actual applet that shows open applications).
Basically my status bar no longer gives me status, but instead is a new window list with panel functionality. Almost like a panel inside the main panel.
My feeling is that if empathy wants the status icon to act like a panel applet (which is essentially does), then it should be a proper panel applet. Otherwise the behavior is just confusing.
Saying that the broken behavior was added simply because other popular applications exhibit this broken behavior is a poor design choice. If that was the way forward, GNOME might as well copy window's broken desktop.
I won't change anything unless we get an official decision for the GNOME desktop written in GNOME HIGs.
(In reply to comment #13)
> I won't change anything unless we get an official decision for the GNOME
> desktop written in GNOME HIGs.
As I'm sure you are aware, the guidelines are just that: guidelines. An "official decision" binding all GNOME apps to some specific behaviour will probably never come. Having said that, could you point out where the current HIG text on notification area usage is so unclear that you want to wait for an official decision to be added to the HIG?
Oh, sorry, forget my last post, I forgot this bug was about respecting HIG...
I'll think about a solution, it's not that easy in empathy's case because IM connections are shared with many different applications. If I don't show the status icon and the user closes the main window there is nothing telling the user that IM connections are still open. So I should disconnect accounts when closing the main window... But what if other applications were using the connection? For example nautilus could be doing an MSN file transfer or gtetrinet could use the Jabber connection for a multiplayer game, etc.
Why not do some sort of "reference counting" to see whether a particular connectio n is still in use?
In that case why isn't empathy a daemon and the application is just a client of that daemon. It will be like evolution-data-server, in the sense that the connectivity is always running in the background, and applications that want to talk to it in the foreground can connect using some dbus api.
Jon > It is already a daemon running until the user tells to disconnect. Empathy is just a frontend that communicate via dbus.
The problem here is to be sure the user always have a way to know his jabber/msn/etc accounts are still connected. And we shouldn't disconnect accounts without telling the user he is going to be disconnected because no more UI is using the connection...
Really, it is not an easy bug to fix. We need more than just an option to hide the status icon.
What about my comment #11? I suggested using an applet there. Users who don't care about their online status could just remove the applet from their panels. The simplest applet I can think of is just a drop-down with your online status (available, away etc.)
All events would still appear in the notification area.
Patryk's on to something there with the idea of using an applet. It wouldn't necessarily have to be compulsory - the daemon could think 'ah, there's a contact list connected to me', and 'there's an applet connected to me', then if both of them went away it could exit, or go offline until one of them came back at which point it would initiate signing in again.
Well, maybe both would be silly, but I can see some people violently objecting to being required to have a panel applet to use Empathy.
I definitely agree with Patryk's idea. Having a notification icon, that mainly notifies me of things i did myself (setting status) is not a good idea. Also HIG says
"You should probably write an applet instead of using the notification area if: [...] there are icon-specific options on its context menu for doing anything other than [popping up a window]".
Other apps like network-manager obviously break this rule too, but they shouldn't as well. Examples off apps doing it the rigth way are gnome-volume-applet or cpufreq-applet. They essentially show one's "status" too. They also offer a subset of commands (similar to setting status).
It may well be that IM connections are somewhat more important to monitor for the user, but showing some kind of warning when the last connected GUI quits may be sufficent. Another idea I had is some kind of hybrid behavior. When empathy is the only open GUI, it minimizes to tray, when closed, like now, but if an applet is present too, it quits normally (which should be default imho).
I begin to agree on this. I had that idea:
1) An applet like Nothere to show and change presence from the panel.
2) A contact list application which exits when closing the window but does not disconnect accounts.
3) A status icon the appears only on events like new conversation or subscribe request, the only action on the status icon would be clicking on it to show the conversation or open the subscribe window.
They can all be in separate processes.
What happens if you close the window but you don't have the applet?
Is it a good idea to exit and restart a program each time you open/close the contact list?
The applet can show the currently connected accounts---think of a bit like the network list of the nm-applet icon. The applet might also contain "launchers" for the actual roster application.
Nothing happens - you continue to receive new chats until you relaunch the roster app and tell it to disconnect.
It is a good idea to save resources. One use case would be to integrate starting a new conversation into gnome-do or deskbar-applet. One would no longer need the roster.
(In reply to comment #23)
> Is it a good idea to exit and restart a program each time you open/close the
> contact list?
Only if the program has a bad startup performance, in which case _that_ should be fixed instead. :-)
Didn't we learn multiplying binaries (both programs and libraries) had a negative effect on memory consumption, compared to dead code in an existing binary ?
I am not enthousiastic at all about the number of binaries necessary for Empathy (there is already contact list and chat windows, there will most probably be a new one with the search dialog).
Performances, both memory and speed (those programs have to be forked()), are a concern but code complexity (an example is bug #462040) is another important one.
[sorry for the comment tangential to this bug report]
*** Bug 489977 has been marked as a duplicate of this bug. ***
I think Frederic is right to worry about starting/stopping processes a lot: exec() tends to be very expensive.
I think that it's useful to be able to change status quickly; this could be accomplished with either an applet or a notification icon.
I'm not so sure about the utility of hiding/showing the contact list. I imagine the primary use case for the contact list is to begin new conversations/calls, which I suspect would be better served by some sort of search interface. C.f. the Gnome menu vs. the Alt-F2 "run program" dialog.
Rhythmbox is similar to Empathy in that clicking on the notification icon hides/shows the Window, but this seems like working around shortcomings in window management instead of seeking a proper solution.
It would be nice to have some kind of "extended minimize" state for windows, so their entry in the windowlist would be very small (like an app launcher) with only the icon visible, possibly moving them to the front of the list. This would make sense for e.g. [empathy,pidgin,...]-contactlist, rhythmbox, transmission-gtk and probably others. i don't know if any window manager supports this.
*** Bug 558303 has been marked as a duplicate of this bug. ***
I suggest to those who are not convinced to try to use Pidjin without the permanent notification icon. You just keep your rooster open on some workspace and the notification appears only when you have a message. With that solution, I never miss a new message (which is happening all the time for me in empathy and is the only reason why I'm still using Pidgin, even if I hate it).
For those who want to see their status permanently, there is the fast-user-switcher applet, for example. And if you want to use this widget and empathy, it's becoming completely weird because you have your status displayed twice !
I absolutely agree with comment #22, but I don't see why, if I don't have the applet and quit the program, it should stay online? If I close xchat e.g. it also disconnects. Why should empathy behave differently? Staying online without giving the user a hint about it is a bad idea, IMHO.
finished to convince me that we are really abusing the notification area.
We should move the existing features of the status icon to an applet and then display the status icon only for incoming events (new conversation, calls, etc).
The article linked by Guillaume nicely wraps up the reasoning for this bug report IMHO.
Plus, I don't think there's much need for a (new) applet either. Setting status is already possible (in fast-user-switch-applet) and the remaining options in the icon's context menu are
- opening roster: can be done with a dock or virtual desktop + window list (In any case it's the WM's job)
- starting new conversation: has a clumsy UI anyway and is easier done from roster IMHO
- quit: not needed anymore as empathy doesn't minimize "to tray" in the first place
Of course the current behaviour should still be available as an option to the user somewhere.
I believe the FUSA applet you are referring to does not have such capabilities upstream. At least it the past it was an Ubuntu-specific downstream hack.
(In reply to comment #36)
> I believe the FUSA applet you are referring to does not have such
> capabilities upstream
I think it had support for setting status, but this status was != IM status. I have not seen this part of the applet in recent Rawhide though.
I think working together with gnome-shell for IM integration would be the best. IM is hardly something you do exclusively, it's most of the time something you do in between other activities. So for me it would make most sense to have the IM functionality deeply integrated into the desktop.
(In reply to comment #35)
> Of course the current behaviour should still be available as an option
> to the user somewhere.
Of course it should NOT. The whole point of this bug is that the current behavior is totally inappropriate.
*** Bug 593353 has been marked as a duplicate of this bug. ***
I think there should be an option to remove the empathy icon from the system
tray: this was possible in pidgin and many pidgin users will switch to empathy
when karmic releases.
A similar problem is the fact that the icon starts flashing when I start
empathy because of an identification message. I heard other people complain
about this, it requires too much attention, I guess. :) System tray icons
should not flash imho.
From downstream Ubuntu:
As I see it, the current behavior is completely unacceptable and there are two potential solutions:
1) Display a notifications icon on... notifications. Let the close button... close. If needed, the user could be warned about close dropping connections. This is consistent with e.g. gedit warning on closing unsaved documents, etc. If you want to minimize, use the minimize button. If you want to hide it away but keep it running, use workspaces.
2) Integrate Empathy into GNOME more as a IM framework than an application in itself. Configure accounts in either gnome-about-me or a separate dialog under System/Preferences. Make connections a daemon. Create an applet for changing status and launching conversations. Have the daemon queue messages in a notifications area icon, but do not show it when there are no messages. There could possibly still be an application like the current contact list, but it should be more a "connection viewer" than the main application itself (whatever differences this might imply).
The current behavior is unacceptable because it acts inconsistently, causing confusion and making users not trust their desktop. It also clutters the notifications area, too many icons causes users to mentally filter the whole area, ignoring notifications. Network manager and power monitor should probably be applets aswell, or only display notification icons on broken connection or low battery, etc; but that's an issue for a different thread. I only want to communicate that those are not model citizens to mimic.
This broken use of the notifications area historically comes from Windows lacking workspaces and commercial applications competing about users computers and the attention of the users. This behavior has no place in GNOME.
If it is decided to go with something like 2), it is a big change and 1) should probably be implemented anyway at first, in the mean time. Also, 2) is mostly an example implementation of a basic idea of integrating it more into the desktop. It needs more planning than my quick brainstorming.
Excuse the strong feelings, I'm simply concerned that such a broken behavior goes into the default GNOME, Ubuntu, Fedora etc. I think it can cause alot of damage especially to new users who are not otherwise yet exposed to such inconsistencies. This causes computer fear, and we want to minimize that.
As far as I know, this bug is currently fixed as empathy doesn't use the notification area anymore, at least in Ubuntu Karmic.
That's an ubuntu specific patch, it is not upstream.
*** Bug 590640 has been marked as a duplicate of this bug. ***
I know I'm re-awaking a year old report but just wanted to give my two cents. What about users who use docks such as Docky? I just want to minimize Empathy to my dock and not have a notification icon. I like operating this way because when I close an application - I know its closed. And when I minimize an application - I know its minimized. Applications such Empathy really don't belong in the notification area or in indicator applets imho.
Oh and Lionel Dricot (comment 41) when you disable the messaging indicator applet that Empathy uses in Ubuntu it resorts to sitting back in the notification area :(
*** Bug 585944 has been marked as a duplicate of this bug. ***
I, like most users, tended to like the way Empathy closed to the notification area because I thought this gave the impression that the computer was always connected instead of only when empathy is visible. However, that impression ceased when you noticed that empathy didn't start automatically when the session started.
Now, I'm a bit confused because I expected the email application (evolution) to behave just like empathy (stay open all the time in the notification area) but it doesn't. So, I decided to fill a request for enhancement for evolution: Bug 650460 . And now, to my surprise, I'm said that this is a total NO NO for evolution.
So if GNOME wants to be a coherent desktop, whether empathy has to disable this behaviour by default or evolution has to behave like empathy by default. At the moment, there is no way to make both applications behave in the same way (empathy lacks an option to exit when you close the window, and evolution lacks an options to close to the tray). As for other background apps (banshee, rhythmbox, transmission, x-chat), they all seem to default to exiting when you close them, and have an option (or plugin) to close to tray.
I really think it's a problem that needs to be fixed at the desktop level, in a coherent way.
Whith gnome-shell that status icon does not make any sense anymore, IMO.
In the future we (at least I) would like to completely separate the UI views and the background service. I think your accounts being online or not should be managed by gnome-shell's me-menu by setting your presence, just like we can already set available/busy there. Then close empathy's main window will just exist empathy as a UI view of the service, but will let the service running in background. So you'll still have your accounts online, and when you receive a message gnome-shell display notification.
In GNOME2 desktop, the status icon was there for 2 purposes: 1) let you know your presence. 2) show notifications. Both are now handled by gnome-shell, so we could remove it totally, IMO.
I think this is a great idea Xavier to split the UI from the backend, but I only fear that people will start expecting that from any messaging app, and be upset when they realize a closed Evolution doesn't fetch new emails... But maybe when Epmathy does it right, Evolution developers will want to implement it too.
note that this is similar to what we have on android/iOS, after having launch the facebook app and left it, you still get notifications for new messages, so the service is still running and connected even if you don't see UI anymore. Clicking a notification display the UI again.
Closing this bug as the status icon isn't displayed any more when using GNOME 3.