Why haven't keyboards evolved in decades?

I find that opinion naïve; your average Zoë would be blessèd with some diacritical expertise on her résumé. But that’s just my 2¢.

@Geoff: NEO is pretty interesting! I think it tries to take things a few steps too far, and attempts to solve problems that are niche and better served with LaTeX, but its extensive use of “layers” is intriguing. I, for one, like that the iOS keyboard has four different layers of modification, as well as expanded character selection with press-and-hold. The numbers layer is very intuitive (ex: the location of the parentheses right in the center)

What if you’re doing something that requires keeping a key pressed for arbitrary periods of time? That menu thing would screw up games…

No, because that’s not a text input. When one played Counter Strike, the screen doesn’t fill up with W’s every time the player walks forward. But to be fair, I don’t think I stated my issue clearly: I’m wondering why the keyboard interface for text input is so stagnant and shortcoming.

I’m wondering why the keyboard interface for text input is so stagnant and shortcoming.

Some years ago we needed some way to produce macrons here - we ended up with a little Windows hack to create our own key combination (press and release [CTRL] key then press the vowel). I used to blame Microsoft and U.S. ethnocentric thinking for the trouble, but these days Microsoft provides a keyboard layout to type macrons using the [~] key - albeit not as elegant as our old method of using the [CTRL] key.

But the “CTRL and release” (despite its elegance) is still a dead key (someone here wrote that a dead key is one that does nothing, but on international keyboards, a dead key is a key that when pressed sets a “state” but provides no feedback… when the next key pressed is of a particular class, it will apply a diacritic to that character - ie. press [“] then a to get an ä (a-dieresis). If the next key pressed is some other character (e.g. space), the dead key will (usually) output the character you would expect from that key - the [”] for example.

I think Luftmensch makes a really good point. Dead keys are a really bad way of entering special symbols - there is no feedback and it is very difficult to work out in advance what a particular key combination will do. And using a keyboard where the double and single quote keys are dead keys is really annoying. Luftmensch’s suggestion of press and hold followed by a pop-up menu is a good one. Blender already has a useful convention for such pop-up menus - hit a number key to choose the appropriate item from the menu (e.g. alt-m to merge vertices - then 3 to merge them at the centre). In my mind though, the numbers should actually be written (and underlined) on the menu - so that we know which number to press.

I honestly hope “Press and hold” eventually makes its way from phones and tablets to PCs.

Someone already mentioned that some languages already have IMEs (Input Method Editors) which allows you to compose characters from a far larger character set than the number of keys on a keyboard. IMEs should be a standard part of our operating systems by now. They woulld be able to bring predictive text input as well as diacritics etc to any application including when I write my posts on blenderartists.org.

In my word processor if I write cafe it is autocorrected to café, but in Firefox, I have to fall back to [alt]-0233 (on the numeric keyboard) - I’m proud of this bit of arcane knowledge but remembering the ASCI code for e-acute is just that - “arcane knowledge” not sensible UI design.

I did a bad job describing dead keys, what I meant is that they apparently do nothing. Your description is pretty good, though for clarification I would amend it to say that dead keys enter a modal state. Modal states can be extremely powerful, as anyone who uses Vim knows. And I would actually argue that Vim has a really good UI, with the caveat that it’s exclusively targeted towards power users. Casual users will never benefit from the Vim interface.

By contrast, as you noted, memorizing ASCII codes is not good UI, not even for power users. Even if you memorized the entire ASCII character map, it’s extremely inefficient to enter [alt] codes.

A point of clarification: I’m less interested in rearranging keyboard layouts (though that could be possible, up to a point) as I am in improving the interface between the keyboard and the text field. Keyboard input has actually been evolving just fine in certain field, notably games. Just compare modern WASD-mouse FPSs to the old Doom controls, and the still-evolving design of ARTS controls. Look at Blender. The keyboard, even with its clumsy key layout, is actually a very flexible and capable input device. The problem is in the interface.

@Kaurunga: You’re the first person to agree so far! I was wondering if I was crazy. So far I’ve asked around a lot of places, and I haven’t found much interest or many projects that went beyond simple key-remaps. There is some very powerful macro software out there, which I think is relevant, but I haven’t used it. Frankly I don’t know the first thing about software development, but I’ve been pursuing self-education anyway, so I’m going to try and develop some kind of prototype of the ideas discussed if I can. If you’re interested, even just to do your own research, keep in touch; maybe we can get something going after a while.

It’s my understanding that keys like alt, control, shift etc, are called “modifiers”, because they modify what other keys do, meanwhile dead keys are keys that will modify what the next key pressed does, even after they’ve been released (for example, on my ABNT2 (Brazilian Portuguese standard) keyboard, if I press ~ nothing seems to happen, but if I press A next it actually types à (I think they are called “dead” because on typewriters the paper/writing head wouldn’t move when you pressed them, but I’m not sure).

Ah, here: https://en.wikipedia.org/wiki/Dead_keys

@@TiagoTiago - yes. That’s a clearer description than mine.
The question I’m thinking, wouldn’t it be better to press and hold the A key then choose from a range of available characters: ÂÃÄÅÆ using a pop-up menu or predictive text? In my mind this would be a positive evolution of our keyboards … what changes to our OS or applications would be required?
There have been some other questions raised here :
Why we use QWERTY (and not DVORAK)? There is some disagreement on the design of QWERTY keyboards, whether it is simply a hang-over from the way lead type was lined up for printing presses, or whether it was deliberately designed to stop typewriter hammers from binding as you type. Neither of these issues are relevant now. DVORAK was designed to place the most used keys on the home row for more efficient typing, but actual research results seem to be mixed. Of course there is a real cost to learn to type on a completely different layout.

The caps lock key: in my experience 99% of the time if I hit caps lock, it was a mistake. It is between shift and tab on my keyboard and just a nuisance. (as an aside, I have the same problem with the left mouse button in Blender - I really don’t want to move the 3D cursor away from the origin very often - most times it is a mistake).

New keys: I remember when the “windows” key started appearing on keyboards during the 90s. Microsoft keyboards had a windows key and a right-hand context menu key. My laptop doesn’t have the context menu key. I got quite proficient at [windows]-r (for Start | run), and also [window]-s to shut it down (and go back to Linux?). Microsoft - in their wisdom - have broken that now by adding a lot of crud into the start menu.

Keys as cursors: There are times when our “mode” is not typing, particularly in games. Then we can use keys for commands (as in Blender) or for controlling movement e.g. using the WASD keys. I haven’t played games so much recently, but used to play “rogue” which used HJKL for directional movement, based on the old vi text editor bindings. My guess is that these days WASD is preferred because people usually have their right hand on the mouse? Most keyboards these days have arrow keys (and PgUp, PgDn, Home and End) which I prefer for navigation, but there are sometimes when more than 2 dimensions are required,
e.g. in Blender and many 3D games we can manipulate both the view and the active object separately. So we need an interface which lets us do that… it is worth it to find the best solution for this.

Modality (same key has different action in different modes): When I was studying programming in the early 90s we were taught “modal interface = bad : non-modal= good”. But I think for expert users, modal is good - Blender is modal :slight_smile: In my opinion when the number of commands is large modality starts to become a necessity. There’s still work to be done to standardise key bindings across modes.

Predictive text: in the early 90s I saw a seminar on some cutting edge research on predictive text. These days, I use it every day on my phone or in the address bar of my browser, but it still isn’t available in the text box I’m typing the message into…

Having to reach for the mouse or the arrow keys just to type an accent seems a bit practical with full sized physical keyboards; and waiting for the hold time to kick in is slow even on touchscreen keyboards. And I don’t like predictive typing, usually I can get it right the first time, specially in physical keyboards, and the suggestions are wrong more often than not. Additional functionality on hold was done because of limited screen space (limited number of buttons avaialable), and predictive text first was because cellphones just had numpads, and then also because the lack of tactile feedback for on-screen keyboards and tiny sizes lends to higher error rates.

Hold functionality makes more sense for thumb keyboards, stuff where you don’t got fingers to spare and a limited number of keys possible, and on-screen menu for alternative functions doesn’t make much sense unless you’re already reaching for the screen while typing.

I guess I can see the benefit of autocorrect for some people (though it tends to teach people to use wrong words, quite a rage inducer; so I’m actually a bit on the fence about it); but that needs to be optional. Technology isn’t advanced enough to make it perfect; I much rather my own occasional random typos than the consistent absurd errors autocorrect tends to do.

I pretty much never hit the capslock by accident; and I find it very useful, it’s a pain to have to hold the Shift key to type anything more than just a few upper case characters in a row.

I pretty much never need the 3d cursor to be at the origin, and usually when I need it, it is somewhere different than it was last last time, so I need to move it anywaw; so misplacing it isn’t a big issue because whenever I need to use I need to place it in a new position anyway.

IMO we don’t have enough modifier keys the way it is, I could use a few more.

There needs to be a “raw” mode avaiable to software to allow for innovative and non-standard uses of the keyboard input, that’s for sure.

And btw, the keyboard I got right now is already the second one I’ve had that has the Home+End+Insert+Delete+Page Up+Page Down cluster sideways; that’s one of set of keys you can’t count on being on the same physical layout even for keyboards using the same language layout.

If the keys are standardize across modes, doesn’t that makes they keyboard shortcut not modal?

I could be wrong, but I think that for anything but stuff like very stiff commands, long address you visit often etc, stuff that is long but always the same; having to look at the options is slower than just touchtyping for people with enough practice. Normal typing isn’t extremely predictable without a post-singularity AI (you would essentially need to be a mind reader to make the user not need to worry about the computer typing something different than they are thinking of typing); for technical stuff, and specially stuff with limited vocabulary it could save some time most of the time, but wouldn’t work with natural language.

That makes two false assumptions: that selection must be done with the mouse or arrow keys, and that there must be a delay. For aesthetic reasons, there could be a delay between the key press and the GUI menu, but the GUI only needs to be an assistive technology; a power user should be totally familiar with the key combinations for commonly used characters. For the purpose of selection, there’s no reason why ASDF or JKL; could be used instead, or for that matter QWER and UIOP. As long as the GUI makes the selection process clear, it would not be a burden to learn these uncustomary key combos.

How often do you need to use CapsLock? Is it more often than you need to use Ctrl? Why should it occupy a priority position? It makes sense on French keyboards where numbers are in the shift position, less so on US keyboards.

[quote=“TiagoTiago,post:28,topic:619129"”]

I pretty much never need the 3d cursor to be at the origin, and usually when I need it, it is somewhere different than it was last last time, so I need to move it anywaw; so misplacing it isn’t a big issue because whenever I need to use I need to place it in a new position anyway.

Agreed.

i would like a keyboard with the navigation keys in a usable location. It’s actually more efficient for me to use a trackpad, because it’s faster for me to reach accurately.

But then how would you type plain A followed by plain S?

Depends on what I’m doing; for writing usually Capslock is used more; for non-words related interaction with the computer, I guess I tend to use Control more.

I don’t understand the difficulty. Normal 26-letter typing would be identical, the difference would be that special characters would be typed as key combinations, similar to modifier keys.

And for me, even with text-input I use Ctrl more than CapsLock for formatting. All-caps input is actually a niche use case when it comes to typography as a whole.

You mean to it’s like for example to type û you would press U+I? Then how would you type î ?

Hm, I don’t do much text that deals with formatting; lately it’s mostly talking to people on the web and such. What do you you use Control for exactly?

I use Ctrl mainly for the usual copy/paste/bold/italic/whatever else. I feel like, ironically, smartphones have harmed WYSIWYG formatting on the web because markup tags are cumbersome and shortcuts are clumsy, though it has resulted in some interesting new markup styles (@ for hyperlink, * for bold).

The way I was going to prototype it, the selection key would alternate depending on which letter was being modified. So, for I, the acute accent would be selected with F, and for E the acute would be selected with J. I’m going to work on this and see how it does, but intuitively I think it could work.

Additional note: I agree that I don’t think that predictive typing would be very good on a device as precise as a keyboard. However, systemwide spellcheck and IME would be beneficial.

I’ll user the old adage on you ----

“If ain’t broke, why fix it?”

I have had several keyboards over the years, ergonomic, the small Mac wireless ones. Personally, I have the standard extended Mac keyboard at home. It’s wired and works like a champ. It was the first keyboard that I bought when I my first Mac mini 7 years ago. I’ve been through a few of “newer” technology keyboards…they just don’t seem to work like my old stand by. I’ve thought about buying another one…just back up’s sake.

At work, they keep getting us new ones. We’ve had several different keyboards. Recently (A year ago), they got us the Microsoft Ergonomic Keyboard. It seems to work okay. But, it really hasn’t changed how I use it.

So, based upon my limited experience…I’ll ask the question again…

“If it ain’t broke, why fix it?”

“If ain’t broke, why fix it?”

When I ride my bicycle, I adjust the seat to the right height for efficient pedalling. I can ride the bike perfectly well with the seat too low, fixed gearing and the tyres underpressure, but it’s a lot more fun when it is set up right. I spend a lot more time on my computer than I do on my bike so even small improvements in the UI can still make improvements to my experience using the computer.

So I say, if we see something that needs fixing - mention it… someone might just fix it. And once it has been fixed, people will notice it and wonder how they survived without it in the past. Or perhaps, they’ll complain about it at first, and some time later find themselves using the old system and start wondering “how did I ever live with such a clunky old system?”

There should be bigger keywords with bigger buttons for people with big hands and small keyboards for people with small hands.

I was just thinking about that the other day. It was so weird to stumble upon this question now. The answers are very great, I must say. Thanks for sharing your ideas. - Kollin from http://assignmentjedii.co.uk/ help with assignments

I would like to see a ubber ergonomic desk chair, with 1 half the keyboard at where your hands rest naturally, dont know how you would slide over to a mouse and back though…

Some ignorance about apple here?
Only one mentioned it. But, who cares.
Apple uses ctrl, alt, cmd keys.
Meaning, alt+e=´, following by e =é.
And, è, î, ø,ü, ö, ä, É, È, Ü, Ö ç œ etc etc.
You see, we don’t have to pick another keyboard layout to write something.
My wife (a french language teacher) almost never uses a french (or better a canadian french) layout.
What if I would compose an email to a Turk friend? Write his name wrong? Or install a turkish layout keyboard?

Of course you all hate apple
Here some more,
to jump into sculpt mode, fast, alt+TAB is just fine. You can’t have it under WIN of course.

What I’m saying is: Add another key, as apple did years ago and you have much more options.
Talking about options. OPTion was the key in older apple keyboards, not alt as is today.

The key exists there, the WIN key.
What id does? Not much except of opening the start menu and other less important actions.