New keyboard layouts
Benjamin M. Schwartz
bmschwar at fas.harvard.edu
Wed Apr 28 13:02:20 EDT 2010
On Wed, 28 Apr 2010, Walter Bender wrote:
> On Wed, Apr 28, 2010 at 12:24 PM, Tiago Marques <tiagomnm at gmail.com> wrote:
>> I was just looking at the layout again and just noticed the new arrow keys
>> placement.
> We debated this one. A shorter shift key would be difficult to type
> on. We opted to emulate the hjkl vi arrangement.
Keyboard layout is virtually the ultimate bikeshed painting problem
... but here's my opinion anyway.
Ins and Del are Harmful. You probably know Ins because when you
accidentally bump it, your editor switches into "overwrite" mode, and
every character you type deletes another until you figure out what
happened and hit Ins again. "Del" is the reverse erase that nobody
wants. Apple, and the XO-1, have eliminated Ins and relegated Del to
Fn+Erase. I recommend removing both.
Getting rid of those keys frees up valuable space that can be used,
for example to move += to the top row, replaced by ?, replaced by
up-arrow. No more hjkl.
Some other notes:
1. fn is a bad key because software can't reuse it. For example, on
the XO-1 we tried to make fn+F1 send an F1 press to the activity
(instead of going to the mesh view), but it was not possible because
the fn key is treated specially by the keyboard microcontroller, and
not forwarded to the OS. There was no way to tell from software
whether a user had pressed fn+F1 or just F1.
Accordingly, on new keyboards, OLPC should consider pushing this
special handling into the software keyboard mapping as much as
possible. It's hard to see why fn+Spacebar needs to be a new keycode,
and not just a series of standard up/down events. The only tricky
spot I can think of is PageUp/PageDown/Home/End.
2. We have a lot of redundant modifier keys. fn, altgr, and hand-key
could all be a single key, because they are never used together. If
the keyboard controller would turn altgr+left into Home (etc.), there
should be no regression of functionality, even under windows.
--Ben
More information about the Devel
mailing list