5 comments

[ 3.9 ms ] story [ 28.3 ms ] thread
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/...

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

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.

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

An example of the visible keyboard interface you describe: the “Context-Aware Actions” sidebar at http://www.openvim.com/sandbox.html. That page is a poor implementation of Vim, but its live help interface has the basic idea right.
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.