I have used a laptop for everyday web development most of my career. I am a keyboard snob. A huge keyboard snob.
My favorite keyboard of all time is the classic IBM keyboard:
But no laptop keyboards even come close. In fact, it has been a fad over the last few years to put a 10-key pad on the laptop! How mind-numbingly stupid! I decided to design my own “programmer” laptop. I found the following to be important.
- The keys I use most often are the 6-key bank (Insert, Delete, Home, End, Page Up, Page Down) and the arrow keys. These I want true to the classic feel.
- Keep Alt and Ctrl where they should be. Don’t crowd it with “Right click” keys or “Fn” keys. Why would I need to use the “Fn” key while my fingers are on the home row? Move it off to the side!
- I can handle the Windows/Option/Super key (star key below) between Ctrl and Alt. They are often useful.
- Separate Esc pretty well.
- Keep the keyboard and touch pad in the middle of the keyboard. With the currently popular 10-key laptop keyboard layouts, either my wrists or neck become awkward.
- Keep a middle click button. I use it constantly.
- Add a nice and somewhat separate area on the touch pad for scrolling.
- I like the pointing stick between keys g, h and b.
Yes, I know: It’s ugly! But I want function. I measure that to be 16.5 inches wide. That is comparable to the 16.4-inch width of a Toshiba laptop with a 17.3-inch screen. For smaller screens, checkout this second mockup. I measure it to be 14.4 inches wide. That is narrower than the 15.1-inch width of a Toshiba laptop with a 15.6-inch screen.
For comparison, here are some other laptop keyboards. I find them all unfriendly to developers—but I am a snob.