Re: Feature request: Preferences, animation & speed settings



Hmm, I'm going to disagree with you here (although I will concede that
you probably know a *lot* more than this than me).

Let me see if I can explain my thinking:


On Mon, May 11, 2009 at 11:21 PM, Owen Taylor <otaylor redhat com> wrote:
> On Mon, 2009-05-11 at 08:44 +0100, Ross Smith wrote:
>> Hi guys,
>>
>> Could I make a request for some kind of nice GUI to set animation
>> speed preferences, possibly with an eye towards being able to choose
>> type of animation in the long term.
>>
>> I love the way compiz allows you to tweak everything easily with ccsm,
>> which to my untrained eye looks like a modular design, so it's very
>> easy for it to manage any setting they add.
>
> gnome-shell will obviously be more configurable in the future than it is
> now, since now it's not configurable at all. :-)

Wohoo! :-D

> But adding a preference is generally speaking something we do in GNOME
> as the last resort. For a detailed discussion of the cost of adding
> preference, see:
>  http://ometer.com/free-software-ui.html

Fair enough, even without reading that I can agree with this in
principal, and understand the general concept behind it.  To get a
consistent UI throughout you have to have something solid to lead from
(and this has always been one of Windows strengths).


> In this case, if we immediately add a preference for the speed of the
> animation, then we've solved a problem for the small group of users that
> are annoyed, that can figure out why they are annoyed, and sufficiently
> annoyed to go track down the preference to change it. But we've left
> everybody else out.

So why have an 'Appearance' menu, where people can choose their theme,
background, fonts & colours?  I don't see how animation preferences
are any more complicated, and in fact I think they would fit very well
in the appearance menu.

If the Appearance menu had an 'Animations' tab, which allowed the user
to choose between the standard sets, and an Advanced button to define
and tweak sets, I think that would be pretty much perfect.


> So, maybe the timings are just too slow in general (they are, but not
> sure if speeding them up completely resolves the problem). Maybe the
> timings should speed up as you gain familiarity with the shell. Maybe we
> can actually detect the tolerance for speed of the user by watching how
> fast they mouse and how fast they double click.
>
> And then when every other option is exhausted, we can go back and see if
> adding a small number of preferences is the right way to do it. There's
> no way we'd want to add separate preferences for the speed of going to
> the overlay and the speed of switching desktops, but maybe a single
> "animation speed" slider that we derive everything else from would be
> appropriate.

Now these paragraphs are where I disagree.  Firstly, I'm quite happy
with the speed of the overlay - there's a delay launching applications
anyway so it doesn't get in the way.  And since loading the overlay
and switching workspaces are fundamentally different actions, why
should their speed be linked?

Secondly, while I like the idea of detecting tolerances, I can't see
how that is anything other than more complex than just letting the
user choose a speed they like.  If you guess wrong (which you will do
often), you're going to annoy users, changing something that they
can't put right.  It's going to need complex monitoring, careful
algorithms, and you're still going to annoy people.

So, let me make the case for a set of preferences.  Firstly, I should
be clear that I'm going to purely talk about animation preferences
(which I think is a reasonable compromise).

The way I see it, the choice of animation and the speed of the
animation have no real effect on the consistency of the UI.  These are
transient items.  Software isn't going to be developed to work with
them, programs are not affected by their speed.  So allowing the user
to change the speed or type of animation has little effect on the
consistency of the design.

Now, the reason I think flexibility would be good is that I can see
your users having wildly different needs.  Take these three cases as
an example:


1. My gran.
Old folks don't have the best eyesight or reflexes, and they're often
not the most competent of computer users.  They need as much help as
we can give them to ensure that they are comfortable with the
interface, and understand what's going on.

For that reason, the default interface needs to be set to a
comfortable speed, where the animations are obvious, and are used to
guide the user and help them understand what is happening.  You're
potentially teaching some very new users all about workspaces, and a
new way of managing their programs.

This is pretty much where I think gnome-shell is aiming at right now
(and where I actually think it's doing pretty good job).

The one thing I think that could be improved here is the transition
between workspaces - the programs float all over the place, which kind
of kills the idea of workspaces being entities in their own right.
The compiz cube gets this spot on in my opinion, rotating everything
round, desktop background, programs and all.  It's something that
everybody can get their head around and grasp easily.


2. Demonstrations
Here I'm talking about youtube demonstrations, and shop counter demos,
and it's where Compiz really shines.

Flashy effects might be annoying once you've used the computer for a
while, but they add a real 'wow factor' to the desktop.  I've
converted quite a few windows users at work by showing them compiz.

Please don't underestimate the impact a flashy set of effects has on
the uptake of Linux.


3. Power users
Now I'm talking about myself.  I already understand workspaces,
windows and task switching.  What I want is an interface thats as
unobtrusive and fast as possible.

Yes, I still appreciate the visual clues that come with a well
designed interface, but any sluggish or bouncy animations are likely
to annoy me.

To give a quick example, with compiz, my desktop cube rotates to a new
face in around 1/10 of a second.  Because it's not having to move any
windows, and the rotation happens for an entire workspace at once,
it's actually quicker and snappier with compiz on than with it off.

Oh, and I can still use ctrl+alt+drag to show off the cube effects
when I'm converting windows users :-)


Now, all three sets of users have very different requirements.  I
don't see how you can possibly have one group of settings that suits
all three.

However, all three can fundamentally use the same desktop.  The only
difference between 1 and 3 is the speed of the animations.  And the
only difference between 1 and 2 is the choice of animation.

And that is why I feel that pluggable animations, and a generic
settings editor (that's capable of storing pre-set configurations) is
a big win.

While pluggable animations is probably a fair bit of work, I think
it's worth considering firstly for the impact these animations can
have on sales, and secondly because I would like to think it's a way
you could bring the compiz developers on board to work with gnome.

However, preferences for the speed of the animations is something that
I think should be far simpler, and that I personally can't see a
downside for.

If implemented as a generic framework, it should be something that can
easily be applied to any animation.  All these settings are there for
animations anyway, all you're doing is clearly defining which
variables can be tweaked and what their upper and lower limits are.

If nothing else it should help with usability testing as you can hand
gnome-shell over to usability testers and experts, and they can tweak
the values themselves on the fly, rather than leaving all that to the
developers.

Ross

PS.  I do quite like the idea of speeding up animations slightly as
the user gets used to things.  Maybe have 4 default sets:  beginner,
normal, flashy, advanced.  You could have the system automatically
transition from beginner to normal after a couple of weeks or
something, or could have it ask the user if they would like the
animations speeded up?


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]