Hacker News new | past | comments | ask | show | jobs | submit login
How a keyboard changed what I look for in an editor (avdi.org)
120 points by luu on June 14, 2015 | hide | past | favorite | 148 comments



This is why I always loath buying a new laptop. The first thing I have to do is look at the keyboard layout. Where did these designers try to fit the cursor keys this time? Where did they try to innovate on space efficiency using those 'disposable' keys: Home/End/PgUp/PgDn/Ins/Del?

I learned on an IBM compatible 101 (now 104) keyboard. I trained my hands against the 'correct' cursor management key layout: the inverted-T and the cluster above. It's not optimal, but neither is the saxophone. That said, you don't see too many saxophone designers changing the placement of the keys or inventing new fingerings. Not so for keyboards. Most of the innovation happens because of some industrial design requirement or some designer's whim (e.g., why do we still have this insert key here? Nobody uses it! Let's get rid of it and add a larger delete key). I'm not referring to the more interesting innovation happening on behalf of heavy keyboard users, like those mentioned in the article.

It used to be somewhat difficult to find modern 101/104 keyboards. I thank the code gods often, now that we have such a rich ecosystem around conventional keyboard designs. I now have a problem where I look for an excuse to buy a new keyboard to try out for one of the spots that I program at frequently, so I can just move my laptop and plug in. My favorite so far is the Cooler Master QuickFire Tenkeyless.


Kind of off-topic, but ironically the saxophone is probably the most optimal of the woodwind instruments. It was designed much later than the others, and so Sax was able to take the best parts of the others and avoid all the annoying bits. The saxophone, for example, overblows an octave rather than a twelfth like the clarinet, so you can use the same fingerings in both registers. There's also only one key to be pressed by the thumb, unlike the 13 (!) for the bassoon (9 for the left thumb, 4 for the right). This engineering is one of the reasons all of the saxophones (soprano, alto, tenor, bari, etc.) have a similar sound, whereas (say), all the members of the clarinet family sound pretty different.

[0] https://en.wikipedia.org/wiki/Saxophone#History


That's a fascinating comment! As a piano and guitar player only, I have little to no understanding of other instruments. I was shocked when watching Whiplash that drums needed to be tuned to particular keys.

This reminded me of a really fun talk from this year dealing with teaching (and internalizing) music theory using a Ruby DSL: http://confreaks.tv/videos/mwrc2015-writing-music-with-ruby-...


> There's also only one key to be pressed by the thumb, unlike the 13 (!) for the bassoon

Surely a middle ground would be preferable. One of the biggest shortcomings of the modern keyboard is that each thumb is essentially responsible for only a single key each, while the thumb is by far the most flexible and strongest of the digits.


That's true. Part of the problem is that for the smaller woodwinds, the right thumb is responsible for holding the weight of the instrument. When a clarinetist is playing an open G, no keys are depressed, and so the instrument is supported only by the mouth and the right thumb.

The reason the left thumb has so few (saxophone and flute each have one, clarinet has two, oboes have one or two, bassoon is an anomaly) is because it usually operates the register key, which has to be held down much of the time while the other fingers do most of the work (not unlike a shift key for typing capitals). Having the left thumb do this is much easier than, say, the pinky, since you lose a lot of dexterity in your ring finger if the pinky has to stay depressed.

Some less common instruments do have more thumb keys; high-end bass clarinets have an extended low register and the two additional notes are operated by the right thumb. Bass clarinet typically uses a peg or a neckstrap, so the thumb is freed up a little bit to do some work.

(For a moment I forgot the main topic of the thread was computer keyboards and thought you had very strange piano technique!)


Interesting; so it sounds like rather than ignoring how thumbs work (like computer keyboards) they choose to take advantage of the thumb's superior strength rather than its flexibility.


Right. It probably also has to do with the fact that it's optimized for speed. The thumb is flexible, but not particularly fast. Many of the thumb keys on the bassoon are for notes that aren't played often, or alternate fingerings that are more in tune than the standard ones, and can be swapped out for other fingerings when speed is required.


As the earlier X series 12" ThinkPads show, there is simply no reason to move keys around for "space". IBM showed it's easily done, that a full sized layout fits on a small device. These new laptops with compromised layouts are sad. It's just stupid mimicry or terrible "designers" putting questionable form over function.

Looking at available ergonomic mechanical keyboards, I think there must be a curse, that every kb designer must do something silly for no reason. I just bought a $200 ergo mech keyboard, and it comes with dedicated Undo/Copy/Paste keys. They actually added a key that sends CtrlZ, which is probably the easiest combo to hit, on a higher end keyboard aimed at pros. Wtf? (I'd pay hundreds for a MS Ergo 4000 with good switches.)


The situation with split mechanical keyboards is very odd. Fans of non-split keyboards have a wide range to choose from, including keyboards that have an entirely standard, fairly traditional layout, with every key in its usual place. Those that prefer split keyboards, on the other hand, have to choose between a selection of tenkeyless freaks of nature without even a standard navigation cluster between them.

(I would also buy a MS Natural 4000 with decent switches. Not sure I'd pay hundreds, though, because I'd like to buy several. Additionally, the fact the 4000 is so cheap is one of the reasons it's so good.)


These new laptops with compromised layouts are sad.

Especially when you see empty space on each side of the keyboard, which isn't being used for speakers or anything else.

I have an X60 and while its layout is not exactly like the standard 101-key, they did manage to fit all the keys in there including Scroll Lock/Pause Break.


What I love doing - re-training myself to use a PC-101 keyboard after a week or some days using the rMBP on the road .. nothing funks up my flow more (in a good way) than going from the hotkeys of OSX to those of a moderately standard fvwm-based Linux desktop, and having a full keyboard switch-up to boot. I kind of think such small experiences are good for you, so I delight in it happening when it does ..

However, it terrifies me to use my friends' Dell and Lenovo machines, the key placement is often perplexing. I somehow think the layout is intended to bond the user to the platform, though, and few companies apply that as succinctly than Apple.


I switch the capslock and the control key, so that I have a fairly standard 101 XT key keyboard layout. I also "flip" the function keys, so that I have to press fn-f12 to increase the volume. I do that through keyboard pane of System Preferences. ctrl-F4 is then a goodie, that switches windows through the z-window buffer, independendt of the App. You can also mod your keyboard layouot through the cocoa text system, and then you all of suddenly have keys like ctrl-shift a and ctrl-E, ctrl-G (cancel) that works every where. I basically have emulated most of emacs in my modification of the cocoa text system, so that it works in every app that uses the cocoa text system. I have also bound up a lot of automator services to the free combinations of function/modifier keys. I am a happy user.


Agreed. I often have to use my laptop keyboard, as I'm sure everyone else does. That does make it a luxurious experience to get back to my mechanical keyboard (and external monitors). I look forward to getting back to my cave. Good perspective.


For some years now, I've used Windows/Linux on the desktop and a Mac laptop. I no longer have trouble switching between those two, but I get all screwed up when I try to use somebody's Windows laptop...


The ironic thing is that the "standard" layout was an "innovation" upon earlier layouts, and you can easily imagine a long-time user of the IBM AT keyboard leveling the same kind of complaints: "Having the function keys on the left was so much better! Why did those stupid arrow keys have to get in the way and make the numpad so much further away from the main cluster?"

Of course it's not really the same since the AT design hadn't been around for decades, but it's worth remembering that keyboard evolution stopped at an essentially arbitrary point rather than at some imagined pinnacle of design.


I wish Apple would adopt the Surface approach and just give me/us a Mac tablet. Would be great to have a Mac where I can raise the screen up to eye level (with an embedded stand) and use with my own custom keyboard.


Absolutely! I'm currently using a Surface Pro 3 in conjunction with the extremely versatile Sculpt Ergonomic Desktop.


I LOVE my Sculpt Ergonomic keyboard! Have mixed feelings about the mouse though (I still haven't found a way to use the back button on it with my Mac). It would be perfect if Microsoft found a way to put a Thinkpad's track point into it!

On the off chance, has anyone found a good carrying bag for the Sculpt Ergonomic keyboard?


The keyboard's alright, but the spongy wrist pad is challenging to keep clean. I like the ergonomics of the mouse, but it's a dirt collector. They need to find a new material for the bottom that doesn't accumulate grit. The biggest problem with the Sculpt is that you can't associate new devices with a single dongle, so you'll tie up more USB ports unless you buy preconfigured combos. That's extremely shortsighted compared to Logitech, which allows you to associate up to 6 devices to a single dongle.


In fact I have - the Razer StarCraft II Zerg Edition Messenger bag[0] - it fits perfectly in the general compartment. Email me if you'd like some photos.

[0] http://www.razerzone.com/licensed-and-team-peripherals/starc...


Sculpt Ergonomic Desktop sends all keystrokes over unencrypted WiFi.


The spec says it uses 128-bit AES. https://www.microsoft.com/hardware/en-us/b/sculpt-ergonomic-...

I couldn't find anything on Google to contradict that. Link?


I'm always cautious of simplified specs like that. What's the block mode for AES? How does the key exchange work? What's the entropy source for key generation? This is a keyboard, after all.


One more reason to enable two-factor authentication and install anti-WiFi wallpapers on the walls ;-)


There is the aftermarket Modbook: http://www.modbook.com/


I'm cringing at the weight... 5.4lbs?! A Surface3 is 1.76lbs!


laptops are a pain. I wrote a windows keyboard hook that users caps lock with ijkl for arrows u->home ;->end and space bar fort modal select. A bit like ergo Emacs. Tried vim mappings but modal editing doesn't work across applications. You end up pasting code into your chat window. Anyway I realised that a lot of the value of vim is just not having to leave the home row for navigation.


Having access to the navigational keys without moving your hands much is a different experience—reduces movement and feels faster. [1] works with Windows and Linux [2] works in Windows only:

  - [1] http://forum.colemak.com/viewtopic.php?id=1467
  
  - [2] http://touchcursor.sourceforge.net


Honest question: do other software engineers write code so quickly that keyboard efficiencies really make a significant difference in productivity?

I agree that familiarity with a keyboard layout is important, as is familiarity and confidence with a given editor/IDE (frequent switching between keyboards/editors does seem to slow me down a bit), but beyond that, are you really feeling held back by the speed at which you can move characters from your brain to the computer? My own experience shows that much more time is spent just thinking about the problem at hand. Even when it comes time to write, I rarely (if ever) feel like the keyboard input part is slowing me down.


It's not just "how much time do you spend writing" but "how much concentration do you give up on your keyboard layout".

If you have to think about how to do the actions to indent, comment and reformat some code, your mind isn't on what you're actually doing at the time, which could be a very complex operation which requires your full attention.

Try to type a reply to this comment, but type it with one finger while looking at the keyboard and see how focused you are on what you want to say.


I find that for the actual writing of code, keyboard efficiency really doesn't matter at all.

Navigation and refactoring are where efficiency becomes huge. I think most of what I type into an IDE isn't actually code, it's navigating without a mouse (Find in files, go to declaration, back/forward, search for a type, etc.). The thing is most of these operations have in common is they're working with a symbol table or an abstract syntax tree though. This is why I like (good) IDE's over text editor's like vim and emacs -- I rarely need to be super efficient writing within one file, I need a program that can understand and parse an entire project. I also don't need my keyboard shortcuts to be super efficient (I don't particularly care if they drag me off the home row or involve multiple modifiers), I just need them to have a high multiplier effect in terms of my time.

Honestly I think the most useful keyboard shortcut I use is also the most vague: alt-enter in resharper/intellij. It's basically just "show me the most obvious transforms in this particular context". So it might transform a type declaration to "auto", or convert a for-loop to a foreach or vice versa.


Nope, it's not about the speed. It is about physical comfort and pain.

I'm 34, and have sadly discovered the reality of RSI over the past couple years (The author's final warning is appropriate). As a result, I've definitely modified keybindings specifically to avoid some recurring painful movements, and I think that's the reason the author discusses the topic, not speed of input.


For me, at least, it's not so much a "raw LOC output" thing as it is a comfort thing. When I go back to IDEs or text editors that aren't Emacs, even though I can be productive there are lots of movements and tricks that I miss. It's less time spent text editing and more time spent looking, reading, and thinking.

Rarely, I'll be in a situation where I have to do a series of complex edits. At my old job if we were crunching, some of the people that were junior to me would look over my shoulder and see me rushing through a ton of different files to make them. I think if you're familiar with a tool/setup it's easy to do this, but it's not totally necessary.


It's not just about how fast you can push code out your brain, but how fast you can manipulate code in your editor. Uppercase that constant, move subroutine bar to file foo, indent this section, move this code block 'til after the widget is frobbed, etc. These sorts of boring and tedious editing tasks are the ones I'd really like to speed up, and most of them all require the use of some kind of meta key.

It's not just programmers who want to be able to edit quickly, as an ops person sometimes I'm called upon to bang out and edit a lot of UNIX shell commands. Sometimes I'm doing this in tense SEV-fucking-0 situations where being able to edit and type quickly has a real benefit.

As an emacs user, my shell editing commands, editor editing commands, and text I type into GUI OSX text widgets all use the same control/meta key editing sequences. I also use a Kinesis, and use the two largest keys on the left 'thumb island' for control and meta. When I'm away from my Kinesis I use caps-lock for control and ESC-[ for meta.


I think some of this comes down to tool quality. I more or less never do the kind of repedative tasks that that your talking about.


> do other software engineers write code so quickly that keyboard efficiencies really make a significant difference in productivity?

For anyone who tries to make their code as small as possible, the idea seems absurd. But lots of other things involve typing, like interacting with a REPL or terminal, or querying data. Typing can sometimes be a limiting factor there, especially when working with tools whose verbosity you don't control.


Yes. Absolutely. Without question. As someone who has invested years on the same editor, i have a hard time paired programming with anyone who doesn't have mastery over their editor. Things that can take 1-3 keystrokes instead take 30 seconds. Every moment spent consciously navigating or searching or moving code is time spent not thinking about the problem at hand.

In fact, i wrote an article on this very topic a few months ago because i find so few programmers consider tool mastery a part of programming mastery:

http://blog.benroux.me/editor-as-artbrush/


    Things that can take 1-3 keystrokes instead take 30 seconds. 
This kind of editor mastery is oft mentioned, but I've never seen it.

Does anyone know of a good video demonstrating editor virtuosity? Ideally while actually coding - not synthetic examples. Any editor, any platform, any language, etc.


It's not about speed, it's about friction. I used many editors (like TextMate, Notepad++, that kind of thing) before Vim, and once I got into it, I saw the awkwardness I'd experienced in other editors vanish. I probably input code about as quickly as I did pre-Vim, but it's a lot more comfortable now.


It's like a car speeding up and then stopping at every red light vs. the one smoothly flowing up to and through each light as it turns green.

The latter might not get you there significantly faster but it's going to be a much smoother ride.


It is probably more of a desire to reduce the effects of RSI and prevent jumping all over the keyboard. We don't necessarily write code at break-neck speeds, but we do need to use modifiers and special keys more than the average keyboard jockey.

That beign said... typing speed is also important. I've always written a large amount of prose as part of my job (compared to most non-programmers). And not just time-wasting typing at HN, but documentation, job-related emails, etc.


I can't speak for Software Engineers, but as an Emacs user I can say that for me, fluent keyboarding matters. As the fighter pilot tools analogy is a long standing favorite of mine from the AutoCad days, when I am in flow I experience Emacs as a stream of consciousness spojeen in keystrokes. It's very linguistic in a way mouse movements and clicks are not.

One of the issues with mice us their default relative positioning. Digitizer tablets require less hand eye coordination and have a better chance of coming closer to touch typing. But it's still gorilla arms versus ten fingers.

Lately, I've realized that even when I am having to look at the keyboard to get the right key combination in Emacs, it's no worse cognitively than hand-eyeing with a mouse and because my hands are still on the keyboard it's actually physically more efficient and actually creates less context switching cognitive impedence.


A lot of the work is documenting and coordinating, in English like we're doing right here. (I wonder how much missing/outdated/lousy documentation we can blame on the programmers not wanting to type.)

If you type at 60wpm instead of 110, over the course of a career I'll bet that makes plenty enough difference to be worth addressing. (I recently started going over to typeracer.com and keybr.com on breaks, on that theory. We'll see.)


If you really want raw speed then how about using a chorded keyboard and get over 200 wpm? Here's an HN post on Plover:

https://news.ycombinator.com/item?id=8510409


That's a good suggestion, and I've considered it, but it's a much bigger investment to make before it could start paying off. (Also a greater cost in interop with others at their computers, etc.) If I were 20 instead of 45 I'd check it out more closely. (Perhaps I should anyway?)


I think Plover works on any keyboard that supports n-key rollover.

http://lifehacker.com/n-key-rollover-anti-ghosting-and-other...


I mean primarily the learning.


It's not so much coding, and the speed at which I type my keys.

There are other things that make my work on a computer productive. The macros I have setup, my specialized launcher that'll do things based on keywords. The console that's perfectly setup with the tabs / shortcuts I want/need/know, and syncs with my launcher: "console c:\projects\ {enter}" -> does things much faster than a normal person's computer usage.

All these "little" things add up. And like one of the other posters mentioned. Less time having to "worry" about how to get to program X, or switch to task Y, is more time I can dedicate to the task at hand and the flow that accompanies it.


I learned how to touch type before home computers were commonplace, so I get frustrated when I can't close my eyes and type what I'm thinking. Maybe I'm a dying breed. I've had laptops with such difficult keyboards that I've turned them into servers that I can manage remotely, and others that I'll plug an external keyboard into to get a consistent experience. I can use a wide variety of keyboards, but some are just plain bad.


My favorite programming keyboard is an old IBM Model M. So I've been told that the spring action is bad ergonomically for people who type a lot, but I spend a lot of time thinking and only type in short quick bursts, where the spring action is actually quite useful.

So we definitely don't "type a lot" but we do type, and aspects of the keyboard's design can effect these bursts.


I do write faster than I think but I don't think that's the point. Writing without thinking about how to write leaves more brain power to the actual problem you are solving. I spend more time thinking about how to name my variables and how to structure my code and less time about where the \ is or how I get the cursor to the position where I want to change something next.


I don't think anyone buys a Kinesis for speed. It's all about ergonomics.


I was starting to get sore wrists at the end of a day programming, rather than let it get worse, I investigated ergonomic keyboards and came up with this one. I really like it, and my wrists don't get sore anymore.


One simple example: a 's' character sitting somewere in your code because you missed the ctrl key while pressing ctrl s.

Those compile errors slow me down.


Or worse, you were holding down the key, but without any tactile feedback you misjudged the actuation point and disengaged unintentionally.


Is typing really such a big issue for programmers? I don't know about everyone else, but typing is perhaps 0.5-1% of my programming time. Is this different for other people?


Like everything else in life, everyone has their own style. I'm with you - typing is not an area that I worry about efficiency. I whiteboard high level designs, think things out in my head, go for a walk and think out the code, and finally sit down and type it out in a fairly short time. Later, when updating and debugging, navigating via keyboard gets more important, but still not a critical path for me.

But I do know other people who really do just type immediately when they start to code. They use the keyboard and screen as part of their thought process. For them, perhaps it makes a bigger difference.


Back of napkin math bring this at ~25 lines of code per day. Looking quickly at our Git history, this seems well below the average LoC/day me and my co-workers produce but our software is still in early stages and there's lots to do. Perhaps you are maintaining a more mature project?


It's a sizable issue for me. I write every piece of code several times: once to get a sense of the problem space, once to prepare it for review, once to incorporate feedback review and once to adapt it once a new customer has as similar need, an tweaking my code for a couple hours saves him a couple of days. The technical ability to type fast is critical, thus having good tools is critical. Several areas: typing comfort, code search, autocomplete, code refactoring, plus high signal / noise language.


I wonder about this every time the subject of editors comes up. There's a perception of efficiency for sure, but I wonder how much actual efficiency is gained in most cases. I just don't spend a lot of time on actual typing when programming, vs thinking about the code or testing or debugging or sifting through documentation. Plus I'm not on the same machine all the time, so lots of customization requires extra effort every time I have to jump on a freshly installed system.


A lot of people don't use vim because of its efficiency; they use it because it helps avoiding distraction and it's less tiring.


I did the whole keyboard must be perfect thing a few years back. I realised I had wasted more time researching and testing keyboards they I could ever save during the left of my working life heh.

Now a nice keyboard is something you want to have but as long as it has some key travel I am good to go. I don't like mushy keys too much though.


.5 to 1% of your programming time actually typing is an exaggeration right?

That would be ~5 minutes of an 8 hour day typing. 8 hours each day to plan 5 minutes of typing seems... well, something is wrong and I have trouble seeing a sizable project getting done like that.

I probably spend 2-3+ a day typing (for various reasons.. not all programming). And yes, typing is very big issue for me.


That's probably about right. I mean, it depends how you count. I spend a lot of time at my computer, but if you only count the time spent actually physically pressing buttons that result in code then I guess that could be down to 5 minutes. The rest is spent looking at existing code, wondering how this particular thing should be wrangled together etc. I mean, I've spent a semester writing about 2k lines of code so things go slow. Then again it's a compiler for my own language, which together with me not being a great student probably means this is abnormally slow.


I don't know why you'd only count button presses that result in code. I think I spend way more time on the keyboard than not. A large amount of my time is pressing buttons to debug or understand code: Find class, Find string, Go to implementation, Find usages, Step into, Step over. And those are sometimes the repetitive keystrokes that lead to the most fatigue/stress.


Actually measure yourself and get back to us.


I used to have a Happy Hacker keyboard and write Java (and other languages) in a customize emacs environment. These days I use a regular mac keyboard (so I can easily transition between my macbook and desktop setups) and run IntelliJ. And I feel like I'm a whole lot faster writing production-quality code. There are definitely a few annoyances when using the IntelliJ emacs key binds, but this is more than compensated by being able to do things like automatically download and jump to referenced packages and having the IDE suggest code improvements ("I've noticed that you could be using the Java 8 lambda syntax here..." / "Do you want to remove these unused imports" / "This value may be undefined"). And now I can't write Java without IntelliJ, and I'm going to fail my next whiteboard interview ;)


I use a Happy Hacker keyboard in a customized emacs environment, but I'm pretty much Linux only, so no issues with transition between laptop and desktop, although I do have an older Thinkpad and the layout is slightly different, but not enough to screw me up. I cut my teeth on Sun Sparcs, and haven't found a layout that I like better. In fact, I actually have two keyboards; one for home and one for work, and the latter has a lot of "mileage" on it because it regularly travelled with me from New York to Hong Kong.


Interesting article, but the author mentions exactly why I could never get into a location-specific setup like a keyboard and foot pedal; I shift locations far too often (I'm currently working remotely from a Starbucks at the moment).

While maybe not going as far as becoming proficient in whatever setup could be considered the "lowest common denominator", I prefer to use a setup that is flexible across locations and environments. There's a lot of freedom in being able to move about between workstations and locations and still be fast and capable.


A foot pedal is no less discreet and portable than an external mouse, and those are pretty widely used and accepted at coffee shops (it could even be argued that the external mouse consumes more valuable space than the foot pedal - the mouse requires lateral table space and elbow room, while the pedal is literally on the floor beneath your feet).

Likewise I know developers that bring external keyboards like the Kinesis in their backpacks to wherever they want to hack.

Edit: that being said, you're right that it adds up. I believe the author of the article also uses a vertical mouse. That's a lot of gear to haul to Starbucks!


These kinds of issues don't boil down to the objective of size and space needs, but the subjective of what everyone else is doing.


In other words, one might feel uncomfortable being the only person in the coffee shop using a foot pedal because you don't want to break the mold? Seems a poor reason when the foot pedal could boost your productivity and/or prevent injury without adversely affecting your coffee shop neighbors.


It may be a poor reason for anyone used to thinking causes, effects and objective effectiveness.

But in the end humans are social animals. Thus peer approval, even if we don't know them by name etc, carry mental weight.


And we evolve! :) Eg., it's been acceptable for some time to operate an iPad with an external keyboard at the local hipster coffee shops. I'd argue that anyone using a foot pedal at all is an early adopter - who knows what Starbucks' digital denizens will be using in a couple years? But we will arrive there faster if some of us eschew the lowest common denominator, even if we look funny doing so and have to haul around a peripheral or two or three.


Having an Apple rep demo it on stage at the next WWDC may help spur adoption...


Touche.


Most people use their notebook's trackpad when in Starbucks, etc., not a mouse.


Right, for example you rarely see younger, MacBook owners with the external mice. But when you find middle-aged folks with PC laptops, they are often using little travel mice.


That has more to do with the usability of trackpads on Macbooks vs. PCs. It isn't an age thing. It might be a hipster thing.


It might be that Mac trackpads are a really good solution. For me, I try to avoid pointer devices, but when I do have to leave the keyboard, it's nice to only travel a couple of inches to the trackpad instead of a foot to the mouse.

I had my laptop pinched last week so I've been on a Mac desktop with a Mighty Mouse. The gesture control is so clumsy compared to what you can do with a trackpad.


It's so an age thing. Older people don't have the motor skills to use touchpads.


No, I'll back Aidos up. I hated trackpads until the first time I used a MacBook. Apple's trackpads are just way easier to be precise with. I have no clue why. It can't be the software, because it's still true when running Windows via Boot Camp.


It is still an age thing. Old people have far worse a time on trackpads, especially on Windows.

I think much of the problem with Windows is in the Synaptics driver. On one Windows machine, I see 5-10% CPU usage whenever my finger's touching the trackpad. The trackpad on that machine works a lot better on Linux. On the other hand, some other trackpads work far better on Windows than on Linux.

One big difference between trackpad behavior on Windows and OS X is that on OS X there's always delay between when your hand touches the trackpad and when the mouse starts moving -- the first N ms are ignored. On Windows, it varies from machine to machine -- for example, on an ASUS machine I have, you need a certain threshold of movement and then the pointer catches up to what its location would be, but with others there's no delay.


Whatever your intentions, your statement reads a tad condescending.


The floor could be dirty, and then the foot pedal goes back into your bag.


Most coffee shops keep their floors cleaner than I do at home.


I built my own portable mechanical keyboard for precisely this reason; I got spoiled by a nice board at home only to be filled with disappointment every time I went out for a change of scenery at the coffee shop. Now I've got something that almost fits in the pocket, has a nice split angling of the columns, and is designed to work with Emacs from the ground up. (lots of thumb keys)


Any chance you could provide a picture of it or a link to something similar?

Lately I've been using a chromebook with arch whenever I use a laptop ( luckily it's not too often ), and while they keyboard isn't completely awful, going from mechanicals at work and home to a chicklet keyboard is annoying at best. I've been looking for a decent portable mechanical keyboard to throw in my backpack, but so far a densely keyed (not sure if that's the right term?) tenkeyless is the best I've found, and I'm having a hard time imagining a keyboard with all the "extra" keys being almost pocket sized, unless you're bringing back JNCO ;).


> Any chance you could provide a picture of it or a link to something similar?

Sure thing; I have photos and kits for sale at http://atreus.technomancy.us

It takes a long time to learn since it's a pretty big divergence from the conventional design. It only has 42 keys, but with the fn layer (activated with the thumb rather than an awkward pinky reach you normally see on laptops) you can still hit all the keys you need. The other upside is apart from being much smaller it also means your fingers never have very far to reach, so it's also more comfortable.


I feel like this is the way to go -- It's too much cognitive overhead, IMO, to get used to multiple (very different) keyboard layouts. The Atreus is a nice solution to that, since it's even pocketable. I also disagree with thumb clusters, but that's another story.

(BTW, the article did mention and link the Atreus, so you probably don't need to dance around it like that)


I'm going to guess and say that in any given city a lot more IT specialists work from a fixed workplace all the time. Also I would guess that a big number of currently wandering IT specialists can switch to fixed workplace (e.g. - random cafeteria vs home/work place) but they currently don't want to for reasons unknown to me. For me, when I was working on laptop on a previous job I would switch to desktop with ergo keyboard and normal screens immediately if possible. Being impossible I just switched jobs - it was that important to me (after money of course).


When two programmers compare preferences, it usually seems like they've reached the same level of fluency by standing on completely different piles of input devices, editors/IDEs, languages, plugins, transpilers, etc. Arguments about the superiority of one part of their pile assume that the other person is in a position to need those things.

"Textmate? CoffeeScript? But how would you ever navigate your 900-line files without Vim?"


Seriously, the thought about foot pedals had never crossed my mind, AT ALL, even after so many years of reading tech news, it's a completely new concept.

Disregarding the practicality or the actual use, I think it is a very interesting concept and possibility that could be explored.


Uh, it's not a new concept. I had foot switches for typing back in the late 80s. I knew quite a few people in the 90s that were big on the concept too. It was a bit of a fad when the first round of ergonomic keyboards started becoming popular.

For a non-anecdotal perspective, emacs users have been doing this for quite a while http://emacswiki.org/emacs/FootSwitches. go ahead and search for foot switches as well. They all look old and dated don't they? There's a reason for that.

It's not talked about much because it's difficult to learn, non-portable and the need for foot switches is mitigated by proper technique when typing.


Yes, I was just surprised that I didn't ever hear about it. It's not that it's something new, it's clearly not :)


There was a submission here a few years ago about building a "Vim clutch." https://news.ycombinator.com/item?id=4141410


Explored again. The Mother of All Demos used footpedals and a chorded keyboard, for example. Versions of these have been commercially available ever since. They near really caught on.


Instead of petals, they should make a small clip that attaches to the end of your shoe.


Foot switches are fun. I've mine configured to various most used functions per app, though it’s mostly PgUp, Back and PgDn. It's great slurping a coffee and browsing the news that way in the morning.


Most Mac users on here are probably used to the US layout of keyboard. Check out the UK version for a mean bit of design. The left hand shift key barely exists and the return key is a remote sliver. I always buy the US keyboard when I get a new machine.

http://i01.i.aliimg.com/wsphoto/v1/1853014535_2/Wholesale-5P...


I've gotten so used to the Spanish ISO layout that I don't really need it on the actual physical keyboard, I think it is a very practical layout for programming.

Specially considering all the braces:

[] is done by Alt Gr and the two (consecutive) keys that come after the "p"

{} is done by Alt Gr and the two (consecutive) keys that come after the "l"

() is done by shift 8, 9

\|@#~ Are all done with Alt Gr and the º key, 1, 2, 3 and 4.

Maybe it's just being used to it, but I find it extremely practical.


Considering that how awkward AltGr is to reach, I find it difficult to understand why that layout would be very practical (for programming), considering that all of those punctuation characters are available either directly or with shift on US layout.


You reach it with your right thumb, the same way you reach for space only a little bit more to the right.

You're then in a conformable position for reaching out to this keys I mention.


Funny. Despite being in Sweden I always try to get US keyboards just to avoid the whole AltGr thing for braces.


If you get a UK layout, you at least retain the extra key left of Z and a correctly shaped Enter.

(Since English doesn't need any accented letters, and the only extra symbol needed is £, the brackets are accessed without modifier for [] and with shift for (), {}. The only symbol requiring AltGr is €.)


How do you write åäö? :)


Either alt+134 etc on the numpad (windows), holding down the a or o key (OS X) or by temporarily changing to Swedish keyboard layout, depending on the situation.


That is the standard (European) ISO layout for keyboards, it is common across different locales and brands. Arguably the US is the outlier here (again). The obvious advantage is the extra key it provides. While the enter key placement/shape might be debatable, I'd argue that the the left shift key reduction is purely advantageous. The shift key is still well sized (bigger than normal key) and easy to hit (the pinky movement is nicely symmetrical with right shift), and the keyboard gains space for one extra key (always useful).


The Return key is usually the bigger problem.


That's this keyboard design, not the keyboard layout. On full-size keyboards and many laptops it looks like this: http://cdn1.expertreviews.co.uk/sites/expertreviews/files/im... I actually go put of my way to get keyboards with non-US key layout.


I've lived in Europe after having grown up on US-101 and had to get used to the German layout for a not insignificant part of my life .. it was such a relief to finally get a new rMBP with US keyboard and have a normal Enter key again. I can't explain how much pain I was in having to use the German/Euro Enter key layout, it has been a burden.


The advantage of the ISO layout is the "~" on the bottom row, instead of waaaay up to the left of the "1".


I don't need ~ that often, and I never feel that it's far away. I need the shift key all the time though - so I prefer not to travel for it :)


Huge fan of the conclusions. And many hackers do that already, spending hundreds of dollars for high quality key boards and mouses. But we certainly haven't reached the point were our tools are as professional as a pilot's.


I have a Kinesis and I've give it a good go. My main problem with it is that, while typing is absolutely wonderful and comfortable very quickly, you should keep your hands in the proper position the whole time, or you can't do anything.

For example, use a mouse and copy, or even just to use a mouse gets to you for the proper position. A typical use of c select with a mouse, copy, move the cursor and paste, is very weird. Also something like write something with a pen and move pages up and down. A regular keyboard allows you to move right and use your left hand for right keys (cursors, etc). With the Kinesis, this is uncomfortable.

The pedal is also weird and needs a lot of adjustment.

I used it for a while, and encourage to everyone around me if they want to give it a go, but I moved back to a more regular keyboard...


I think there is not enough innovation happening in the space of HID's. Both the software and the hardware are limited. Sometimes you see innovative keyboards, but they are not revolutionary because they always think they have to provide the legacy 10x-keys design. And software always expects to receive those keys, which is a huge problem.

In Steam Big Picture you can type with a gamepad if you go to the friends-chat-mode. Why is this limited to Steam Big Picture? This should be functionality provided by the system to be used by all applications. And applications should adapt the input layout and themselves depending on the HID that is being used.

I wish it'd be possible to use text editors with a 3D mouse or pedals and a camera, without having to invest a huge amount of time to make it work.


Hm, I searched for the keyboard and a review on Anandtech came up. I am linking to the typing test benchmarks:

http://www.anandtech.com/show/7125/kinesis-advantage-review-...

In Typing tests (granted Aesop's Fables, not programming) there isn't really that much difference. Even compared to a Laptop keyboard.

In 10-key typing (entering numbers) the Kinesis Advantage is really bad.


The pedal sounds appealing. But the lack of portability of all these hardware will not convince me. I still stick to the unbeatable keyboard hack I described some days ago: https://news.ycombinator.com/item?id=9605791 (i.e arrows, return, pgup/pgdn, delete/backspace available at the middle of the keyboard)

Another feature that is quite interesting if you code with IntelliJ or Eclipse is the "Quick Access" key. Ctrl+3 on Eclipse (hint: remap this to a more convenient key NOW!) or Ctrl+Shift+A on IntelliJ (same hint applies), and all you commands can be accessed by quick typing. No need to go for Ctrl, Alt or any key combination.

With all this, any keyboard is efficient.


Right now, I'm using that keyboard's less wealthy sibling, the kinesis freestyle. I've found that it's a lot more flexible, as I can stop, do other things, like use a drawing tablet or mouse, without the needing to put my hands in the bowls like i would with the advantage. Also, I have smaller than average hands, so I get the feeling that the advantage would not be as useful for me.

Now, what I'd really like to see is keyboards made with different key sizes. A 3/4 size keyboard that has proper mechanical switches would be very, very nice indeed. Hell, I actually like 15" laptops with full keyboards because that tends to mean that they've shrunk each key to fit, and it gets to right about the sweet spot in size for me.


I love the freestyle. First keyboard I've used without hand pain. I recommend rolling a t-shirt or putting a foam pad below your wrists to prevent strain.


I got the accessory kit with the wrist rests and slanting mechanism at the same time as the keyboard, so that part's not an issue. I got mine before I've started having wrist pain as a preventative measure. I'm 35 with weird genetic conditions regarding my joints, I don't need to exacerbate things.

I think the other piece of the puzzle is that a lot of people don't properly adjust their chair and/or monitor for good ergonomics either. Eye level with a monitor should be right about at the top of the screen. It takes a tiny bit of getting used to at first, but then you really start noticing how much less neck strain you have.


Yup! I've been trying out a standing desk about a quarter of the time and that's been helpful too.


I've been interested in Kinesis keyboards for a while now but am still undecided because the more I think about the whole problem of HCI from a programmer's perspective the more I question my own assumptions. I'm wondering if something far out like the Twiddler could really work for somebody living in a text editor with vim bindings most of the day. If anybody had to share their experience with it I would be very interested to hear it (e.g. experience working with your legs up).

http://twiddler.tekgear.com


Though I've never used the Twiddler, I did spend about a year using a different one-handed keyboard due to injury. It was a FrogPad. It's a fine device for typing out sentences, but perhaps not ideal as a code editor. I eventually set up a full-sized keyboard right next to the FrogPad because it just felt easier to hit certain keys and chords that way. There might be better one-handed keyboards out there for programming, but I'm a little sour on the whole idea.

During this time, I also did some experimentation with voice recognition. It worked really well when coding in lisps. This was over ten years ago, and I'll bet this would work even better now.

I also have experience with the Kinesis keyboards; I used the Freestyle—not the Advantage featured in the article—following my recovery for about six or seven years. Though it looks like a medical device, the ergonomics are excellent. The Kinesis is a better typing experience by about 1000x. I have since switched to the homemade Ergodox, but still recommend the Kinesis.


Thank you very much for sharing that, I'll probably get a Kinesis (still would like to at least try the Twiddler - might make sense with VR etc).


I'm a big fan of the Kinesis keyboard. I use Emacs, and I was starting to have some RSI symptoms from the ctrl/meta key combinations when I discovered the Kinesis. Moving the modifier keys (except for shift) to the thumbs is a huge improvement.

The arrow key layout is actually one thing I don't like about the default Kinesis configuration (the bottom row for the left hand is backquote, backslash, left arrow, right arrow, and for the right hand it's up arrow, down arrow, left bracket, right bracket). I remap these keys to put all the arrows on the right hand (in vi order).


The arrows are weird and the less-than-normal function keys are suboptimal (and I've used these keyboards long enough to run into some very rare firmware quirks and odd choices made by the maker). However, since everything else is so AWESOME - the hand position, being able to do CTRL+ALT with one thumb while keeping all the fingers in normal position and being able to map the other two mod keys to ALT, META, and then CapsLock to Hyper (for window management only, in my case)... oooh, this keyboard rocks for most things, including coding and gaming (assuming the game supports changing your keybindings to optimal keys - WoW does, for example). I think I have four of them, and my girlfriend prefers hers to normal keyboards. They've totally eliminated my incipient RSI. (rave, rave, rave). However, I do wish they'd fix the little issues that remain in some future board, so I don't have to keep musing over whether to buy a Maltron to compare.


I like this article, but what about the design of keyboard/mouse integration? There are still a lot of things you have to use a mouse for everyday. I feel like IBM hit a home run with the trackpoint, yet somehow it never hit mainstream. I would pay a lot of money for an ergonomic keyboard with a trackpoint. Microsoft sculpt or 4000 with trackpoint would be awesome. Just replace the stupid scrolly thing with a trackpoint.


I'm surprised that there haven't been more keyboard projects on KickStarter, which has been a boon for hardware projects.

A modern version of the DataHand would be cool.

http://octopup.org/computer/datahand

A controller like an AlphaGrip: http://www.alphagrips.com/


Funny you should ask - there's a kickstarter launching tomorrow for a pretty legit keyboard project: http://www.keyboard.io


Looking forward to this. Do you have any videos contrasting Keyboardio vs. the tradition keyboard, or do I need to wait until the campaign goes live tomorrow?


No I haven't seen videos. Honestly I'm just impressed by the level of iteration from prototype to prototype that Jesse has blogged about extensively for some time, leading up to http://blog.fsck.com/2013/12/model-00.html .


There have been some attempts to re-create the datahand [1], but it seems that they have stalled.

[1] https://geekhack.org/index.php?topic=41422.0


I created my own keyboard design (http://atreus.technomancy.us) and have had a number of people ask me why I haven't put it on Kickstarter.

Ironically it's because the startup costs are so low, and gradually ramping up production makes a lot more sense to me than exploding onto with a huge bang that requires a lot of investment without knowing how the demand will hold up in the long-term.


The TextBlade (https://waytools.com/) looks like a thoughtful redesign of the keyboard. Compact, efficient, and shipping very soon.


I also have a Kinesis Advantage. I use colemak keyboard layout as well so I've customized the layout a bit. Because capslock is backspace in colemak, I changed the backspace key to control. VI sucks with colemak so I eventually moved to using emacs. It works very well for me - your thumb is always on control.


I hit the left Control key with the edge of my palm, and use my thumb to hit Alt. Those are the only modifier keys I use regularly, other than Shift(which I can comfortably hit with my pinkies).

This practice along with evil-mode and Vimperator means I barely have to move my fingers of the home row while operating my computer.


I use the knuckle of my little finger: http://quadruple-a.com/keys/ctrl.jpg

I've been using emacs for 9 years like that without a problem. I didn't realise you were supposed to swap your Caps Lock and Ctrl keys, so I never did. (And now I know you're supposed to, I just ignore it the advice. I don't think it's especially good advice, though, as always, if it works for you, feel free to heed it.)


I used to do that, until I swapped CapsLock and Ctrl.


that's funny, how every article mention using pinkie for modifier keys. I always used thumb for that :) in fact i just tried to keep an eye how i am using keyboard and i found i rarely using pinkie at all. This is on standard-ish full-size laptop and 104 desktop keyboards.


I would love a keyboard that lets my hand move around freely instead of lying awkwardly flat on the desk.

Also, I would like to code while lying on the bed, a keyboard I can wear like gloves would be great.

If not, a keyboard in the shape of /\ lying on desk would be a much better design.


Something like this matches up with your last desire.

http://www.thehumansolution.com/kinesis-freestyle.html


Startup idea: We have a lot of dexterous muscles in the face. The keyboard could probably be replaced with a face sensor. I would love to work from the couch, only using my face.


That is what Stephan Hawking does.

http://www.hawking.org.uk/the-computer.html

"My main interface to the computer is through a program called EZ Keys, written by Words Plus Inc. This provides a software keyboard on the screen. A cursor automatically scans across this keyboard by row or by column. I can select a character by moving my cheek to stop the cursor. My cheek movement is detected by an infrared switch that is mounted on my spectacles. This switch is my only interface with the computer. EZ Keys includes a word prediction algorithm, so I usually only have to type the first couple of characters before I can select the whole word."


That was some quality procrastination ... I understand that he basically have two switches, giving him a total of four combinations, witch is a bit crude.

The face have twenty muscles, Hawking probably can't move all of them, but for a normal person that would mean around one million binary combinations. Or 10^20 combinations if each muscle contraction was measured on a scale 1-10.

Until such a product is released you could start practicing your facial muscles by doing waves with your eyebrows and moving your ears and nose wings etc.


Btw, where did you learn to touch type? I used http://www.typingstudy.com but is it the best option?


Editor's remark:

  M-x replace-regexp ↩ foot pedal ↩ pedal
or

  M-x replace-regexp ↩ foot pedal ↩ foot switch


I find it better to eliminate Win key and remap Alt to Capslock.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: