Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/opatut/keyboardlayout
https://github.com/opatut/keyboardlayout
Last synced: 14 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/opatut/keyboardlayout
- Owner: opatut
- Created: 2017-06-17T19:49:01.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-06-17T19:50:20.000Z (over 7 years ago)
- Last Synced: 2023-03-11T13:34:57.105Z (almost 2 years ago)
- Size: 6.84 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Keyboard Layout Optimizer
## The plan
1. record ourselves while typing all day, every day, for a long long time
- this includes key strokes
- and mouse movements
- and their timings
2. find out a lot about what we're doing with the keyboard
- n-grams of inputs
- interpret selected modifier keys, don't interpret others
- so we need all the data available
3. plot some fancy stats for maximum nerdiness
4. define a few metrics for penalty estimation of using keys in sequence
5. build an optimizer, e.g. genetic algorithm
- maybe GPU optimize
- modular penalty evaulation of sequences / n-grams
6. experiment with constraints
- move/fix modifier keys
- actually optimize special characters
- why is the lowercase letter on the same key as the uppercase letter?
- can we have special characters near the home row?
- move around physical keys -> matrix design?## Filtering / data extraction
* n-gram maximum duration / delay between keys
- should be around 1-2 seconds per key I guess## Penalties (things to consider)
* basic key penalty for distance from home position
* basic finger penalty for pinky/ring finger
* Same Hand Utilization (SHU)
* Same Finger Utilization (SFU)
* neighbor keys are sometimes good
* vertical movement vs horizontal movement
* actual hand base movement### Basic ideas
* http://mkweb.bcgsc.ca/carpalx/?typing_effort
- limited use of weak fingers, like pinky and ring finger
- limited use of bottom row
- increased use of home row
- limited finger travel distance
- limited same-finger typing (e.g. uhm)
- balanced hand-use vs right-hand priority
- alternating hand-use vs rolling## More ideas
* is the finger/key mapping fixed?
* can we model keyboard shape dynamically (i.e. put key positions by keycode into the algorithm)## Further reading
* http://mkweb.bcgsc.ca/carpalx/?
* https://gist.github.com/jonathanglasmeyer/5f44e10555726d121e0547d309e9d03a
* http://loup-vaillant.fr/articles/better-keyboards