nagyistoce / growl

Automatically exported from code.google.com/p/growl
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Growl in a multi user environment does not behave as a user would expect #426

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Login into user 1, start growl
2. Switch to user 2, start growl
3. Open apps on user 2 which support growl
4. Have notifications fire
5. Switch back to user 1
6. See notifications fired by user 2

What is the expected output?
Notifications from user 1's apps should go to user 1's Growl, notifications 
from user 2's apps should go to user 2's Growl

What do you see instead?
Notifications go to whichever app has latched onto the new main pathway for 
growl, the GNTP socket 23053.

From a more technical standpoint, this is going to take some thinking, and 
regardless, it will take updates to both core Growl.app, and Growl.framework, 
meaning that app dev's will have to update to better support multiple users.  

If we cut off Growl's sockets on the first user, apps from the first user could 
conceivably than talk to Growl on the second user's account.  As another 
option, we could use a different port for each user, but again, the framework 
would need updating to support figuring out which port that user's Growl had 
registered on, and that second user would be frustrated that none of his apps 
which didn't have the updated framework would work properly (they would still 
be talking to user 1).

Bonjour has been suggested as a method for ensuring that user 1 and user 2 
don't overlap, and can continue running and receiving.  NSNetService cannot be 
broadcast to a specific interface, which if the user isn't wanting the world to 
know he is running Growl, would not be a good thing (also, Growl 1.4 splits the 
local socket off from the remote, so that port wouldn't be open, and it would 
be a lie on all but the localhost).  However, DNSSD.h, the lowest level Bonjour 
access provides options for broadcasting on all interfaces, a specific 
interface, or the local system only. 

Original issue reported on code.google.com by dan...@growl.info on 27 Jan 2012 at 3:23

GoogleCodeExporter commented 9 years ago
The first option, simply cutting growl off for the inactive user is fairly 
simple to implement comparatively.  However, as someone who doesn't really face 
the issue, I can't really comment on what I would prefer to see more.  

Original comment by dan...@growl.info on 27 Jan 2012 at 3:43

GoogleCodeExporter commented 9 years ago

Original comment by dan...@growl.info on 6 Feb 2012 at 4:54

GoogleCodeExporter commented 9 years ago
I am using Growl this way :
- a "iTunes" user is always running on my mac in order to keep running iTunes 
and EyeTV running
- "human" users are logging on their own sessions when needed, by using the 
fast user switching capability - "iTunes" session tools are then still running 
in the hidden session
Growl is used on the "iTunes" session to monitor the different actions running 
and Prowl allows me to follow that on my iPhone. I decided not to use Growl in 
the other sessions as I do not want users being disturbed by "iTunes" session 
messages.

Cutting growl off for the "iTunes" user when it is not the main one will not 
allow anymore this (or this should be an option). 

My vote is :
- having the user's Growl not overlapping but running by default
- having an option that allows to broadcast from a user's Growl to another, on 
a per application and per priority base.

Original comment by bip.phil...@gmail.com on 8 Feb 2012 at 8:25

GoogleCodeExporter commented 9 years ago

Original comment by ch...@growl.info on 18 Jul 2012 at 5:16

GoogleCodeExporter commented 9 years ago

Original comment by ch...@growl.info on 5 Oct 2012 at 4:39

GoogleCodeExporter commented 9 years ago
Hello!

I use my Mac with two different users, one for home tasks and one for work. 
This is good, because I have different preferences in work as at home.

The desired behaviour as I think is that every user would run a Growl server, 
which would display the notifications it receives. Applications could send the 
notification either "the simple way" (the same user's Growl would receive it as 
the tasks owner) or "broadcasted way" (every user would get it on the same 
computer). The user should be able to set this setting per-notification basis. 
For example this way I would need only one HardwareGrowler running which can 
broadcast events to all users (since events do not differ on the two users). 
Another usecase is, when you want to get notified when something happens on the 
other user's account (for example he gets an email or the encoder finishes 
encoding).

If it is complicated to implement this way, then at least please just enable 
users to use two instances of Growl and have one user's applications to be able 
to connect only to the local user's Growl server.

The current way, when the 2nd user's growl messages can be not seen is 
definetly wrong in every way.

Original comment by gruber.k...@gmail.com on 4 Dec 2012 at 6:51

GoogleCodeExporter commented 9 years ago
Much like user bip_phil, I always have an account running in the background for 
my home automation system. I would like to be able to see Growl alerts ("Hey, 
your barn is on fire!") from the home automation system to the "foreground" 
user account as well as to iPhone etc. 

Original comment by groble...@gmail.com on 3 Apr 2013 at 3:37