keyboard_layout_optimizer
A keyboard layout optimizer supporting multiple layers. Implemented in Rust. (by dariogoetz)
trialyzer
Keyboard layout analyzer using trigram typing test (by samuelxyz)
keyboard_layout_optimizer | trialyzer | |
---|---|---|
10 | 4 | |
78 | 15 | |
- | - | |
8.0 | 4.4 | |
3 months ago | 11 months ago | |
Rust | Python | |
GNU General Public License v3.0 only | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
keyboard_layout_optimizer
Posts with mentions or reviews of keyboard_layout_optimizer.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-28.
- Is there a program, or website to calculate an optimal layout given input parameters?
- Is KeyboardEP good?
-
Help finding layout for multiple languages
Regarding evaluating, comparing and potentially even optimizing layouts, I would recommend my keyboard layout optimizer.
-
Critique my layout! Switching from Dvorak to an auto-generated layout optimized for an otholinear keyboard
I recently got a new ergonomic keyboard, after just typing on my laptop for years. I've used an ErgoDox before, so I went with the Moonlander. While configuring the keyboard and playing with the location of the spacebar, I realized that putting it on the right hand side resulted in a really bad balance between the two hands – it seemed like dvorak was way more right-hand dominant, and that was confirmed when I started looking into it. Went down the rabbit hole of alternate keyboard layouts, and found this repo: https://github.com/dariogoetz/keyboard_layout_optimizer . You can specify the physical configuration of your keyboard and provide a sample text, and it will generate layouts for you, using simulated annealing or a genetic algorithm. Here's a screenshot of the generated layout, along with Dvorak on the bottom:
-
Genetically Optimized Keyboard Layout
That's very interesting. I tried a genetic algorithm myself for my optimizer. In the end, I removed the crossover part, but mainly because I did not understand, how exactly it worked :)
-
Looking for optimal layout for specific key choices/Customizable layout generator
You can find the code for the evaluator here. Apart from my own set of metrics, it includes the ones used in KLAnext and also the ones from Oxey's layout playground (with some caveats).
-
A little help with my overthinking please
Regarding an evaluator with support for multiple layers that can be user-configured, supports "classical" hold layers as well as one-shot layers, and modifiers on "any key" (think home-row mods), I can advertise my own evaluator/optimizer https://github.com/dariogoetz/keyboard_layout_optimizer Saves you some time on a new project ;)
-
Autogenned
Identified (amongst others), by tweaked version of https://github.com/dariogoetz/keyboard_layout_optimizer
-
Yet another keyboard layout evaluator/optimizer
I want to introduce a pet project of mine that I have been working on in the last year - a keyboard layout evaluator/optimizer: https://github.com/dariogoetz/keyboard_layout_optimizer
- [OC] Which language is easiest to type on the QWERTY keyboard?
trialyzer
Posts with mentions or reviews of trialyzer.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-12-05.
-
Genetically Optimized Keyboard Layout
Regarding your future plans, take a look at the trialyzer project. They follow a similar approach as far as I understand.
-
DSFB analysis only makes sense for same-hand trigrams, doesn't it?
This is a table of trigram categories. The full explanation is here but we are interested in the sfs subcategories, which is my name for a DSFB in trigram form. sfs.alt is an alternating DSFB, the others are various forms of same-hand DSFBs.
-
How would you weigh SFBs / DSFBs vs. roll total / roll ratio (in:out) vs. redirects / "bad" redirects
As part of an analyzer, I typed a few thousand trigrams and measured the median speed of each. Here are the results. Each point represents the median speed of one trigram, broken down into bigram parts (the breaks down into th and he, which don't necessarily take the same amount of time each).
-
Which one is better?
I actually made a whole layout analyzer based on physical experimental measurements of how quickly you can type various trigrams. Some sfbs were definitely slower than others, as you predicted, but all of them were far worse than non-same-finger sequences. The highest rated layouts (with the fastest speed ceilings, therefore the least strain required to reach any given slower speed) all had SFB frequencies of about 1.2% or lower, even when the heatmaps were a bit wonky--for a while, the top scoring layout had t in the qwerty v position. But it had less than 0.8% sfb!
What are some alternatives?
When comparing keyboard_layout_optimizer and trialyzer you can also consider the following projects:
Keyboard-Heatmap - Realtime Keyboard Heatmap showing the character distribution of texts - made with heatmap.js
argmin - Numerical optimization in pure Rust
kbct - Keyboard keycode mapping utility for Linux supporting layered configuration
APT
layout - An article about my layout and releases for its installation.
oxeylyzer
kb-layout-evaluation - Evaluate ergonomic keyboard layouts over multiple languages
map2 - Linux input remapping for your keyboard, mouse and more!
cmaes - A Rust implementation of the CMA-ES optimization algorithm.
genkey - The layout analyzer and generator used to create Semimak
nerts-rus-34 - a ZMK / Linux setup for a writing-focused 34-key nerts / Russian keyboard layout
keyboard_layout_optimizer vs Keyboard-Heatmap
keyboard_layout_optimizer vs argmin
keyboard_layout_optimizer vs kbct
keyboard_layout_optimizer vs APT
keyboard_layout_optimizer vs layout
keyboard_layout_optimizer vs oxeylyzer
keyboard_layout_optimizer vs kb-layout-evaluation
keyboard_layout_optimizer vs map2
keyboard_layout_optimizer vs cmaes
keyboard_layout_optimizer vs genkey
keyboard_layout_optimizer vs nerts-rus-34