argmin
keyboard_layout_optimizer
Our great sponsors
argmin | keyboard_layout_optimizer | |
---|---|---|
2 | 10 | |
880 | 75 | |
4.4% | - | |
9.3 | 8.0 | |
10 days ago | 3 months ago | |
Rust | Rust | |
Apache License 2.0 | GNU General Public License v3.0 only |
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.
argmin
-
Rust concepts I wish I learned earlier
Two things that might help Rust a lot despite the complexity is the tooling and the ecosystem. Cargo is good, the compiler is extremely helpful, and there are a lot of crates to build on for all sorts of tasks.
For example, if I need to use simulated annealing to solve an optimization problem, there already exist libraries that implement that algorithm well.[1] Unfortunately, the Haskell library for this seems to be unmaintained[2] and so does the OCaml library that I can find.[3] Similarly, Agda, Idris, and Lean 4 all seem like great languages. But not having libraries for one's tasks is a big obstacle to adoption.
Nim looks very promising. (Surprisingly so to me.) Hopefully they will succeed at gaining wider recognition and growing a healthy ecosystem.
[1] E.g., https://github.com/argmin-rs/argmin
[2] https://hackage.haskell.org/package/hmatrix-gsl-0.19.0.1 was released in 2018. (Although there are newer commits in the GitHub repo, https://github.com/haskell-numerics/hmatrix. Not too sure what is going on.)
-
Is there a library for non-linear optimization in Rust?
You might find interest in argmin, a collection of common optimization algorithms.
keyboard_layout_optimizer
- 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?
What are some alternatives?
optimization-engine - Nonconvex embedded optimization: code generation for fast real-time optimization
Keyboard-Heatmap - Realtime Keyboard Heatmap showing the character distribution of texts - made with heatmap.js
ceres-solver - A large scale non-linear optimization library
kbct - Keyboard keycode mapping utility for Linux supporting layered configuration
cmaes - A Rust implementation of the CMA-ES optimization algorithm.
APT
Peroxide - Rust numeric library with R, MATLAB & Python syntax
layout - An article about my layout and releases for its installation.
good_lp - Linear Programming for Rust, with a user-friendly API. This crate allows modeling LP problems, and lets you solve them with various solvers.
oxeylyzer
image-shrinker-lite - Drag-and-drop image compression app.
kb-layout-evaluation - Evaluate ergonomic keyboard layouts over multiple languages