
A Modern Space Cadet - dcope
http://stevelosh.com/blog/2012/10/a-modern-space-cadet/
======
moonboots
I'm hoping the split spacebar that Microsoft introduced[1] starts catching on
with mechanical keyboard makers. The left side of the spacebar currently
wastes valuable real estate. Putting another backspace key would move the most
typed key into easy reach instead of forcing the right pinky to leap on every
error.

On the topic of keyboard ergonomics, I also believe that all keyboards should
be tenkeyless. It's another case of prioritizing an infrequent action (typing
on the numpad) over a frequent action (moving the right hand to the mouse).
Users who need a numpad can always get a standalone usb unit.

[1] [http://reviews.cnet.com/keyboards/microsoft-sculpt-
comfort-k...](http://reviews.cnet.com/keyboards/microsoft-sculpt-comfort-
keyboard/4505-3134_7-35454626.html)

~~~
smacktoward
Definitely. I'd just be happy if you could get a mechanical keyboard that uses
the layout that MS uses for its ergonomic keyboards, with the split keys and
the height gently swelling in the center where the split is. (Look at the
Natural Keyboard 4000 to see what I'm talking about:
[http://www.microsoft.com/hardware/en-us/p/natural-
ergonomic-...](http://www.microsoft.com/hardware/en-us/p/natural-ergonomic-
keyboard-4000))

Once you get used to typing on a keyboard that uses this layout, going back to
a standard flat and un-split layout feels slow and painful. I love mechanical
switches, but not enough to give up the much better layout of the Natural
keyboards to get them.

~~~
CrankyPants
The action on the Natural 4000 is so stiff that I know several people who
experienced severe bouts of RSI within hours to days of getting one.

Check out Kinesis: great layout, and great switches. One or the other just
isn't enough for many.

~~~
to3m
The Natural 4000 is a bit hit or miss. I've had 3; two were excellent, but one
is merely acceptable. The action of the keys isn't as smooth, and the space
bar initially required a slightly firmer press. The space bar seems to have
loosened up over time, though, and I got used to the key feel quicker than I
was expecting - but typos ARE much more frequent on that keyboard.

The inconsistency is a shame, because as a keyboard I really rate it. Good
shape, comfy palm rests, standard layout, unintrusive media keys, and the
stupid (but seemingly inevitable) F-Lock feature starts out disabled.

The action is not quite as nice as the previous Natural Pro model, but it's a
lot quieter...

------
kevinhamer
I spend an abnormal amount of time research keyboards and never understood the
US HHKB layout because of the diamond arrow keys. A better alternative in my
opinion is the KBC Poker: [http://deskthority.net/news-reviews-f4/kbc-poker-
sixty-s-tak...](http://deskthority.net/news-reviews-f4/kbc-poker-sixty-s-
take-t125.html)

I'd say a far better layout than HHKB is the KBC Poker.

By holding the Fn key, it changes WASD into the arrow keys; a much more
familiar layout to anyone who has ever played a game on a computer. There's
also a hotkey to switch right shift, right alt, right menu, and right ctrl
into up/left/down/right respectively. This again, I think makes perfect sense
for the few situations you might want to be able to single press arrow keys.
It also supports this sort of toggle for switching escape and tilde, which is
very friendly for anyone who hits escape more often than tilde (probably
almost everyone.) It also has things like volume control media keys via the Fn
key that I don't believe any HHKB has.

Direct link to its layout: <http://i.imgur.com/lGsld.gif> Direct link to its
layout w/ FN pressed: <http://i.imgur.com/3fvcV.gif>

------
sunkencity
I have the happy hacking keyboard professional 2. It's fantastic. The reason
the [fn] key is positioned off, and it's hard to get at the arrow keys, is
because the HHKB was specifically designed to make it hard to use the arrow
keys, as they are a curse. (stay on Home Row). There are alternatives, hjkl
for vim and or CONTROL-... for emacs dudes and dudettes.

~~~
snogglethorpe
Yup, the HHKB is a sparkling gem in a landscape littered with garbage.

And for those of you without lots of money, the low-priced HHKB-lite models
are also very nice (they have the same great layout and design, but more
pedestrian components).

[I have two HHKB-lites, one from the '90s, another bought a few years ago (the
former still working flawlessly).

In the landscape of computing, where most things seem obsolete overnight, it's
also rather amazing that the HHKB has managed to stay in production for so
_long_ ... although it's clearly a bit of a niche product, it's been around in
mostly the same form factor since the mid-90s! They're clearly doing
_something_ right!]

------
lri
There's at least one shortcut that uses control, option, shift, and command,
⌃⌥⇧⌘., which saves a sysdiagnose report to /var/tmp/.

The reason why key combinations like ⌥← don't work with Unicode Hex Input is
probably because they aren't assigned to control characters. I got ⌥← to work
after adding this to keymap 3 in the Unicode Hex Input.keylayout that comes
with Ukelele:

    
    
        <key code="123" output="&#x001c;"/>
    

You could also use DefaultKeyBinding.dict for inserting Greek characters, but
it wouldn't work in Xcode or shell views. (See
[http://www.hcs.harvard.edu/~jrus/site/KeyBindings/Greek%20Bi...](http://www.hcs.harvard.edu/~jrus/site/KeyBindings/Greek%20Bindings.dict))
Another option would be to add keymaps to a keylayout file:

    
    
        <keyMapSelect mapIndex="8">
            <modifier keys="caps"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="9">
            <modifier keys="caps anyShift"/>
        </keyMapSelect>
        
        ...
         
        <keyMap index="8">
            <key code="0" output="α"/>
            <key code="1" output="σ"/>
    

To assign another key to a holdable caps lock, check "Pass-Through CapsLock
LED status" and add something like this to private.xml:

    
    
        <autogen>
        --KeyToKey--
        KeyCode::N,
        Option::KEYTOKEY_BEFORE_KEYDOWN,
        KeyCode::CAPSLOCK,
        Option::KEYTOKEY_AFTER_KEYUP,
        KeyCode::CAPSLOCK
        </autogen>
    

I thought something like this might also work:

    
    
        <autogen>
        --KeyToKey--
        KeyCode::A,
        ModifierFlag::OPTION_R,
        KeyCode::A,
        Option::KEYTOKEY_BEFORE_KEYDOWN,
        KeyCode::VK_CHANGE_INPUTMODE_RUSSIAN,
        KeyCode::VK_WAIT_10MS,
        Option::KEYTOKEY_AFTER_KEYUP,
        KeyCode::VK_WAIT_10MS,
        KeyCode::VK_CHANGE_INPUTMODE_FINNISH
        </autogen>
    

Unicode Hex Input or Greek is not included in inputsourcedef.xml though.

------
thiderman
I'm almost ashamed of how excited I was while reading this. Default layouts of
keyboards are incredibly ineffective for programming, and I find customization
of layouts to be very important.

The best thing I ever did was adopting something I found on some dvorak
layouts; using AltGr to make any special symbols. Now, AltGr+qwerasdfzxcv
makes ()[]^${};/&! for me, which covers 90% of the special characters I write.
Not leaving the alphabetical keys for any of these does wonders; It's the
little things, really.

I'll also try to implement the shift-key training through xmodmap. I'll post
the results if I manage!

~~~
gcr
I ask xmodmap to make a compose key, which is probably something close to what
you're talking about.

You can also ask Emacs to switch to tex-mode typesetting with C-u C-\

Then, you can type λ with \lambda , and other common TeX symbols.

------
rbanffy
My favorite keyboard is, hands down, the Microsoft Natural.

However, I'm often tempted to try a 122 key IBM:

<http://pckeyboard.com/page/PC122/UB40B5A>

Is anyone here using a 122-key?

Another one that tempts me is the Sun Type 7 (the 6 is USB too, but is too
90's):

[http://www.oracle.com/us/products/servers-storage/desktop-
wo...](http://www.oracle.com/us/products/servers-storage/desktop-
workstations/030752.htm)

~~~
klausa
I just wish Microsoft (or anyone, really) made mechanical keyboard with
Natural layout.

That would be The Greatest Keyboard Ever Made.

~~~
bosie
what about the kinesis advantage? <http://www.kinesis-ergo.com/advantage.htm>

------
joseph
I'm not sure I would like the caps lock doing double duty as both control and
escape, since it seems like it would be easy to accidentally use it wrong. I
always remap the caps lock to control, but long ago I trained myself to use
control-] in place of escape so I never have to reach for that dreaded key
when using vi, and I can also use emacs happily.

~~~
hudibras
Probably everybody reading Steve's post had a "eureka" moment on different
sections. For me, it was the dual-duty caps lock key idea. I've always used
"ii" remapped to ESC in vim insert mode--that changes today.

~~~
gcr
How did you type Hawaii or Radii or Naziism before?

------
bergie
It is a shame most of the really good keyboards require so much power that it
precludes Bluetooth or mobile usage. I'd love to have a HHKB if it worked
wirelessly with both my laptop and tablet.

[http://beastwith.in/2012/05/17/usiung-power-hungry-
tactile-k...](http://beastwith.in/2012/05/17/usiung-power-hungry-tactile-
keyboard-ipad/)

~~~
snogglethorpe
I wouldn't be surprised to see bluetooth/battery-capable versions of some of
these in the future. It would seem the next logical product upgrade.

------
EchoAbstract
Oddly enough the ctrl key in the home row is a Unix thing (I think it's a Sun
invention, but I don't recall). On the original space cadet keyboard (and all
the Symbolics keyboards), Rub Out is located where modern day Caps Lock is
found (see: <http://en.wikipedia.org/wiki/Space-cadet_keyboard>). Ctrl is
still located on the bottom row.

Has anyone tried remapping a delete key to where the Caps Lock key is found?
Is there anyone with a real space cadet keyboard or symbolics keyboard that
can comment on using it with vim or emacs?

~~~
ScottBurson
CTRL next to A was, I believe, its original location. That's where it was on
the Teletype Model 33, which dates back to 1963, and I'm not aware of an
earlier keyboard that had a CTRL key.

In the 1970s, most terminals continued with this placement. I believe the
modern practice of putting Caps Lock there came in with the first IBM PC --
copied, of course, from their typewriter keyboards.

Being a longtime Lisp Machine user, I had that key mapped to Backspace on my
Unix workstations into the late 1990s, but I couldn't do that remapping on my
PowerBook, so I gave up -- it was too confusing to have Backspace in different
places on different machines. (I think the remapping is actually possible with
OS X, but I've never bothered. It's certainly possible with Linux.)

~~~
EchoAbstract
I didn't know that about the ASR-33 (haven't actually seen one), all my
experience has been with unix and PC keyboards (plus some WYSE terminals).

I agree with it being confusing to have the same key jump around while you
type, which is why I gave up re-mapping altogether (at my last job I was using
5 different systems that each would have required a remap, and I wasn't able
to remap on each system). To much dissonance when trying to figure out why a
key is not doing what you think it should be doing.

------
verisimilidude
I really wish I could take part in all this keyboard fun. Unfortunately,
there's a 20 degree upward curve in the middle of my right forearm (due to an
old injury). This limits my options to the Kinesis Freestyle [1] and maybe the
Goldtouch. The Freestyle is okay, but I miss the switches of more substantial
keyboards.

Can anyone recommend a more hacker-friendly split-in-two keyboard along the
lines of those discussed in the article?

[1] <http://www.kinesis-ergo.com/freestyle.htm>

------
shabble
This is an excellent compilation of info and tricks and I look forward to
using some of it myself on the software side.

On the hardware side, I don't think I've ever seen anything surpassing
<http://mykeyboard.co.uk/microswitch/> in sheer dedication to the goal of a
truly efficient and comfortable/safe keyboard. I wish I had the space, money
and time to attempt something similar (also not a laptop as a primary machine,
but that's another matter entirely)

------
bwr
The Japanese layout version of the HHKB looks really nice:
<http://www.pfu.co.jp/hhkeyboard/lineup/pdkb420w.html> Not sure where you can
buy one though.

Edit: Looking at it again, some of the programming related symbol keys are in
slightly strange positions and would require some relearning. Plus the right
shift is tiny.

------
paddy_m
Does anyone know how to setup a keyboard to pass absolutely all keys to a VM?

I like OSX for power management and driver compatability, but I sorely miss
having a tiling window manager. I would like total pass through of keystrokes
to a VM. Dropping out of the VM could be accomplished by running a program on
the host machine via ssh from the VM.

------
nullc
Inspired by the space cadet: <http://people.xiph.org/~greg/xmodmap.txt>

Capslock is left control; left control is greek (gets the two sets of
alternative characters listed in the file). task button is compose.

------
cgrubb
Great post. Consider the following changes to the Greek mapping to be
consistent with Greek keyboards and the "greek" input mode in Emacs:

    
    
        q Q: ; :
        w W: ς Σ
        y Y: υ Υ
        u U: θ Θ
        j J: ξ Ξ
        x X: χ Χ
        c C: ψ Ψ
        v V: ω Ω

------
AndreasFrom
Have anyone implemented any of this on Windows, perhaps with Autohotkey? Is it
possible?

~~~
to3m
Yes, you can do it with AutoHotKey. I tried it a few years ago but didn't
really get on with it. I think it might have caused problems with some
keyboard shortcuts I use - a lot of my emacs shortcuts are designed for
activation with one hand pressing modifier keys and the letter key.

Anyway, just use the < and > modifiers to indicate left or right Shift
specifically. For example, assuming QWERTY:

    
    
       <+q::Send q
       >+p::Send p

~~~
cpdean
but wait, this doesn't get at having shift behave normally unless it is the
_only_ key that gets pressed. Does it?

~~~
to3m
No, sorry - the bit from the article that was in my mind as I replied was
forcing one to use the opposite Shift, because I'd tried that myself. I didn't
think about the use of Shift as a key on its own (I really wouldn't get on
with that myself as I tap the meta keys a lot while I'm thinking).

------
steverb
I'm still rocking my 1990 IBM Model-M. These things are truly indestructible.

~~~
aidenn0
I wore one out a year ago. It was going through an AT to PS/2 adapter then a
PS/2 to USB adapter. The "S" key started only working on about 9/10 keystrokes
:(

~~~
steverb
It may not be worth the effort, but you can still get replacement parts for
them. Or just go with a new Unicomp.

------
ef4
Thanks, I love the shift-key training wheels idea. It caught me starting both
of these sentences with the wrong shift key.

------
duiker101
I love the shift click to get brackets trick, any idea on how to get it on
vim?

~~~
stevelosh
You mean pressing shift to get parens? I doubt it's possible withing Vim.
Certainly not within a terminal Vim (the terminal emulator almost certainly
wouldn't pass a bare shift through to Vim at all). I'm pretty sure you have to
do it at the OS level like this.

~~~
duiker101
Uhm, ok perfect, thanks i'll investigate!

~~~
bosie
could you please post your findings?

------
zellyn
Anyone have a simple way to achieve the Caps-lock training wheels in linux?

~~~
zellyn
I believe this stackoverflow question, asked today, would give us the answer:
<http://stackoverflow.com/questions/12704366>

