Comment 13 for bug 1232814

Jeffery To (jefferyto) wrote :

For Saucy, indicator-session was updated to use logind (org.freedesktop.login1) instead of upower.

If you check /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla, you'll see that hibernate is disabled by default in both upower and logind.

So the first step to re-enable the Hibernate option is to edit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla to something like:

    [Re-enable hibernate by default in upower]
    Identity=unix-user:*
    Action=org.freedesktop.upower.hibernate
    ResultActive=yes

    [Re-enable hibernate by default in logind]
    Identity=unix-user:*
    Action=org.freedesktop.login1.hibernate
    ResultActive=yes

After rebooting, the login screen session menu should have a Hibernate option.

After logging in, the desktop session menu still doesn't have the Hibernate option. If I kill the indicator-session-service process and wait for it to be respawned, the menu will be updated with Hibernate.

I don't see anything obviously wrong in the indicator-session code, so I suspect this is a timing issue. My guess is the hibernate dbus (async) query hasn't returned a result yet when it first builds the desktop session menu.

(Another clue to indicator-session building menus too early: I have a Reboot option in my desktop session menu, even though I'm using Unity and the code should have hidden it. The Reboot option is gone after indicator-session-service is killed and respawned.)

I'll try to investigate more as time permits.