I have been reading a few Computer-Human Interface books by
Bruce Tognazzini and Jef Raskin. I want to learn how to
make good user interfaces.
An intersting idea came to me after reading about Fitt's
Law. Fitt's Law helps to quantify the time that it takes to
target an object on the screen with a mouse. Basically, it
will be easier and faster to hit the object if the object
is large and close to the current mouse position. Both
Raskin and Tognazzini site the example of the Macintosh
menu bar which is located at the top of the screen. It is
faster to use since the mouse stops at the top of the
screen, making its effective size is much larger.
I've been trying think of ways to exploit this property
further. Many unix desktops have virtual screens. Often you
can switch virtual screens by simply moving off the edge of
the screen. I have found this a little disconcerting. Often
the scrollbar is right on the edge of the screen - if you
don't take car you can miss the scrollbar and end up on a
different virtual screen. Some window managers fix this
problem by employing "friction". If you move the mouse off
the edge of the screen the virtual screen does not change
straight away, but if you keep it off the screen for a
configurable time the virtual screen will change to the
next one.
I thought about the way the mouse operates. Move the mouse
to the point corresponding to 0,0 on your mouse pad and the
mouse cursor will move to the point 0,0 on the screen. You
can effectively scale the distance you move the mouse on
the mouse pad to the distance it moves on screen by
modifying the speed of the mouse. The fast the mouse the
smaller the distance you need to move the mouse to move the
pointer the same distance on screen.
Some games make it easier to target an object by giving the
objects "gravity". If you move the mouse close to an object
the game will move the pointer so that it targets the
object.
Many desktops give the objects on the desktop a 3D look.
Perhaps this look could be exploited in combination with
Fitt's Law. Instead of treating the desktop as a flat plain
think of it as populated with ridges and bumps and
plateaus. The mouse should move the pointer fastest over
flat surfaces. Moveing over a slope will cause the pointer
to move slower, it has to move further after all. Consider
moving the mouse out of an application window. It will take
a few more rolls of the mouse to move the pointer over the
edge of the window. I think this sort of idea has been
tried out with "force feedback mice" but I have never used
one so I'm not sure how effective it is.