keymanapp / keymanapp/keyman

feat(developer): Add Carpalx Layout Optmizer

Open
#15,652 1 comment 0 reactions 0 assignees View on GitHub
developer/ feat good first issue help wanted
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

### Is your feature request related to a problem? Please describe.

Minimal hand strain layouts have been a long-time goal for every script. However, the exact ergonomics behind layout and handstrain are not well known and can be difficult to research. Keyman could assist here by encoding rules of key position, letter frequency, and muscle fatigue to generate optimized layout templates for keyboard designers to work with (primarily for touch layouts).

A fascility like this woudl be particularly helpful for new scripts that are not encumbered by a QWERTY legacy.

### Describe the solution you'd like

The [carpalx](https://mk.bcgsc.ca/carpalx/) website provides informational and programming resources on keyboard layout optimization that can be used to generate optimized templates. Under such an approach, a Keyman lexicon would be needed with word frequencies, from which letter frequencies can be calculated. These letter frequencies, combined with the layout and hand strain minimization rules of the carpalx algorithm, can then be used to generate the layouts.

The carpalx website has lots of great information, but can be difficult to navigate through. The download page for their Perl language script can be found here: [https://mk.bcgsc.ca/carpalx/?download_carpalx](https://mk.bcgsc.ca/carpalx/?download_carpalx)

### Describe alternatives you've considered

_No response_

### Related issues

_No response_

### Keyman apps

- [ ] Keyman for Android
- [ ] Keyman for iPhone and iPad
- [ ] Keyman for Linux
- [ ] Keyman for macOS
- [ ] Keyman for Windows
- [x] Keyman Developer
- [ ] KeymanWeb
- [ ] Other - give details at bottom of form

### Keyman version

N/A

### Operating system

N/A

### Device

N/A

### Target application

N/A

### Browser

N/A

### Keyboard name

N/A

### Keyboard version

N/A

### Language name

Any

### Additional context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.