#1721 NORM Trial-2: Standardize keyboard shortcuts
Zarro Boogs per Child
bugtracker at laptop.org
Thu Jun 14 16:24:07 EDT 2007
#1721: Standardize keyboard shortcuts
-------------------------------+--------------------------------------------
Reporter: bert | Owner: Eben
Type: defect | Status: assigned
Priority: normal | Milestone: Trial-2
Component: interface-design | Version:
Resolution: | Keywords:
Verified: 0 |
-------------------------------+--------------------------------------------
Changes (by Eben):
* cc: walter, marco, jacobolus at gmail.com (added)
* status: new => assigned
Comment:
Yes indeed, I do need to get some details on this into the HIG. For the
most part, we're going to try to keep with convention where possible, so
that people can translate commands easily both to and from XOs. The
letters might not match the functions (ctrl-S would map to "Keep", for
instance), but I think that's OK; In many cases, English won't be the
first language anyway.
'''Key breakdown'''
At first glance, I think CTRL will be the main modifier key (And I want to
get a diamond icon on it, so it's easy to reference - the mockups on the
wiki already assume this). It will be used to define "base" shortcuts.
The ALT key should be used for ''optional'' modifications (or ALTernates)
to base shortcuts. For instance, CTRL-S will do a standard "keep" and
ALT-CTRL-S could be "keep as...". CTRL-V is paste, ALT-CTRL-V is "paste
and remove from clipboard." (http://en.wikipedia.org/wiki/Option_key)
The SHIFT key can work in two ways. Its primary use would be as an
''invert'' modifier, such that it inverts the meaning of the base
shortcut. For instance, CTRL-Z is undo and SHIFT-CTRL-Z is redo. CTRL-
TAB is next activity, SHIFT-CTRL-TAB is previous activity. SHIFT can also
be used to create a second set of "base" shortcuts which are less often
used. (http://en.wikipedia.org/wiki/Shift_key)
I'd prefer not to expose the FN key for lots of crazy key combinations.
Instead, it should be reserved solely for system level operations, and
even then should ideally only map to functions which are printed on the
keyboard itself.
'''Keybinding palettes'''
In conjunction with this, we also need an implementation for a keybindings
control palette. This will exist in two places: the global prefs and the
activity prefs. We'll also need a simple API for "declaring" all
potential actions that an activity can perform (even ones that don't have
a shortcut defined by default) so that kids can adjust presets or add
additional shortcuts as needed. This palette will, as much as anything
else, serve as a reference for kids, even if they don't intend to change
them.
'''Modifier key icons'''
Finally, getting things right her is going to require some modifications
to the keyboard. My proposals for icons are:
- CTRL: ♦ (U+2666) Solid black diamond. I came up with this because
it's both very iconic and also quite distinct from the other icon elements
in the interface, which have been mostly circles and squares. The deal
was closed for me when I discovered that this has historic value as well,
since many early keyboards had a "meta key" which boasted this symbol.
(http://en.wikipedia.org/wiki/Meta_key)
- ALT: ⌥ (U+2325) This one is harder to describe, but this Apple's
standard for ALT (actually option) key. From the wiki: Apple commonly
uses the symbol ⌥ to represent the option key. This symbol represents a
microswitch, allowing the current to go one of two directions. Though
isn't meaning isn't necessarily clearly derived, it does give us a way to
represent the key visually in software, which is the important part. I
also mocked up a slight modification to this icon which we could use, with
an arrowhead at the right end of the lower line. This made it look like
the arrow was veering off the straight course, taking an ALTernate route.
- SHIFT: ⇧ (U+21E7) This is a standard SHIFT icon. We're not explicitly
using this character, but the one already designed and printed on the
keyboards closely resembles it.
I'll try to get all of this info into the HIG in the near future as
well...I'd like feedback on all of these ideas as well.
--
Ticket URL: <http://dev.laptop.org/ticket/1721#comment:2>
One Laptop Per Child <http://laptop.org/>
More information about the Bugs
mailing list