org.freedesktop.PowerManagement

Holger Macht hmacht at suse.de
Fri Mar 30 16:04:31 PDT 2007


On Fri 30. Mar - 18:58:41, David Zeuthen wrote:
> On Sat, 2007-03-31 at 00:08 +0200, Lubos Lunak wrote: 
> > > The problem here is that Inhibit() on org.fd.PM affects the
> > > implementation on of Shutdown() and Reboot() - e.g. if I want to be able
> > > to make sure that the user gets this dialog
> > >
> > >  Some app $APP is preventing shut down because: $REASON.
> > >
> > >                                [Cancel] [Shut down anyway]
> > >
> > > where $APP may be "k3b" and reason may be "burning DVD". Don't you want
> > > this kind of interaction?
> > 
> >  I do and I can have it - in session management. In fact, should have it. Just 
> > logging out would stop the burning as well, so if there should be any such 
> > warning with suspend, there should be with logout as well.
> > 
> >  And shutdown/reboot imply logout, while suspend does not. Which means I can 
> > have the warning for free and it can be also counted as another reason that 
> > shutdown/reboot are a bit different from power management and as such don't 
> > quite fit in power management interface.
> 
> 
> 
> > 
> > > And if you care about memory consumption no-one is forcing you to run
> > > g-p-m or kpowersave; just run other stuff instead and make it return
> > > NotSupported for anything anything but Shutdown() and Reboot(). That's
> > > not really too much to ask I think. Thoughts?
> > 
> >  That other stuff would probably have to be the desktop itself, since there 
> > should always be a way to shutdown/reboot. Which means the desktop would 
> > somehow have to detect presence of a power management daemon and in the case 
> > of absence of it it'd have to provide the interface, or it'd have to provide 
> > the interface by default and hand it over to the daemon if needed, or 
> > whatever. IMHO ugly, if nothing else. Having two interfaces and g-p-m taking 
> > care of both looks much simpler, given they can be independent. Or do you 
> > have more reasons besides Inhibit() that'd require shutdown/reboot to be in 
> > the power management interface?
> 
> Not really; personally I'd like to get rid of them but the point about
> that if a caller inhibits the PM interface it should inhibit the
> Shutdown/Logout/Reboot interface as well. It seems you are suggestion
> two specs then:
> 
>  org.freedesktop.PowerManagement - but without Shutdown() and Reboot()
> 
> and this one
> 
>  org.freedesktop.SessionManagement
>    Shutdown()
>    Reboot()
>    Logout()
>    Inhibit(String app, String reason)
> 
> See [1] for discussion on nomenclature.
> 
> The way this could work is then that org.fd.PM.Inhibit() would also call
> Inhibit() on org.fd.SM. Specifically, as you mention, existing PM
> daemons like gnome-power-manager, kpowersave etc. would just provide
> both "interfaces" until something better comes along to provide
> org.freedesktop.SessionManagement, e.g. for GNOME it . Notably we can
> extend this interface later on.
> 
> Would this work for everyone? Personally I think this is a lot nicer.

Me too, because...

> 
>       David
> 
> 
> [1] : Note that these are really two different D-Bus name; it's not a
> problem but when we say "interface" we really mean the (D-Bus service,
> D-Bus object, D-Bus interface) tupple. For this example it's
> 
> D-Bus name:      org.freedesktop.PowerManagement
> D-Bus object:    /org/freedesktop/PowerManagement
> D-Bus interface: org.freedesktop.PowerManagement
> 
> and
> 
> D-Bus name:      org.freedesktop.SessionManagement
> D-Bus object:    /org/freedesktop/SessionManagement
> D-Bus interface: org.freedesktop.SessionManagement
> 
> Just trying to make it clear. Hope it's not too confusing!

It's exactly what I have already proposed in another mail. Except that
org.freedesktop.SessionManagement was called org.freedesktop.Desktop.* in
my proposal.

Regards,
	Holger



More information about the xdg mailing list