New keyboard layouts

Benjamin M. Schwartz bmschwar at
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> 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.


More information about the Devel mailing list