today on #gnome-hackers i was musing to richard about how i think that the current g-p-m/g-s-s setup is very confusing. i’ve thought about this for a while and today i did an AsciiBuilder mockup of what i think the interface should be. he was interested enough to ask me to blog about it to gather opinions from planet.
i make no proposal about how this might be implemented or what the hand-offs between g-p-m and g-s-s might look like. i only propose this as what we should present to the user (and we can figure out the technical parts later).
here it is:
Computer is inactive after [2min, 5min, 10min, 1hr, never] [X] Automatically lock when inactive (*) immediately ( ) after an additional [10min, 20min, 1hr, 2hr] [X] Show screensaver when inactive for the first [10min, 20min, 1hr, 2hr, forever] [X] even when I explicitly "Lock Screen".
the [2min, 5min, etc] are not meant to be an exaustive list of times supported by these options. they are merely there to indicate that some time selector is required with possible “never” or “forever” options, as appropriate.
forget screensavers for a moment. pay attention to only the top half of the dialog box.
the basic principle here is that in the absense of a screensaver, the monitor should either be showing your desktop or be powered off (with a small exception made for showing the ‘unlock’ dialog). this powered-off state is called “inactive”. i have not addressed the challenge of how to express this nuance to the user (although maybe it will just be obvious).
if ‘locked’ (implicitly, desktop is not shown) then this implies that the monitor must be off. however, the reverse implication is not true so we allow for a time difference between these two things occuring (including the possibility of zero and infinite time difference).
remember: so far, inactive means “monitor power is off”.
bringing in a screensaver spices things up a little bit but it’s not too bad. i see the screensaver merely as the initial (possibly never-ending) phase of power off. you show it first the first 10 minutes of what would have previously been the monitor’s powered-down mode. there is an exception for the “Lock Screen” item on the panel that allows you to have the screensaver skipped since many people will probably desire this.
note: no relationship whatsoever between the transition from screensaver to power-off and the transition from inactive-but-unlocked to locked. either may occur first (or never).
i think the behaviour from this dialog will be extremely clear and totally specified except for one small detail: when the screensaver is enabled and the unlock dialog box pops up after the monitor has gone to sleep, and the user fails to enter the correct password, then what happens? does the screensaver come on for another 10 minutes or does the computer go directly back to the state that it was in before the user moved the mouse? honestly, i don’t really care and i don’t think we need to expose this as an option.
a possible variation on the screensaver section above is as follows:
[X] Show screensaver when inactive for the first [10min, 20min, 1hr, 2hr, forever] [X] Show screensaver when I "Lock Screen". for the first [10min, 20min, 1hr, 2hr, forever]
conceptually it is slightly clearer, and it also allows for more options not allowed by the other dialog. i actually prefer the second choice but i understand that some might see it as overkill.
the use case i have in mind for the second variation is that it might be helpful to show the screensaver for a minute or two after explicitly locking in order to use the monitor as a source of light (when going to bed or locking up the office at night). this might be desired even when a screensaver for inactivity is not desired (or if the inactivity screensaver is desired for a longer length of time).
it might be desirable to put the “screensaver section” in its own dialog (along with the options for selecting the specific screensaver to use).
as for the “times”: how do we do it? spinbox? slider? dropdown menu?
i really like the idea of a dropdown menu containing only “useful” lengths of time. the list of what makes a “useful” length of time is something like:
* 1 minute
* 5 minutes
* 10 minutes
* 30 minutes
* 1 hour
* 2 hours
a consideration not addressed here: perhaps someone wants to cause their computer to immediately be considered as “inactive” (because they are leaving their desk and they want to save power or just hide their screen contents) but doesn’t want to deal with unlock dialogs. we currently have absolutely no way of dealing with this. it’s difficult too, since a simple accidental flick of the mouse would be all that is required to re-activate the desktop. hot corners, anyone?
that is all.
Regarding your last comment, about people possibly wanting to make their system inactive without locking the screen: I don’t think you need to handle that case explicitly. Anyone willing to leave their system without locking the screen probably doesn’t have their screen set to lock at all. Either you want security or you don’t.
That looks a very flexible dialog which condenses all options currently scattered among two places and even adds new features. Something I remember wanting before. The second variant for screensaver part would be both clearer and more flexible.
All this would go into gnome-power-manager I understand and be possible to customize separately for battery and ac power, for example to disable the screensaver, shorten the inactive time and enable lock while on battery.
Do you mind adding ‘Other’ to the list of time and some method of specifing the time. Since it is possible that someone wants 1.5 h showing screen etc. and it do not seem to be a bug problem.
Slso, if the password is incorrect, pretend that nothing happened and go back to screensaver/power off at the moment the unlock dialog is hidden, or when it was planned. This is important to be resistant to accidental mouse moves and cats jumping onto the keyboard :)
Definitely a +1 from me; sounds like a great idea.
Nice idea, screen locking need some thinkering tho. I’d use a dropdown for times with an other option which pop up a dialog probably.
Oddly worded.
“Computer is inactive after [2min]”
2 minutes of what, inactivity ?
Also, why do I have to tell my computer when it is i inactive ? it can pretty well figure that out on its own.
Please don’t immediately power the screen off after an incorrect unlock attempt, some monitors after being powered off can take a very long time to power back on again. Showing the screensaver for a while gives you an opportunity to initiate another attempt at unlocking the screen again.
My thought for a UI for this was a slider where you could drag “screen saver” “blank” “lock” and “poweroff monitor” “power off system” “hibernate” etc icons onto (and off again back into some toolbox), letting the user specify when they wanted various things to happen.
I’ve always set the screensaver to come on for a minute before powering off and locking the screen, which gives me an indication that the screen is about to lock and gives me time to cause some activity to avoid it without having to reenter my password and/or wait for the monitors to power up again (which is important when reading complicated things off the screen)
Interesting, and i like it. And while thinking about it, i would even say that it might be worthwile to “drop” the current screensaver selection program and merge it with the theme selection.
It might be a Ubuntu only addition to gnome, but i noticed that font selection and window behaviour already got moved to a single application. Which i like very much because i always found that System>Preferences has too many items.
Seeing as the actual choice of what screensaver you want to run is decoration choice, moving it to such a themes application seems logical.
Too complex. Too much text to read.
How about illustrating what happens with a timeline ?
0—–1—–2—–3…..
t0: computer is inactive
after t1: screensaver starts
after t2: screen is locked
after t3: screen is off
With various choices for each tx.
IMHO, this is much much more clear.
I agree with comment #7: I do not understand at all why one has to configure when a computer becomes “inactive”. What is that time interval used for, if you don’t set it to lock or show the screensaver immediately when it becomes “inactive”? Please drop this.
Also I think the possibility to set a different interval for locking and for showing the screensaver is fairly useless. Locking the machine without showing the screensaver, seems strange to me, and showing the screensaver, but only locking it five minutes later, seems strange too. Then just set your screensaver to show up 5 minutes later.
get rid of the screen saver. yes it was cool to have fish swim across your screen in the ’90s. but now its cool to save power.
You should have a setting for only locking the screen after a few seconds (say 5) so it’s less annoying if you’re reading something and the screensaver kicks in.
I would suggest an easier way (IMHO):
——————
Consider computer inactive after […] of no use
Monitor:
(*) Turn off screen
( ) Show screensaver for: […] before turn it off
Lock desktop:
[x] Also lock the computer […] after being inactive
Computer:
(*) Never power off
( ) Hibernate/Whutdown […] after being inactive
And all this settings should be configurable independiently on laptops, to be able to choose different setting when “On AC”, “On batery” and “On presentation”.