Better than Dvorak or Coleman?

User avatar
pietergen

30 Aug 2014, 21:39

I made a custom layout, optimized for my use: 85% Dutch, 10% English, the rest a mix of French, German and Spanish.

The drawback is that it only has ONE letter in common with Qwerty: the A. The advantage is that it scores better than Dvorak, Colemak and other layouts. For Dutch, German, but also (remarkably) for French, Spanish and Italian, it scores better then ALL other layouts in patorjk s keyboard analyser.

For English, it beats Colemak and Dvorak and most others, only Balance 12 and MTGAP score slightly better in English.

Conclusions:
- Dvorak, Colemak, Balance12 and MTGAP are all very good layouts.
- if "qwerty similarity" and one hand key combo's like ctrl-X and ctrl-v are important to you, Colemak may be a good choice.
- if support in many OSes matters: Dvorak ! (a very nice layout really)

- my layout is slightly better even
- making a dedicated layout is worthwile, but is of course more of a hassle. On the other hand: if you are going to learn a new layout, why not go all the way?

I calculated it using MTGAPs software. Given that English and Dutch are both germanic languages, it is not strange that my layout looks a bit like the English MTGAP optimal layout. The (not aimed for) similarities to Dvorak are striking though! So here it is.

My layout
. u o p y x c l b v
a i e n h m d r t s
: , ? k q f g w j z

Dvorak
‘ , . p y f g c r l
a o e u i d h t n s
; q j k x b w m v z

MTGAP (English)
y p o u j k d l c w
i n e a , m h t s r
q z / . : b f g v x

Edit: for comparison, this is Colemak:
q w f p g j u y ;
a r s t d h n e i o
z x c v b k , . /

Edit 2: yes, it is a bitch to learn, especially coming from qwerty hunt&peck....

Similarities (My layout, Dvorak, Mtgap) - for those less used to keyboard analysis ;) :
- all vowels on one side
- y p c and l in the top row
- roughly the same letters on the same hands / same rows
- no efforts to maintain qwerty-compatibility.

I am looking for a catchy name for my layout. Suggestions ?
Last edited by pietergen on 16 Sep 2014, 21:10, edited 1 time in total.

User avatar
webwit
Wild Duck

30 Aug 2014, 22:08

Interesting layout. The q is closer than the j and z?

Not so sure about that keyboard layout analyzer. It weighs how often you switch fingers and hands while typing at 34%. Some layouts prefer finger rolls over hand alternation, which is preference. The analyzer prefers Dvorak like layouts.

Max

30 Aug 2014, 23:50

I think it would be cool if you used the letters in the home row to create the name, heres what I came up with using french/spanish/english: tien start est here (your start is here)

Nice layout good luck learning it. :P

User avatar
pietergen

31 Aug 2014, 12:38

@Max: thanks - and how about Herr Samedi ? Or simply Samedi ? It is both relaxed (samedi means saturday in French) and links to the voodoo Baron Samedi :lol: Mr Samedi ? Dr Samedi ?

@webwit: this may be clearer. Bold = under the fingers. Bold + italic = home row

. u o p y x c l b v
a i e n h m d r t s
: , ? k q f g w j z

y x and q are not much used in Dutch, so they ended up in bad spots. (because of the stagger of the fysical keyboard )
x = qwerty y, a really bad spot
y = qwerty t, a bad spot
q = qwerty b, a very bad spot

z = qwerty / which is not so bad
j = qwerty . J deserves a better spot in Dutch actually. As does the letter H. But, keyboard design is all about compromises.....

The layout was calculated by mtgap 's algorithm. I used patorjk's only to compare it to other layouts. I share your remarks about that analyser though. By the way, my layout has more alternation than Colemak but less than Dvorak. It also has some nice rolls, in the homerow AND in the top row.

User avatar
Muirium
µ

31 Aug 2014, 14:26

What list of bi-grams did you use to analyse this? I'd like to try some experiments of my own — preferably with rolls for common English sequences like th and gh — but I'm a terrible programmer and I'd like to borrow other people's work where possible!

User avatar
pietergen

31 Aug 2014, 18:27

Hi Miurium, I calculated my own, based on my corpus (most Dutch, some English, a bit of French, German and Spanish). I used a python script for it that someone at the Colemak forum wrote. Next, I fed these frequencies into the mtgap program, which calculates the layout. You can enter preferences (more rolling, higher penalties for same finger use etc.) Since keyboards are compromises, a better score in one aspect (e.g. more rolls) often means a worse performance in others (e.g. an overloaded pinky).

I'll look up some English data for you.

Edit: neither the Python script nor the MTGAP program (offered as source code, it's written in C) are very 'consumer friendly'. If you like, I can analyse some text (that you provide) and send you the frequencies and/or some suggested optimal keyboards. Of course I can also send you the pythonscript and a link to the mtgap code on Github. Just let me know !

jacobolus

31 Aug 2014, 23:23

Is there an explanation somewhere of the scoring metric http://patorjk.com/keyboard-layout-analyzer uses? I can’t find it in a 2 minute skim.

I’m really skeptical of most of these metrics. The ones I’ve seen, such as carpalx, seem to me to be based on very flawed models.

Here’s the mtgap metric you apparently used in making your layout:
Here's my (almost) latest version of the scoring program, in order of importance. (Higher scores are worse.)
-Each position has an assigned cost:
66 35 29 33 60 91 33 29 35 66
0 -8 -10 -10 40 40 -10 -10 -8 0
96 72 60 48 109 48 48 60 72 96

I decided on those values by measuring the horizontal and vertical distance between each key on a standard keyboard. I then multiplied the horizontal and vertical distance, with the proportions changed based on the strength of each finger. The horizontal distance was magnified for the middle and ring fingers because they are not good at moving sideways, only forward and backward.
Using the same finger twice costs 60.
Using the same hand and reversing direction costs 1.
Jumping over the home row costs 50, unless it's using the index finger on the bottom row, in which case it only costs 10. (Type VE, it's not too hard.)
Moving to the center without switching hands costs 10.
"Hand warping" costs 4.
Changing rows costs 10.
Rolling inward along one hand subtracts 2 from the score, and rolling outward subtracts 1.
I think the scoring seems somewhat arbitrary, frankly.

User avatar
pietergen

01 Sep 2014, 10:16

@jacobolus: Patorjk says this about his model - "The optimal layout score is based on a weighed calculation that factors in the distance your fingers moved (33%), how often you use particular fingers (33%), and how often you switch fingers and hands while typing (34%). " Couldn't find the exact formula either....

The Mtgap model is more overt. The effort grid is indeed arbitrary, but it can be modified to taste in the source code.

An optimal keyboard would be different for each user (hands, preferences), use (the sort of things you type at that moment; languages); condition of the user (a tired user may have different needs); physical keyboard (type of switches, matrix-like grid or staggered columns). This would, however, be hard to implement in practice. Also it (or rather, they) would be extremely hard to learn. :shock:

jacobolus

01 Sep 2014, 20:57

I think it’s much better to try to come up with an explicit score for each pair of keys (at least on the same hand) than to just have one explicit score for each key plus a score modifier for row changes, “hand warping”, etc. [It’s also not clear to me from the description whether the score modifiers apply to keys on opposite hands, or only keys on the same hand; I don’t have the time to dig into the source code to figure it out, but the former wouldn’t make much sense IMO.]

I don’t think it’s remotely necessary to have a different layout when tired or drunk, or a completely different layout for each user.

Obviously changing the physical shape of the keyboard will make a big difference, and should also be a priority. The physical shape of the standard keyboard was wonderful in the 1870s, but is a tragic joke today. If it is necessary to use a standard keyboard, a new starting hand position should be found (in particular with the wrists starting at a neutral angle), and the “traditional” “home row” abandoned, and a new character map should be optimized around the new more comfortable hand position.

User avatar
pietergen

04 Sep 2014, 15:47

jacobolus wrote: I think it’s much better to try to come up with an explicit score for each pair of keys (at least on the same hand) than to just have one explicit score for each key plus a score modifier for row changes, “hand warping”, etc.
Agreed. Although in the standard touch typing technique the results would be almost the same, for the assumption is that fingers rest on their home positions.
jacobolus wrote: I
It’s also not clear to me from the description whether the score modifiers apply to keys on opposite hands, or only keys on the same hand
Same hand only.

In the default settings, the model favors 2 x 2 layouts, that is: 2 letters lefthand, 2 letters righhand and so on. Dvorak favors 1x1.
jacobolus wrote: I
I don’t think it’s remotely necessary to have a different layout when tired or drunk, or a completely different layout for each user.
For users, yes it does! Say, I have very long pinkies, in that case I can reach some keys easier than other people can.... right?
jacobolus wrote: Obviously changing the physical shape of the keyboard will make a big difference, and should also be a priority......
+ 100 !
jacobolus wrote: .....a new starting hand position should be found (in particular with the wrists starting at a neutral angle), and the “traditional” “home row” abandoned
I'm intrigued ! Neutral angle, right. Ergodox, utron etc. Agreed. But what do you propose instead of how row(s) ?

User avatar
Muirium
µ

04 Sep 2014, 16:27

Hmm. Interesting stuff here. I get the feeling I'll probably only fully understand it once I've whipped up an analysis of my own. Might as well add it to my list…

User avatar
pietergen

04 Sep 2014, 16:54

Great, Muirium ! Keyboard analysis is fun. But hard to do it right, since you are optimizing so many things. Optimal is:
- minimal distance, also knows as minimal finger travel.
- minimal row jumps (from home row up or down)
- minimal home row jumps (from bottom row to top row; or vice versa)
- optimized distribution over fingers and hands; for instance 7% Lpinky, 9% Lring, 17% Lmiddle, 17% Lindex; right had the same
- optimal use of thumbs (this needs a different keyboard, see Arensito, or ErgoDox, Maltron etc.)
- optimized alternation (1x1, 2x2, 3x3 etc. Dvorak aims for maximum alternation, Left, Right, Left, Right. I call this 1x1. MTGAP aims for 2 keys left, 2 keys right, so LLRR and so on. I call this 2x2. Colemak seems to favor longer rolls, so perhaps 3x3)
- optimized rolls. On a qwerty board, DS is easier than DA. ASD is OK (although I personally don't like 3 letter rolls), ADS is unwanted because it involves a 'come and go' motion. Some people claim that an inward roll is better than an outward (so, ASD is better than DSA), I don't feel much difference, for 2-letter rolls I even prefer outward slightly, I think....
- maximum number of "easy" words, minimum number of "hard" words. Here is an optimation problem. What is a better keyboard? Keyboard A in which 80% of the words are deliciously easy, but 20% are very hard; or keyboard B, on which 100% of the words are "OK" to type? Or: should it be acceptable for all languages, or "perfect" for, say, German prose, but not so good for English prose or for code?
-easy to remember. How much ergonomy are you willing to give up for recognition? For less used keys you may prefer an easy to remember spot, over an ergonomically optimal spot. Example: most people want the numbers in some sort of cluster or line, not seemlingly "haphazardly" spread
- this relates to the 40%-60%-75%-100%-SpaceCadet discussion as well. A keyboard with many keys (Space Cadet !) is easy to remember: just read the key caps! And yet, ergonomical optimal is no move the hands as little as possible, to use layers for less used signs. Enter the 40% keyboard. Which, however, is harder on the brain because you need to remember all those layers...."now where were that \ sign and that ~ " ?
- should it look like Qwerty? Or not?

Like I said, fun stuff! Keep us posted!

User avatar
Muirium
µ

04 Sep 2014, 17:31

Yup, everything is a compromise. Keyboard layouts are a highly complex problem space, so I'm always suspicious when people claim to have found the best one of all. Sure they have, but best for what precisely!

I'm a 60% user myself, so I'm happy with wrapping my head around layers instead of my hands. But my touch typing remains the untrained hands flying everywhere style that limits me at 70 wpm or so. I've dabbled in Colemak a bit, but I feel like I want to tweak some things for my own preference and see where they lead. Seeing as I run my keyboards through a Teensy (or build one into them) the physical layout is abstracted from the OS anyway, so I've plenty of freedom to explore. I can define my keymap in the keyboard, rather than having to set it up everywhere.

User avatar
pietergen

04 Sep 2014, 20:39

Sounds great, Mu ! I am planning on building a small kb for that same reason. And why not store some passwords in the keyboard? I'm not sure how to do that safely, though.....

User avatar
scottc

04 Sep 2014, 23:05

I know a secure way: you unlock them using a passphrase. That passphrase happens to be the password itself. When you type the passphrase, the keyboard recognises it and spits out the password. It's perfect.

vang0341

05 Sep 2014, 09:19

In my opinion the period is better suited elsewhere. And I have a question, are you left handed?

User avatar
pietergen

05 Sep 2014, 12:22

scottc wrote: I know a secure way: you unlock them using a passphrase. That passphrase happens to be the password itself. When you type the passphrase, the keyboard recognises it and spits out the password. It's perfect.
LOL :lol: :lol:

No, I meant implementing something like a keyring, Keepass etc. in the keyboard firmware.

User avatar
pietergen

05 Sep 2014, 12:55

vang0341 wrote: In my opinion the period is better suited elsewhere. And I have a question, are you left handed?
I was surprised too that the program came up with that location for the period, but it turns out to be comfortable ! I am righthanded by the way; the layout is a bit skewed to the left (mainly because of the heavily used middle), but not problematically so. Here are the stats:
Left hand: 57% - Fingers: pinky 9% ring 10% middle 22% index 16%
Right hand: 42% - Fingers: pinky 8% ring 10% middle 12% index 14%
Inward rolls:7.54%; Outward rolls: 2.94%
Same hand:36.39%; Same finger:1.46%;
Row change:12.27% Home jump: 0.66%


For comparison, here is Colemak:
Left hand: 46% - Fingers: pinky 8% ring 7% middle 11% index 18%
Right hand: 53% - Fingers: pinky 9% ring 10% middle 15% index 18%
Inward rolls: 4.51%; Outward rolls: 2.50%
Same hand: 42.63%; Same finger: 1.89%
Row change: 18.63%; Home jump: 1.33%

And here is Dvorak:
Left hand: 44% - Fingers: pinky 8% ring 8% middle 12% index 14%
Right hand: 55% - Fingers: pinky 11% ring 13% middle 13% index 16%
Inward rolls: 4.14%; Outward rolls: 1.25%
Same hand: 31.14%; Same finger: 3.16%
Row change: 14.36%; Home jump: 0.50%

So, my layout scores better on distance (not included here); has more rolls than Colemak and Dvorak, lower row change than both, lower same finger than both. The alternation (same hand stat.) is between Dvorak and Colemak. Dvorak has a less home row jumps. Mind that the Colemak and Dvorak stats are done with and English corpus (for which they are optimized), my stats are done with a 85% Dutch corpus, for which it is optimized. When Colemak and Dvorak are "fed" with Dutch text, they will score worse, and the gap with my optimized layout is larger.

I have included a Colemak-like CapsLock=BackSpace. The effects of this are not in the stats, but it loads the left hand even more; I may move that one to the right hand.

I am not happy with the Shift location on standard keyboards because they force me to take my hand off the home row. I may swap Alt and Shift. On my laptop I hit the Alt keys with my thumbs.

User avatar
pietergen

16 Sep 2014, 16:59

I just found out that the German layouts Bu-Tec and AdNW are remarkably similar to my layout.

bu-TECK-DE SFR
bu . ,p c l m f x
h i e a o d t r n s
k y q j g w v z

AdNW-SFR
k u q . j v g c l f
h i e a o d t r n s
x y - . " b p w m z
*/

My layout
. u o p y x c l b v
a i e n h m d r t s
: , ? k q f g w j z

Dvorak
‘ , . p y f g c r l
a o e u i d h t n s
; q j k x b w m v z

MTGAP (English)
y p o u j k d l c w
i n e a , m h t s r
q z / . : b f g v x

It's remarkably that three different methods give three similar results.
Method # 1 was that of Dr. Dvorak;
method # 2 is Michael Dickens' MTGAP algorithm, which is behind his English and my Dutch layout;
method #3 is of the ADNW-guys, from the Bu-Tec and AdnW-layout.

Again, hats off to Dr Dvorak who did all this without computers, in the 1930s.... :shock:

davkol

17 Sep 2014, 21:18

What about Bulgarians in 1907?

User avatar
pietergen

18 Sep 2014, 15:43

@davkol : What a great read! Turns out that in Bulgaria, as early as 1907 they developed a keyboard based on roughly the the same principles as Dvorak, AdnW, MTGAP and my own layout...

I am a language lover, but unfortunately I never learned a Slavonic language.... So Davkol and other Slav. speakers, correct me if I'm wrong please (I can't read Cyrillic well)

What I think I read is this: most frequent letters in Bulgarian: AIEOTNRSBD - does sound familiar, right?
Digrams: NA TA TO NI AT ST RA TE WA EN IT OT PR - doesn't sound very strange either!

The theory behind the KB is to have frequent keys on the home row, to have a lot of alternation, and to minimize home jumps. Wow, this was 1907!

I can't really read the keyboard, lots of letters that germanic and latin languages don't have - could any of the slavonic Deskthority members translate this?

Image

davkol

18 Sep 2014, 15:58

Here you go. ^_^

Vorak

19 Sep 2014, 19:15

Whilst learning Dvorak I found that keys being in the same place was only of assistance when learning the layout, but it didn't affect the learning curve significantly; the end result justified learning it, not the ease of learning it.

When trying to learn Colemak I found my brain would short-circuit and switch to Qwerty. It might actually be a hidden benefit.

User avatar
pietergen

23 Sep 2014, 19:54

I revisited the carpalx-website and had a nice surpise: Martin Krzywinski has calculated a keyboard specifically for Dutch! Of course based on his model. He did this for the Dutch online magazine De Correspondent, who (quote) "allow their reporters to spend more effort on the stories and less on typing" (unquote).

The layout is (as always with the carpalx layouts) nothing like neither qwerty nor dvorak. Here it is. For comparison my Dutch optimized layout (as calculated with the MTGAP software) is below.

carpalx, Dutch
Q F K L M W V U J Y
S D T N R I A E O G
; Z B H X P C , . /

my layout, Dutch
. U O P Y X C L B V
A I E N H M D R T S
: , ? K Q F G W J Z

Similarities:
- most of the homerow (duh...)
- all vowels on one hand (carpalx puts them on the right side, I on the left)

Differences:
- I don't see as many nice rolls in carpalx, although this is often hard to see, you have to really use the layout.
- carpalx puts O and G under the home row fingers, at the expense of R and I
- carpalx gives ; its own key, in my layout the more used : has it's own key, ; is in the shift layer
- carpalx assumes (so it seems) that the qwerty-letters q and p are really bad spots, carpalx puts the least used letters in Dutch on those spots (Q and Y). To me, those spots are not bad at all!
- to me, the lousiest spots on a qwerty-board are: B Y T In carpalx, the frequent Dutch letters M and W are (in my opinion) on too bad spots. As are , and . (why keep them in qwerty spots?) Q and Y, on the other hand don't deserve the good spots they are given....

Anyway, all this is based on arm chair theorizing! I am very happy that Martin "Carpalx" calculated a Dutch optimized layout and I will surely try it out to see how it feels, maybe it feels good and my critisism is all wrong :-)

bowabos

09 Oct 2014, 16:33

Very interresting subject.

Would it not be more natural to have vowels on the right side as a lot of words are consonants followed by a vowel or because of brain crossing with limbe control, it is preferable to cross?

User avatar
pietergen

10 Oct 2014, 12:53

@bowabos: I don't think "crossing" is a problem. Besides, some words start with a vowel, others with a consonant.

All vowels on one side can be a problem with words that have many vowels. Like the English word Queueing. Or with "consonant heavy" words, such as the English word Strengths. Some languages have relatively many "vowel heavy" words.

Carpalx was right in his criticism of my AIENH layout, in that there were too many long left-hand words. This is because EN is the most common Dutch digram. The layout came up with this one, because the algorithm looks for "rolls", and EN is a nice roll that layout.

I recently discovered the (German language) website and layout www.adnw.de The layout is specifically NOT looking for rolls, but rather for avoidance of using neighbouring fingers. So, it wants to avoid qwerty AS or WE. It aims for alternation (so A and S on different hands, if possible). This is not always possible of course. In that case the letters should not be next to each other. The idea is that (qwerty) AF is easier on the fingers than AS.

Following Carpalx' criticism, I calculated this version:
. u o f y q p l m w
a i e s h c d n t r
: , ? k x b g v z j
This one has a better L/R balance and more alternation.

In the next weeks I will try out Carpalx' Dutch version, and the AIESH layout and an ADNW layout, some guys there have calculated a multi-language (Dutch/English/German - hence the German letter ß) version for me:
zo¨,y pcmlßf
saeiu dtnrhk
xq'.´ gbwjv

I would switch the g and b however. And the p is in a bad spot....

Post Reply

Return to “Keyboards”