A Modern Space Cadet
stevelosh.com
stevelosh.com
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...
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.
Check out Kinesis: great layout, and great switches. One or the other just isn't enough for many.
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...
EDIT: I may have misinterpreted you; the split spacebar I'm talking about is split between the two halves of the keyboard and can move completely independently of the other half.
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
Any suggestions for a good alternative?
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!]
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=""/>
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...) 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.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!
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.
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...
That would be The Greatest Keyboard Ever Made.
I only got the 122 because they were out of stock of of all the Classic and Space Saver when I was ordering, and truth be told I can't think of any intrinsic advantages that the 122 brings. I do love the layout of the arrow keys (with Home in their middle), but the singe best feature of the board is the BS switches.
Back when I bought mine there were a few more configuration options for the 122, one where the additional F keys (13 - 14) would send a "normal" F13 signal, and one where it sends shift + the F key below it. For example, F13 would send Shift-F1. Seeing how unicomp does not give you options any more, you might want to check what the default is.
Also, if you like the Natural, you might be in to ergo boards? You might like the Truly Ergonimic[1] with MX browns. Watch out of the placement of the important programming keys though, since they are a bit off (~ [ ] { } ; : / \ etc.)
http://beastwith.in/2012/05/17/usiung-power-hungry-tactile-k...
For a second I was excited to see a really compact and portable keyboard - but I want/need a wireless one. A shame..
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?
The Colemak keyboard layout does that.
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.)
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.
remove Lock = Caps_Lock
clear Lock
keysym Caps_Lock = Control_L BackSpace Escape BackSpace
add Control = Control_L
I've been playing with KR4MB and set Control_L to Control_L (+ When you type Control_L only, send Delete) + [KeyRepeat]This is causing some angst, as I've discovered I sometimes tend to hold down the CapsLock key before hitting another key. It's long enough for multiple deletes to be sent to an application (eg using Vrome in Chrome).
Shift_R has been remapped to <Esc>.
Can anyone recommend a more hacker-friendly split-in-two keyboard along the lines of those discussed in the article?
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)
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.
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.
Capslock is left control; left control is greek (gets the two sets of alternative characters listed in the file). task button is compose.
q Q: ; :
w W: ς Σ
y Y: υ Υ
u U: θ Θ
j J: ξ Ξ
x X: χ Χ
c C: ψ Ψ
v V: ω ΩAnyway, just use the < and > modifiers to indicate left or right Shift specifically. For example, assuming QWERTY:
<+q::Send q
>+p::Send p Ctrl::
Send {esc}
Return
Then run the script and AutoHotkey will sit in the background, waiting to substitute a lone ctrl for an escape-key-press.I haven't figured out the shift-parens yet, unfortunately.
This is from memory, so bear with me if its not perfect, but I setup xmodmap with
keysym 50 = Shift_L parenleft Shift_L keysym 62 = Shift_R parenright Shift_R
Xmodmap allows you to define multiple symbols for a key. The first symbol is what you get with no modifiers; the second is with shift; the third is with Mode_switch (or AltGr, depending) and the fourth is with Shift and AltGr. There's sometimes although a 5-8, but that varies by platform and I haven't done enough experiments to really nail down what those are for linux these days, OR if those are tied to mod1/mod2/etc. instead of shift/altgr/mode_switch or specific modifiers like that.
Anyway, all the keysyms always defined the first three anyway (no modifiers, shift, and Mode_switch) and some defined the fourth. I don't have or use a Mode_switch key (yet) but I may try that out as a 'Greek' key or such, but since 90% of the time I'm programming I'm not sure if I'd ever use it.
My lines above defines parenleft as the symbol to send if key 50 (the left shift key) is pressed while the shift modifier is active. So, I can use the right shift to turn on the shift modifier, and then left shift turns into a left parenthesis key. Similarily, I can use the left shift key to turn the right shift into a right parenthesis.
So, to type a pair of parenthesis back to back "()" I press right shift, press left shift, release right shift, and tap right shift. It's certainly more awkward than what Steve was able to setup, but hey, its where I've got so far.
You can define custom translations keysym for some terminal emulators. I've done this in urxvt in order to free up C-j and C-S-[letter] combinations for my own use.
urxvt will allow you to translate the Shift_L keycode into "(" or "()" or "i_love_hacker_news_<3". And it still does it's job as a modifier too. The only problem is that "i_love_hacker_news<3" will be output as soon as the press event is received, so you'll output "(" even when you press shift as part of a chord.
You can write perl scripts in urxvt that can capture X keyboard events, and maybe your script could only output "(" if it detects that no intermediate X event was detected between the press and the release of "(".
I'm not totally sure that you get THAT much info from urxvt, but it's the best approach that I know of. As an alternative, maybe you could write a program to intercept X events before they reach the terminal (and/or any other program).
That's about as far as I care to go right now.
Let me know if you get something working, I'd be interested in using it too.