carpalx - keyboard layout optimizer - save your carpals

Japanese version and translation details.

Carpalx optimizes keyboard layouts to create ones that require less effort and significantly reduced carpal strain!

Download keyboard layouts, or run the code yourself to explore new layouts.

X11 layouts are available! Many thanks to Sven Hallberg for providing X11 configuration for Carpalx layouts. Richard Gomes contributed an archive of these files for KDE/Gnome users.

Love your coworkers? Switch them to QWKRFY layout or a fully optimized QGMLWY layout.

Hate your coworkers? Switch them to TNWMLC layout. It's the only keyboard layout that has its own fashion line.

Have ideas? Tell me.

18/may/14 — Updating text — some of the copy needs to be reworked.

17/may/14 — Made the CSS less useless.

16/may/14 — Added evaluation of the Norman layout. This layout modifies 14/26 keys and has statistics similar to Colemak. Detailed statistics are available.

12/feb/14 — Added evaluation of the abKey layout. Its alphabetic layout makes no attempt at ergonomics. Detailed statistics are available.

Creating Keyboard Images

configuration file : etc/tutorial-05.conf
output : out/tutorials/05

Configuration

Configuring carpalx is hard enough, so I make it easier for you to interpret the layout results. Using the draw_* parameters you can create PNG thumbnails of the keyboard layout at different iteration intervals. With the settings below, each time (draw_period=1) a lower energy state is found (draw_filter=lower_monotonic) a PNG thumbnail will be created. Using drawinputkeyboard in the action string you can request that a thumbnail of the input keyboard (QWERTY in this case) is generated.

...
action = loadkeyboard,drawinputkeyboard,quit
...
draw_period   = 1
draw_filter   = lower_monotonic # all | lower | lower_monotonic | update | none
...
pngfile_keyboard_input  = out/tutorials/05/tmp-input-__$CONF{runid}__.png
pngfile_keyboard_output = out/tutorials/05/tmp-output-__$CONF{runid}__.png
...
imagedetaillevel = 2  # use block named 1 for detail level
imageparamset    = 2  # use block named 1 for image parameters
...

keyboard images

To creating an image of the keyboard, just run carpalx with an action string that includes 'drawinputkeyboard' or 'drawoutputkeyboard'. The difference between these two actions is the filename used (pngfile_keyboard_input or pngkeyboard_output). Notice that the filename of the PNG files will include the random 6-character runid.

Figure 1 | Input keyboard (QWERTY), generated as input-chwwxl.png.

All aspects of the keyboard layout image can be customized in the <imagedetaildef> and <imageparamsdef> blocks. Key color can be adjusted based on effort of the key.

The image below uses imagedetaillevel=1 and imageparamset=1.

Figure 2 | Input keyboard (QWERTY), generated as input-xpggaz.png.