Recently, Nikita Prokopov, a friend of mine, published a great post about remapping arrow keys. I highly support that idea; we really move cursor often. It is too time-consuming to shift a palm to and fro across the keyboard. But this material inspired me to share my own ideas about keyboards and typing. Please read Nikita’s post first before we go further.

The main statement I’d like to highlight is all the modern keyboard are useless in general. Literally, I mean: a typical typing device might be used only in ineffective way. Once you start explore it trying to be productive, your very body will alarm you with pain saying “please don’t do that”. And this is not a joke.

There is such a metaphor as “share you pain”. That’s exactly what I’d like to do: to discuss the real pain caused by keyboards. The thing is, I’ve been trying to be productive with Emacs, an ergonomic keyboard and blind typing at the same time. (That was too much for a single pair of hands, now I see that clearly; but not those days.) What I’ve got was unbearable ache in my left palm. It started a year ago and I still have it. Surely, that could be my personal trait. I do not blame anybody. But I know for sure, our modern keyboard might be a bit better then now.

Ok, take a minute and look down at your keyboard. It does not really matter if it’s a computer one or your laptop. It is likely you’ll see a device like this:

What is wrong with it you may ask? Well, lot of things.

First, the keyboard does not fit your body, your natural forms. Put your hands down on the table. Look at the angle of each hand. Do you see symmetry? Both of your hands are tilted on the same angle relative to the invisible axis in the middle. Now try to find such symmetry on your keyboard. You won’t. All the buttons are tilted on an angle what is good for your right hand. But you’ve got yet another hand, the left one! The buttons’ angle does not satisfy that left hand at all.

The fact of ignoring human anatomy looks quite strange to me, really. Because nowadays, every piece of design that is used by people is being adopted for them. About 20 years before, it could be a feature maybe. Look, ergonomic camera! Ergonomic fridge! Today, everything we produce for human beings must be ergonomic. It has become a default option, not a feature.

In a car, a steering wheel is put on the left if it is a European car, but not on the right. Digital cameras have a special thick fragment put on a handle to let a palm cover it with the whole surface and thus prevent if from falling down. Long ago, a computer mouse was just a brick with sharpen edges. Today, it has got curly and quite complicated form that respects anatomy. And so forth and forth.

We, programmers, designers, managers, spend lots of time in front of a computer. It’s our working tool. With its help, we get money to live and care our families. I’d rather say that having a good computer is more important than having a car. So why the input device is still so poor? We deserve something better I believe.

The second flaw is a standard keyboard forces us to press utility buttons with your little finger on the most of devices. That’s sick: it’s the most weakest finger of your palm. Press Ctrl+C several times. Do you feel how high tension between the finger is? The more fingers are closer to each other, the more it is healthier for a palm. Thanks Apple, on Mac, we mostly operate using thumb and forefingers. But still, Alt, Shift, Control or Fn make my hand hurt again.

Since I’m a developer, I cannot complain on programming languages that force you to use all the types of parentheses, colons and semicolons, single and double colons and even apostrophes and backquotes, slashes and backslashes. The funny fact is, all of them require your right little finger to work hard. I used to improve my blinding typing skills some time ago; the program prompted particular fragments of classical prose to train me. I moved fast. Once I started to write code with blind ten-fingers method, almost all the typos were related to those symbols I mentioned above. Say you’d like to complete a function call in Javascript: return 42, semicolon, closing paren; curly closing paren. Damn, it was the square one. Delete. Now it’s minus. Damn!

Python has been some sort of a victory: it showed that a programmic language may be free from machinery symbols still being elegant and expressive. Any Lisp dialect is also good: say, Clojure requires quite fewer of them. Yes, there are three sets of parens when declaring data structures, but on the other hand, semicolon is not used at all. Racket considers any type of parentheses as round ones. So putting square parentheses inside round ones is just a matter of personal choice.

The next thing, there are to many utility buttons I believe. Let’s count them: Control, Shift, Alt, Caps, Function key, Command on Mac. On Windows keyboards, there is an Application key with the WindowsTM LogoTM. We do not really need them all at once! Seriously, when I used to develop on Windows the main modifier was control: Ctrl-C, to copy and paste, Ctrl+O to open a file, etc. On Mac, the main button is the Command key, right? But still, the Control has not gone yet, we have in on Mac keyboards. In terminal, every process listens for Ctrl+C or Ctrl+D to be terminated. As the result, I need two buttons instead of one.

And that’s more. I may say I know for sure why do we need Shift, for example. But I’m not sure about Alt. Really, why do we need that for? The same about the Function key. The button with the WindowsTM LogoTM looks hilarious to me: a dedicated key to open the “Start” menu, oh dear.

Capslock is totally useless and takes too much room for itself. I don’t see any reason for its existence. Every single text editor may convert selected fragment from lower to UPPER case and vice versa.

I have a feeling that most the shortcuts could be made with just two utility keys: Command and Alt/Option/Whatever. That would be enough. The only reason we won’t ever rich that is developers would never come to agreement or any sort of standard.

What makes me totally insane is those keys are named differently on various platforms. On Mac, Alt is not Alt, but Option. In Emacs (which is really almost an operation system) Alt is Meta, and the Command key is Control by default. I know, there is a long story behind each of those namings, but I don’t have any intention to dive into it.

Another thing I cannot tolerate is when a key is marked with a pictogram instead if its name. Their forms are so complicated and really say nothing! At lest Shift has some sort of sense behind its pictogram: a thick arrow that says “press me and I’ll move the layout up”. Now take Mac’s Command key: ⌘. I don’t have a clue what does that figure mean. It isn’t better then the WindowsTM LogoTM. Alt is the worst case: ⌥. I even cannot find proper words to describe those lines where one of them breaks for no reason. For me, it always takes about five to ten seconds to parse an expression like “press ⌥⇧T to open a new tab”. Even Perl code looks better to me.

Moving on, there cannot be an excuse for such huge space button. Yes, it appears quite frequently in European languages, no matter if a text is a prose, a poem or Linux source code. But the greater frequency is still not an option for increasing size of a button! For example, the “e” letter appears quite often in English; bit its size as little as “j” or “x” that have the lowest rate.

If your keyboard is not just from the shop, look at your spacebar carefully. Or even detach it and move it closer to the light. You’ll see that there is some fixed area where your thumb finger hits the surface constantly; but the rest of it is untouched and probably covered with dust (or food, to be honest).

Here is mine spacebar: it’s plain to see that both left and right sides are polished with my fingers. The left side is even more because of Emacs. But the center of the button is dirty. (I used to shift levels in Photoshop to let you see it better.) I cannot even remember when I pressed it in the center. It is just a waste of useful space.

It’s clear to me that huge spacebar was just borrowed from ancient typewriters. They had it probably because of two reasons. The first one is there was just unused space on the lowest row; it should be filled with something. The second is, pressing mechanical keys required significant physical effort in those days. So the thumb finger moves could be a bit inaccurate. But all of this do not relate to our days anymore.

You may look at Asian keyboards that have tiny spacebars. The reason is, in hieroglyphs, spaces appear quite rarely. Pay attention, a spacebar still might be pressed without any troubles whereas now a user has got some additional keys.

The image was taken from that great post: “Tiny Space Bar on Japanese Keyboards”. There are far more interesting layouts there.

That was the main reason I had to abandon my MS Sculpt keyboard. Its spacebar key is really huge as I’m not a human but an elephant. In Emacs, almost every single operation requires holding Command key. As the result, my thumb finger have been in such a position for minutes or even hours:

Every single coding session ended up with pain in my palm. My intention was to remap the left space button to the Command key. That would be a great success if it was possible; but it’s not. The keyboard sends the same machine-wise signals for both spacebars. So every remapping tool considers them as the same physical button.

At the moment, I’m dreaming of some sort of keyboard with a tiny space. It would be great to press both space and Command keys without moving my thumb finger far from each other.

It is 2018 behind my window, but none of operation systems has good remapping tool out from the box. Starting with a fresh system, I need to download and install some software and set it up somehow. On Mac, we’ve got Karabiner which is the most developed tool so far. But as far as I see, hacking a keyboard input is a tricky stuff that can be prevented by the manufacturer at any moment. Apple does have any intentions to care about Karabiner + Mac compatibility.

Karabiner was rewritten from scratch several times due to major Mac OS releases. Although they have done a great job so far, some occasional bugs still appear from time to time. For me, the keyboard input just hangs sometimes. The keyboard seems to be turned off completely for ten seconds. Then it tries to play all that key sequence that has been delayed at once causing unpredictable behavior: windows close and open, dialogs pop up and so on.

The standard key remapping dialog in Mac is ridiculously poor and may satisfy only beginners.

Most of the “ergonomic” keyboard are terrifying. They are huge, quite expensive, and full of features I will never use. One of them has a LED layer what shines with different colors as a wave. Great. Another one looks and weighs like an anvil. All of them cost like an aircraft. You cannot buy it at your neibour shop. After all, there is no any guarantee that you won’t put it on your shelve to collect dust for ages.

More and more keyboard startups appear and try to solve those problems. They make a website, a single YouTube video and launch Kickstarter program. I do not have any knowledge if some of them have come to success. I mean, if Apple or any other manufacturer started to produce their keyboards. I tend to think that most of them are just charlatans, to be honest.

Computer manufactures do not care about the keyboards they produce at all. At least they could split the buttons on two groups and change the left’s one angle properly. Or maybe remove Caps or Control on Mac. They’ve already wiped Escape that was quite small and didn’t cause any troubles. Oh by the way, now we’ve got that keyboard screen on Macbooks. It is a feature that completely relies on marketing but not user experience at all.

The last thing that worth be mentioned is even a great external keyboard consumes free space and forces you to re-invent your workplace. Mac’s touchpad is amazing, but a custom keyboard lets you either to shut your Macbook down and use external monitor or put it on top of the built-in one. In both cases, you lose touchpad access. Go by an external one for $100. Now you completely depend on additional devices and the workspace has become few.

I don’t know if I expressed my experience in a clear way, but altogether those points make me upset. I hope at least something will change in the future. Maybe, they will start to improve default keyboards to let us work without suffering one day.