Re: Design for Keyboard Shortcut Behaviour: Quasimode Command System

Karl O'Keeffe <[email protected]>
Newsgroups gmane.comp.graphics.y.devel
Message-ID <[email protected]>
On May 23, 2004, at 1:38 am, Augie Fackler wrote:

> [...] Could we make the quasimode entry key configurable, so that the 
> kinesthetic people have built up for a specific location isn't lost? I 
> occasionally get myself in trouble when using Windows, because alt-z 
> is the same kinesthetically as cmd-z on a Mac.

That is an interesting point, something well worth testing out. (I also 
use both Mac and Windows keybaords, and I had the same trouble in the 
beginning. I now find that I seem move between the keyboards with 
little to no trouble. Although I'm not saying that is valid excuse for 
avoiding this issue :)

> Personally, I think this isn't so good. On Macs there has 
> traditionally been a couple of ways to do very common tasks, because 
> what is intuitive is slightly subjective. As an example, right now I 
> can use a menu item, command key, or a toolbar icon to save this note 
> as a draft. Efficiency isn't the only thing we have to look for, it 
> also has to be intuitive(If efficiency were of more value than 
> intuitiveness then we'd all be using RPN calculators, but that won't 
> happen, because use of such a calculator isn't nearly as intuitive).

A good point, my hope is that the QCS can be made *easy enough* for 
novice users. We just need to make it such that the user can find the 
command they are after. Initially this will probably just be done by 
listing the commands and their descriptions. There may be some problems 
with this, like an overload of text. So adding icons/diagrams or 
something may help. Or give important/most used commands some 
differentiation (bigger text/different colour) in order to draw the 
users eye. Any ideas in this vain would be greatly appreciated.

One of the problems of having both the toolbar button and the command 
shortcut is that it is easy to become habituated to using the toolbar, 
which is a lot less efficient that using the shortcut. If we removed 
the menu item and the toolbar button, the user would be forced to use 
the most efficient method. But then we lose the great benefit of the 
toolbar, which is the visibility of the commands. I'm kind of hoping 
that providing visibility using the command list would alleviate this, 
I'm prepared for the fact that it may not, but I want to try it and 
see.

I don't want to imply that I favour removing any mouse access to the 
system at all, or that I want to enforce ultra strict monotony. My 
current feeling is that we should provide single easily discoverable 
and efficient keyboard commands, and single easily discoverable mouse 
commands. Thus I hope to avoid forcing the user to change input methods 
(e.g. so users of a web browser don't have to key moving to the mouse 
to click a link, and the move to the keyboard to go back).

Ideally the system would somehow encourage the user to use the keyboard 
shortcuts over mouse commands (where they are more efficient). Anyone 
with any bright ideas as to how to do this let me know.

> Might I suggest using ALT on Windows keyboards and Apple on Macs? 
> Those are kinesthetic equivalents.

You may. If that seems to work better than we can use that.

> Also, I agree with the earlier comment about popups being annoying. 
> Why not just show the shortcut items next to menu items like everyone 
> else? For non-menu items, holding down the [command] key could change 
> the label of controls with shortcuts to contain the shortcut as well. 
> I have seen that a couple of times, usually after a few hundred 
> milliseconds.

Hopefully by only showing the pop-up after a delay it will avoid 
annoying people, obviously we'd have to do a few tests to see if this 
is actually true :)

Not sure I understand what you are on about with the changing labels of 
controls. Do you mean the behaviour in newer versions of Windows where 
holding down the ALT key displays the underline indicating the ALT-key 
combination to move focus to that control?

If you do, I think I would prefer it if the underline was always 
displayed, it's not very distracting and adds some visibility to the 
commands. I was hoping that Y would behave similarly to Windows with 
respect to moving focus between controls, maybe making it a little more 
obvious for novice users (because I hardly ever see anyone taking 
advantage of the ALT-key shortcuts, including me).

>> <snip>
>> Commands can have parameters, such as the start application command 
>> accepting the name of the application to start. A space following the 
>> command name indicates the intention to enter a parameter. The list 
>> of commands is then replaced by a list of parameters.
>
> Why not use a dialog box of old for this?

I am attempting to reduce the use of modes (most dialog boxes are 
modal).

> The alt-tab does break the old rule, but on macs, at least, it allows 
> key commands to be sent to a backround app without bringing it to the 
> front. I can quit 6 apps just by holding command and hitting tab and q 
> 6 times.

A (very) brief check of this behaviour shows Quit seems to be the only 
command that can be sent to background apps while part way through an 
alt-tab. You'd probably have to convince me of the usefulness of 
sending commands to background windows in general before I'd consider 
this something worth looking into (unfortunately I don't have enough 
time to examine every cool idea).

> I don't see this as necessarily a good thing. Multiple modifiers can 
> be just as easy to hit as a single one(for those on a mac, 
> command-option isn't really harder to hit than just command or just 
> option, once you know where to aim, windows keyboard, same for 
> windows-alt). Commands can already take parameters by bringing up a 
> dialog, like the Find command in most text editors.

A good point about multiple modifiers not always being evil. I am 
beginning to like the Mac behaviour of CMD-R: Reply, CMD-SHIFT-R: Reply 
to All. Where adding an extra modifier changes between related 
commands.

I'd like to avoid dialog boxes wherever possible. For Find I'd like to 
implement a LEAP style system as detailed by Jef Raskin in the 
Technical Specification for The Humane Environment 
(http://humane.sourceforge.net/the/spec.html - its a long read, so 
maybe do a Find for LEAP).

>> If The QCS is integrated with Y applications and widgets, as well as 
>> the window manager, Y can benefit from a better command system than 
>> exisiting GUIs.
>
> I was going to suggest it be implemented alongside a more traditional 
> system, but I think that would be mutually assured destruction. Some 
> apps would favor one system over the other, and we'd have a KDE vs 
> GNOME kind of thing on our hands.

Ideally I'd love for my ideas to be so brilliant that they just become 
the default Y behaviour. I am a big support of the single interface 
behaviour (like on Mac and Windows), rather than the fragmented 
interface design on Linux. I see Y moving in this direction as 
indicated by the single widget set.

Hopefully we could avoid locking the user in to a single behaviour (I 
know how Linux users love to use diverse weird and wonderful 
interfaces/window managers). Provide a good default interface, but 
still allow people to use something else if they feel the need.

>> <snip lots of roadmap things>
>>  * Replacing 'Alt-Tab' behaviour with go to window behaviour, which 
>> is better
>
> That is probably the only command which is kinesthetically the same on 
> all 4 platforms I use(Win32, Mac, KDE, GNOME). That, at least, should 
> remain a holdover.

Indeed, my idea for having a go to window command instead just turned 
out to be way to complex and almost impossible to make efficient. I'm 
still not entirely happy with the way alt-tab behaviour works (have to 
keep looking to see where in the list the window we want is), but I 
can't come up with anything better :)

Karl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.