
The Invisible Interface - jonphillips06
http://spaceandtim.es/posts/the-invisible-interface
======
sebular
Though I liked this post, it confuses invisible interfaces with keyboard
interfaces, and this is a mistake that many people seem to make.

Vim is actually a perfect example for what I'm talking about. In my
experience, it's a very polarizing tool, because people either know how to use
it (and love it) or don't (and hate it).

This is because vim's interface is both keyboard-based and invisible. It's
powerful because it's keyboard-based, but it's difficult to learn because it's
invisible, and therefore requires a great deal of memorization.

Something I wish more UI folks would try to tackle is a visible keyboard
interface. Use the screen to provide feedback to the user that shows what keys
are being pressed, and what potential key combinations can stem from that.

In a basic example, let's say a program implements the usual Ctrl + X/C/V for
cut/copy/paste. If the user holds down Ctrl, the UI should detect that and
show the user that X, C, and V are all potential key combinations, and it
should explain what each of those do.

The reason why the GUI became massively popular is because the interface is
discoverable, and doesn't require the user to pore over a manual. The reason
why power users hate the GUI is because it doesn't use the keyboard. I see no
good reason why we can't make keyboard-based GUIs that make everyone happy.

In fact, the best part about a keyboard-based GUI is that once it helps you
learn how to use it, you could simply disable the graphical component to
reclaim that screen real estate.

~~~
Cyykratahk
Windows explorer has "visible keyboard shortcuts". Press Alt and a bunch of
little tooltips display beside each button on the ribbon, showing the letter
to press. Some are even chained shortcuts.

Screenshot: [http://i.imgur.com/gNDZ5YK.png](http://i.imgur.com/gNDZ5YK.png)

------
pandler
Another under-appreciated interface that I find useful and actually enjoyable
is mouse gestures. A simple example of this is swiping left or right with a
Mac trackpad to navigate history in a browser. Older Opera browsers also had a
rich mouse gesture interface with which you could right-click-drag your mouse
in various patterns (L, backwards L, straight down, etc...) to perform various
actions.

Similar to keyboard shortcuts that keep your hands on the keyboard in textual
interfaces, mouse gestures ensure your hand doesn't leave the mouse in
programs where the mouse is the dominant mode of interaction, like in CAD
design.

One of my favorite features of SolidWorks (when I still did mechanical design)
was their mouse gestures. From their docs [1], "You can use mouse gestures by
right-dragging in the graphics area to invoke a preassigned tool or macro from
a drawing, part, assembly, or sketch." That means I could draw a box, swipe,
extrude, swipe, draw some lines, swipe, draw a circle, swipe, cut, and be
done. Because it was customizable, I could perform most of my most common
actions without navigating menus or my mouse ever leaving the drawing area.

[1]
[http://help.solidworks.com/2012/English/SolidWorks/sldworks/...](http://help.solidworks.com/2012/English/SolidWorks/sldworks/t_using_mouse_gestures.htm)

Edit: That link also has a picture of the mouse gesture interface for those
interested.

------
varkson
I appreciate the point the writer is trying to make, although I wouldn't
exactly consider Vim the bastion of usability. It's incredibly expressive
though and once you learn a few rules you can wield a whole lot of power. I'd
like to see more of this kinda setup in other programs.

