wincent / yak-layout

Yak keyboard layout and optimizer
MIT License
26 stars 3 forks source link

Comparison to Halmak #2

Open dumblob opened 3 years ago

dumblob commented 3 years ago

In readme there is mention of many things, but I lack the reference to Halmak which I was suspecting to be the most advanced layout until I found Yak :wink:.

Any insights on the differences, emphasis, etc.? I wanted to make few suggestions to the latest version of Halmak, but first I'd like to see how it compares to Yak.

wincent commented 3 years ago

I think what they both have in common is that they are trained on a corpus of text input that you feed into them, so you'll actually get different layouts depending on what inputs you give. So while the Halmak project page shows "the" Halmak layout, it's really somewhat arbitrary, based on what was fed in to the keyboard-genetics project.

And in that sense, Yak, is the same. The readme shows an example layout, but there is no single "Yak layout"; rather, it's a program that will produce a layout that is "optimal" given the input that is fed into it.

In the end, I went with Colemak, because I like the idea of being able to sit down at any Mac or Linux machine and have that layout available to me "out of the box", even though it might not be a perfectly optimal layout for me.

dumblob commented 3 years ago

Thanks @wincent for the insight! Did you also use some measurement like https://github.com/MadRabbit/keyboard-analytics for the yak generator?

wincent commented 3 years ago

No. The approach is described in the README. Basically, trained using a corpus of text I typed, and distance calculations based on measuring a keyboard.

dumblob commented 3 years ago

Ok, thanks. Probably last question - did you observe any "convergence" in the best layouts the algorithm found for your test inputs?

I mean, in case of Halmak the best layouts didn't differ much from each other and I'm not sure whether it was really some sort of convergence or a "bad genetic algorithm with bad inputs"...

wincent commented 3 years ago

I didn't observe convergence, but not necessarily because there wasn't any to be observed; rather, because I didn't make enough observations. (Because, like I said, I had already decided to go with Colemak at that point and writing the layout generator was just for fun.)