Dwev is a keyboard layout that aims to minimize fingers moves, with a focus on limiting lateral moves, as opposed to vertical moves.

It is compact, and mostly uses only the three main rows of the keyboard, avoiding having to stretch your hands to reach the top row.

Overview and key features

The Dwev layout is primarily aimed at writing in English and programming languages. However, you can still write in most Western European languages using dead keys for diacritics and other symbols, which have been moved up the top row.

All letters are concentrated on the “home” keys, with precedence given to the ease of typing common sequences instead of focusing only on single letter frequency for the home row1.

The middle columns thus only contain punctuation signs. This ensures that while we can’t eliminate entirely lateral movements into these columns, they only happen in between words, not within.

The most right keys on the home and top rows(dash # and square brackets [] on qwerty) are left unused, as they require quite a stretch from the pinky finger2.

The result is that we’re able to type full words without ever leaving the home keys. This fits well with the way we visualize full words rather than sequences of letters, and the lateral movements feel more natural because they only occur for punctuation.

Screenshots

Standard

Level 1 Dwev layout disposition level 1 Level 2 Dwev layout disposition level 2 Level 3 Dwev layout disposition level 3 Level 4 Dwev layout disposition level 4 Level 5 Dwev layout disposition level 5 Level 6 Dwev layout disposition level 6

Numeric

Level 1 Dwev numeric layout disposition level 1 Level 2 Dwev numeric layout disposition level 2 Level 3 Dwev numeric layout disposition level 3 Level 4 Dwev numeric layout disposition level 4

Overview

Print those for training/learning. Dwev layout dispostion overview alphabetical Dwev layout dispostion overview numerical

Variants

The Dwev keyboard layout comes in two variants:

  • The standard disposition, which
    • moves the numbers into a “num-pad” like disposition
    • uses the cap-lock as a switch to level 5 and 6 (and turns the num-pad on)
    • utilizes the top row for all deadkeys and european symbols (ç, è, Œ, IJ, …)
  • The numeric disposition, which
    • keeps the numbers at their standard position at the top row
    • only uses 4 level, so keeps the default cap-lock key behaviour
    • can’t be used to type non ANSI characters, so only support English

Why?

Like a lot of people, I only started to look into alternative keyboard layouts after suffering from RSI pains. My first attempt was learning bepo, the French variant of dvorak.

However, I quickly realized that apart from the odd email, 99% of my writing was English/coding, and it wasn’t fit for purpose.

I then switched to standard dvorak and soon after to programmer dvorak. While it was a huge progress over qwerty, I still had a few nagging issues, which I solved by forking into a variant I dubbed developer dvorak.

While it served me well for years, I still wasn’t feeling 100% comfortable. But I couldn’t quite put my finger on what were the pain points. Until one day I stumbled upon the workman layout. That was an eye-opener and led me to analyze more my typing movements. That nagging feeling I had been having was due to

  • lateral movements, namely the center column keys stretching the indexes
  • too much effort and stretching put on the right pinky finger

I briefly tried the workman layout, but almost immediately realized it didn’t go far enough to my taste in addressing those issues. And here began the journey into trying to create an alternative, and explore some concepts I wasn’t familiar with, like frequency of digrams, hand alternation, etc.

Statistics and heatmaps

You can play with various types of texts and see how it performs using Patrick Gillespie’s Keyboard Layout Analyzer. An example can be found at https://patorjk.com/keyboard-layout-analyzer/#/load/0rFQHszQ.

There are a few things to keep in mind when comparing with other keyboards, though: - The analyzer doesn’t differenciate between lateral and vertical distance, which is all the aim of Dwev - Only the “numeric” version can be tested, due to limitations in how keyboards are represented in the tool - As a result, the “fairer” metric to focus on is the heatmap tab

The layout .json definition can be found at https://gitlab.com/pm98zz-c/dwev/-/raw/main/https:/patorjk.com/dwev-num.json.

Installation

Grab the source from https://gitlab.com/pm98zz-c/dwev.

Linux

User installation

To install for your user only, copy the whole “linux/xkb” folder to $XDG_CONFIG_HOME.

In most cases, if unset, this would be $HOME/.config.

❯ tree .config/xkb
.config/xkb
├── rules
│   ├── evdev.lst
│   └── evdev.xml
└── symbols
 ├── dwev
 ├── dwew.xkb -> ./dwev
 └── num

3 directories, 5 files

You will need to logout of your session and login again.

The layout should then appear as “Dwev” under the “Other” section of your settings. It is referenced as “dwev” by xkeymap, etc.

System-wide installation (method 1)

To install for all users, copy (as root) the whole “linux/xkb” folder to /etc.

❯ tree /etc/xkb
/etc/xkb
├── rules
│   ├── evdev.lst
│   └── evdev.xml
└── symbols
    ├── dwev
    ├── dwew.xkb -> ./dwev
    └── num

3 directories, 5 files

You will need to reboot.

The layout should then appear as “Dwev” under the “Other” section of your settings. It is referenced as “dwev” by xkeymap, etc.

System-wide installation (method 2)

This should let you set the Dwev layout for the whole system, even at the LUKS encryption dialog at boot time.

As root, copy the linux/xkb/symbols/dwev file and rename it under /usr/share/X11/xkb/symbols/custom.

You will need to reboot.

The layout should then appear as “A user defined custom Layout” under the “Other” section of your settings. It is referenced as “custom” by xkeymap, etc.

NOTE: You can only have one “custom” layout installed using this technique.

Mac OS

User installation

To install for your user only, copy mac/Dwev.bundle to ~/Library/Keyboard Layouts.

After a reboot, it should appear under “System Preferences > Keyboard > Input Sources”

System-wide installation

To install for all users, copy mac/Dwev.bundle to /Library/Keyboard Layouts.

After a reboot, it should appear under “System Preferences > Keyboard > Input Sources”

External resources

Some external links that could be interesting for keyboard enthusiasts.

Layouts

Analysis

Learning/Trying

System/tools


  1. The letter Q requires a slight movement to the right from the pinky finger. There are only as many “home” keys, and something has got to give. I initially had placed the “J” there, as it is far less used than the “Q”. However, it was placing the “Q” next to “Z”, and operated by the left pinky finger. This made pressing “Ctrl+Q” an easy mistake to make when trying to “Ctrl+Z”, so the small compromise between comfort and practicality is worth it, in my opinion. ↩︎

  2. You’ll notice there’s actually an extra dollar $ right to the “L”. While it is accessible through modifiers already, and not strictly needed, I added a direct key due to its prevalence in some programming languages. ↩︎