Screensaver reimplementation for Gnome 3

Registered by Matthew Paul Thomas on 2011-03-25

gnome-screensaver has been abolished in Gnome 3.* However, changing the screensaver is a simple and fun customization that Ubuntu should continue to offer, as competing operating systems do. This likely involves designing and implementing screensaver settings that will integrate into the System Settings.

While doing this we may also consider enterprise lockdown settings. For example, Google sets for its employees a maximum time to activate the screensaver, but is happy for individual employees to choose a shorter time and/or to change the screensaver theme.

* https://mail.gnome.org/archives/gnome-shell-list/2011-March/msg00340.html

Blueprint information

Status:
Complete
Approver:
Martin Pitt
Priority:
Low
Drafter:
Matthew Paul Thomas
Direction:
Approved
Assignee:
Sebastien Bacher
Definition:
Obsolete
Series goal:
Accepted for oneiric
Implementation:
Not started
Milestone target:
milestone icon ubuntu-11.10-beta-1
Completed by
Martin Pitt on 2012-05-15

Related branches

Sprints

Whiteboard

Work items:
[seb128] update gnome-screensaver to GNOME3 with the hacks (animated screen savers) added back: DROPPED
[robert-ancell] work on integrating the preference dialog in gnome-control-center: DROPPED
[seb128] review around oneiric-alpha-3 what was done during the cycle and decide what to use for oneric: DONE
[seb128] check that GNOME 3.2 still has a compatible dbus api: DONE
[mdeslaur] update the lock screen ui to not look like gnome-shell under unity: DONE

The plan of action is:
- screen locking should be done in the compositor (i.e compiz for unity)
- if that doesn't get done this cycle we will just use gnome-screensaver 3 with support for hacks restored
- see also https://blueprints.launchpad.net/ubuntu/+spec/security-o-compiz-screenlocking; smspillaz might try to get it in compiz, but might not land this cycle.

pitti, 2011-05-24:
 - what is the "hacks cleaning" in the first WI?
 - if g-screensaver is going away anyway, was xscreensaver even considered as a replacement? It's in the session notes.
 - I agree that the screensaver settings should go into the system settings, it's not a separate application. We'd need to distro-patch that into control-center?
 - the "help getting a list of requirements" is actually what should be in the spec: a feature list to check the status against, and a sketch of the architecture (which part does the locking, which part the animations, etc.) can you please expand this?
- reviewing the state around beta is too late, FF is already past at this point. As the screensaver and inhibition touches several parts of the system, I think the final oneiric design should be fixed by alpha-3.

seb128:
- the "hacks" are the screensaver effects you can select on the locking screen, upstream dropped the support to use any of those (design decision) but we don't agree with that
- we will need to change the current standalone dialog to be a control-center-panel, that doesn't need gnome-control-center patching out of making the apis public which has been decided already in another spec
- xscreensaver was not really discussed but it doesn't seem a fit for what we need, it doesn't use dbus at all right now so we would need to had dbus support and add the inhibition api, etc to it, it's simpler to just revert the gnome-screensaver commit that dropped the hacks until we get locking in compiz

Note that https://blueprints.launchpad.net/ubuntu/+spec/security-o-compiz-screenlocking somewhat overlap this one

Session notes:
------------
What's happening in Gnome?
* gnome-screensaver 2.91 uses GTK3 and can play demos
* In Gnome 3.0, gnome-screensaver uses GTK3 but can't play demos
* In Gnome 3.2, gnome-screensaver doesn't exist, and screen locking is part of Gnome Shell.

There is discussion in Gnome about whether this was a good idea, but it was a module maintainer decision, so would be difficult to change.

gnome-screensaver wasn't perfect architecturally
- running as its own window
- wouldn't run when a menu was open

Options:
 - use gnome-screensaver 2.91 and update to 3 without dropping the hacks rendering
 - integrate screensaver, and unlock dialog, into the compositor (i.e. Compiz)
   - perhaps set a standard for compositors to do screensavers
   - estimate from Sam Spilsbury: 80% of the work would take two weeks

How would power management, screensaver inhibit work?
- ... gnome-session ...

What would happen with the screensaver settings?
 - add to Screen capplet? or make a new one
 - would need to go in System Settings (cf. https://blueprints.launchpad.net/ubuntu/+spec/desktop-o-system-settings )
 - https://launchpad.net/screensaver-settings (written in C#, last commit in April of 2008)

Wishlist for screensavers (for screensaver-settings):
 - expose a set of user-tweakable options per screensaver-hack (e.g. customizable text for the "rotating text"-hack)
 - keep the ability to preview/demo the different screensaver-hack in a settings-frontent
 - the screensaver-unlock dialog should be be the same in appearance and behaviour (at least look equal) like the one used to login (login-manager)

The plan is:
- update to GNOME3 first
- see how is the work going on getting the locking in compiz, if we can get that done this cycle switch to it otherwise stay on gnome-screensaver
------------

[evfool]
discuss informative screensavers (see Hot News/Rss Visualizer on MacOS). could include weather info, rss feed, time, date, now playing song info, lyrics, etc.

[gilir]
Lubuntu is also investigated a replacement for the screensaver (currently xscreensaver). If we can share this screensaver, it will avoid us to write another solution.
We need something :
 * simple (doing locking and switch to blank screen)
 * with low memory requirement
 * not too much GNOME dependencies
 * with D-Bus API (at least compatible with gnome-screensaver inhibition system) [gnome screensaver inhibit d-bus API has been removed (in commit 9f742d), gnome-session is now handling this -- fredp]
At least, a way to run it with minimal settings (turn off shiny stuff) will be nice.

(?)

Work Items