Author Topic: How to find the optimal layout and be sure about it?  (Read 20265 times)

0 Members and 1 Guest are viewing this topic.

Offline KnowArt

  • Thread Starter
  • Posts: 6
  • Location: Netherlands
How to find the optimal layout and be sure about it?
« on: Thu, 16 September 2021, 04:00:48 »
I can do some simple math and a tiny bit of coding, but for the life of me I can't figure out how I would find an optimal keyboard layout when there are 403291461126605635584000000 possibilities. Can't brute force that! How in the world would I be sure that my layout is the best for the parameters set?

To give a bit of context. I'm building a 32-key board with just 26 keys for characters. Exactly the alphabet. 3 keys for pinky, ring and middle finger and 4 keys for index. (modifiers and (back)space for thumbs)

Goals are as follows ranked by importance:
1. Low repeated finger use (even better if same finger is only used after two others)
2. High home row usage
3. Hand alteration and even hand usage
4. High usage of index, mid and ring. medium usage of pinkies.

I think it makes sense to first create groups of letters that have a optimal alternation rate for my languages. These groups can then be assigned to fingers to create alternation between hands and right amount of usage to pinkies. Then the keys can be put in a specific order within the groups to ensure high home row usage.

But... I have no idea if this is a way to come to an optimal solution. Even worse, I don't even know how to make these groups and allocate them to fingers.

I'll be working in Python probably, but as it's just math I think that doesn't matter a whole lot.

Looking forward to your input

Offline nevin

  • Posts: 1646
  • Location: US
Re: How to find the optimal layout and be sure about it?
« Reply #1 on: Thu, 16 September 2021, 08:19:29 »
there are tons of alternate layouts that people have already spent a great deal of time compiling. search around and see if any of them have most of the same goals you have. check some of the links i posted in the previous thread on layouts.

here's some more reading on the subject: http://mkweb.bcgsc.ca/carpalx/?popular_alternatives

most of the goals look good. pretty common for alternate layouts. #1 might be tricky though, too many different words to make this a reality.

also look into stenographer layouts for extreme minimal layouts.(there's been a couple projects on the subject already)
- these are usually chording keys (holding more than one key at a time)

i thought the one with mods on the home row was very interesting. besides blabbering here... i do more shortcuts than actual typing in my job.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline KnowArt

  • Thread Starter
  • Posts: 6
  • Location: Netherlands
Re: How to find the optimal layout and be sure about it?
« Reply #2 on: Thu, 16 September 2021, 10:48:15 »
Thanks for the recommendation. Interesting site! I'll have a look if his program is of any use for me :)

One of the problems recurring in most different layouts is that they almost always use a regular keyboard design. Horizontally staggered and 6 keys per index finger, while leaving all the real estate that's occupied with ,.;'/[ alone. Especially the 6 key index finger problem is a tough one... everyone seems to be doing it and for the keyboard design I have in mind it's not applicable. But maybe his program is customizable. I'll have a look

Offline nevin

  • Posts: 1646
  • Location: US
Re: How to find the optimal layout and be sure about it?
« Reply #3 on: Thu, 16 September 2021, 11:33:10 »
here's a link to the Open Steno Project & Plover
http://www.openstenoproject.org/

another way to think of tiny layouts.....
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline _rubik

  • * Esteemed Elder
  • Posts: 1129
  • Location: 192.168.x.x
  • Typing on: Brutal60, Lavenders Linears, GMK Jamon
Re: How to find the optimal layout and be sure about it?
« Reply #4 on: Thu, 16 September 2021, 13:12:58 »
I initially wrote a response discussing "how to (potentially) optimize for multi-variable layout problems", but then I realized one of the steps was "find the optimal layout for single variable"

Optimizing for single variables (I feel) is a sufficiently complex problem in its own right. So... are you trying to optimize a layout as a multi-variable function? Have you tried picking your single most important layout consideration and optimizing for that?
ai03 Meridian ¤ Mech 27 ¤ E8.5 ¤ Brutal60 ¤ SSK White Label ¤ HHKB Pro JP ¤ vAEK68 Alps Blues ¤ RF87u

Offline timw4mail

  • Posts: 1329
    • https://timshomepage.net
Re: How to find the optimal layout and be sure about it?
« Reply #5 on: Thu, 16 September 2021, 13:13:50 »
Thanks for the recommendation. Interesting site! I'll have a look if his program is of any use for me :)

One of the problems recurring in most different layouts is that they almost always use a regular keyboard design. Horizontally staggered and 6 keys per index finger, while leaving all the real estate that's occupied with ,.;'/[ alone. Especially the 6 key index finger problem is a tough one... everyone seems to be doing it and for the keyboard design I have in mind it's not applicable. But maybe his program is customizable. I'll have a look

Are you saying the index fingers should handle more than 6 keys, and/or be ortholinear?
Buckling Springs IBM Model F AT, New Model F 77, Unicomp New Model M
Clicky iOne Scorpius M10, OCN-branded Ducky DK-9008-C, Blackmore Nocturna, Redragon Kumara K552-1, Qtronix Scorpius Keypad, Chicony KB-5181(Monterey)
Tactile Apple AEKII (Cream damped ALPS), Filco FKBN91M/JB (Japanese Tenkeyless), Cherry G84-5200, Cherry G84-4100LPAUS, Datalux Spacesaver(Cherry ML), Redragon Devarajas K556 RGB, Newmen GM711, Poker II (Cherry MX Clear), Logitech G910 Orion Spark, Logitech K840
Linear Lenovo Y (Gateron Red), Aluminum kiosk keyboard (Cherry MX Black)

Offline KnowArt

  • Thread Starter
  • Posts: 6
  • Location: Netherlands
Re: How to find the optimal layout and be sure about it?
« Reply #6 on: Thu, 16 September 2021, 15:26:04 »


Are you saying the index fingers should handle more than 6 keys, and/or be ortholinear?

[/quote]

no! yes! ideally we'd get rid of two letters in the alphabet (Q and C) and give all fingers 3 keys. But as that's maybe somewhat too radical, so we have to compromise and give the index fingers 4 keys. Ortholinear? definitely not staggered horizontally, but this 4th key might be best placed to the side.

Offline timw4mail

  • Posts: 1329
    • https://timshomepage.net
Re: How to find the optimal layout and be sure about it?
« Reply #7 on: Fri, 17 September 2021, 08:32:07 »
no! yes! ideally we'd get rid of two letters in the alphabet (Q and C) and give all fingers 3 keys. But as that's maybe somewhat too radical, so we have to compromise and give the index fingers 4 keys. Ortholinear? definitely not staggered horizontally, but this 4th key might be best placed to the side.

By my count, on a standard ANSI keyboard, the right pinky has 13 keys (10 character keys), and the left 8 (5 character keys and tab), not counting the bottom row of modifiers. The middle and ring fingers each have 4 keys, counting the number row, and the index fingers 8.

I wonder why the thumbs only have the space bar. Perhaps a row under the space bar with the most common punctuation would be a good way to take some of the load off of the more overused fingers.


Buckling Springs IBM Model F AT, New Model F 77, Unicomp New Model M
Clicky iOne Scorpius M10, OCN-branded Ducky DK-9008-C, Blackmore Nocturna, Redragon Kumara K552-1, Qtronix Scorpius Keypad, Chicony KB-5181(Monterey)
Tactile Apple AEKII (Cream damped ALPS), Filco FKBN91M/JB (Japanese Tenkeyless), Cherry G84-5200, Cherry G84-4100LPAUS, Datalux Spacesaver(Cherry ML), Redragon Devarajas K556 RGB, Newmen GM711, Poker II (Cherry MX Clear), Logitech G910 Orion Spark, Logitech K840
Linear Lenovo Y (Gateron Red), Aluminum kiosk keyboard (Cherry MX Black)

Offline iandoug

  • Posts: 95
Re: How to find the optimal layout and be sure about it?
« Reply #8 on: Sat, 14 May 2022, 06:01:36 »
Bit of a delayed reply, but anyway ...

You are not going to brute-force it. Especially in Python.

Take a look at the Engram layout for some ideas.
https://engram.dev/

I actually did what you want to do last year, I need to write the paper. One of the results was the Poqtea keyboards.
https://www.keyboard-design.com/letterlayout.html?layout=poqtea.en.ansi
https://www.keyboard-design.com/letterlayout.html?layout=poqtea-qp.en.ansi

These kept ZXCV. Still need to evaluate the rest.

Most attempts at this have 2 steps: 1) generate layouts using some clever algorithm, 2) evaluate, repeat.

They screw up the second step and get bad results. The problem is they try to do a fast evaluation, typically based on bigrams only, because doing a proper evaluation is too slow.

Cheers, Ian

Offline fortissim2

  • Posts: 63
Re: How to find the optimal layout and be sure about it?
« Reply #9 on: Tue, 17 May 2022, 13:34:12 »
Putting only 4 keys on the index finger isn't a great idea IMO. Indexes are pretty strong overall, so maybe let pinkies have 2 keys and indexes have 5 keys instead.

However, I did make a random layout that may fit your needs. Feel free to do whatever you want with it.

Code: [Select]
y o u l      d h g v
i a e r x  k t n s c
q j z w      p m f b