Character Mapping Layers


Colemak[edition DreymaR] is the name of the AltGr and dead key layers I've created for the Colemak layout. I've tried to add much functionality while keeping it intuitive. In particular, I want to be able to write different scripts and tech/maths symbols. Since the start, there's been some minor tweaks based on my experience and forum feedback, but it's been stable for a long time now.

Look inside my various layout files for comments and explanations, in addition to these main design goals:

See the Colemak[eD] page if you want to know more.


The Colemak [edition DreymaR] layout, using different lv3-4 mappings from Shai's default Colemak.
Shown on an ANSI keyboard with dead key emphasis (golden) and "FingerShui" color-coded proposed fingering.

Cmk ISO eD

Colemak-CAW[eD], using the Curl(DH)Angle-ISO and Wide(/) ergonomic mods like I do (see the ergonomy page).


Extend is like a special Shift key (usually the Caps key) that brings keys and functions close to the home position – as if you had extended your arms by magic.

This is My Favorite Mod next to Colemak itself! The ability to navigate and edit from the home position and its immediate surroundings is extremely powerful. It's like having part of the power of advanced editors like Vim ready in all situations. Plus a fully functional multimedia keyboard without sacrificing compactness. And more, much more.

Really, I cannot stress enough Just How Powerful Extend Is!!! once you understand its workings. It's miles ahead of most other "Fn key" layers, for several reasons including the home row modifiers which lead to an ocean of power chording possibilities. Most newcomers don't seem to get this at once, so I urge you to study the Extend Extra Extreme page a bit for your own sake. I realize that it may seem like much to learn one more thing, but you will benefit a lot from it. Furthermore, Extend can be learnt gradually a few tricks at a time, and it's much easier to learn than a new typing layout!

Extend ISO NoMod Linux Labels

A chart of my Extend mappings (Ext1 – Nav/Edit). Green, navigation; blue/circled, mousing; orange, multimedia; gray, system/misc.

Here's the same image with symbolic labels like I use in the EPKL program; for more info see the Extend page and my source files:

Symbolic Extend image:

Extend ISO NoMod Linux

My Extend mappings (Ext1 – Nav/Edit). Green, navigation; blue/circled, mousing; orange, multimedia; gray, system/misc.

The Linux/XKB and Windows/EPKL implementations are almost the same. EPKL couldn't yet support mapping to the shifted multimedia keys. Linux usually has poor support for mouse WheelLeft/Right scroll keys so the XKB mappings have a MouseKeys On/Off key on <LSGT> and a Compose/Multi key on Slash instead.

Holding down AltGr with the Extend modifier you get Extend2: A NumPad layer laid out pretty much like a standard one but with the top row moved around to fit existing keys:

Extend2 ISO NoMod

Extend NumPad mappings (Ext2). Green, navigation; purple, NumPad; sepia, symbols; gray, system/misc.

Ideally you can map any modifier to be the Extend "Mod2"/"Mod3" which select between different Extend layers, and only need to hold the Extend key itself after choosing the layer. At the moment though, this works as it should with EPKL and TMK but not XKB.

There may be a need for navigating while entering numbers, but on the other hand KeyPad keys rarely use modifiers. Hence, I moved the nav block from its UNEI arrow cross to the WARS cross familiar to gamers. Number row keys 1-6 are mapped to their shifted symbols since these may be needed for numeric input, as are some other keys; the bracket keys cater for the parentheses in this layer which feels logical to me.

In the EPKL implementation for Windows there are two more Extend layers. One has a set of kaomoji! ☆*:.。. o(≧▽≦)o .。.:*☆



Dead keys are keys that don't produce direct output but instead modify the following key press. They are traditionally used for accents such as acute (´), grave (`) etc, but it's possible to do a lot more with them and they can actually produce any valid output on release. So in addition to pressing the acute dead key then a to produce á for instance, with my DK mappings you could also press a number key to produce a superscript number! Almost all my DKs have "bonuses" like that. See below for a few examples, but bear in mind that the images shown here may not be fully updated.

Some of the traditional dead keys are almost empty: The doubleacute one only caters for ő ű, and ring only caters for å ů ẘ ẙ. There's also a whole iota dead key that only concerns itself with Greek characters. I've stuffed good things into many of those cracks even if it's not an entirely logical thing to do since the name of the dead key wouldn't quite reflect these extra mappings. If you use up layout space on a dead key it really shouldn't sit there taking up room for the meager purpose of providing 2-3 glyphs! So suddenly, the doubleactute DK doubles as a Science/Math DK and the ring DK is the new home of several ring symbols and ligatures! ☺

Dead keys are a central element of many of my locale layout solutions for people who need accented characters. But the default Colemak[eD] layout has a lot of dead keys to play with, albeit hidden away a bit on the AltGr layer. So using Colemak[eD], anyone can type nearly any symbol they may need. Let me know if you're missing any important ones!

Colemak[eD]-Angle layout, AltGr state

Colemak[eD] ISO-Angle, AltGr state layer. Note all the pretty dead keys marked in yellow.

There are currently 19 dead keys in my Colemak[eD] layout. The common accents are there, together with a currency dead key on AltGr+4 and a Greek phonetic dead key on AltGr+5. Furthermore, some sparsely populated accent keys have been enhanced with extra content, such as superscripts/subscripts on acute/grave, fractions and negations on stroke/bar and ring symbols on ringabove. The most extensively reworked key is the double-acute which used to have only Uu and Oo and now contains a fairly rich set of math/science symbols (think of the double acute as akin to the equals and prime signs)! You really have to see them to believe them – I'll showcase some below but you can see them all using EPKL (default Ctrl+Shift+1 for the help images):

01) Dot below
02) Hook, palatal hook
03) Horn, retroflex hook/tail
04) Currency:

dk04 currency dk04sh currency

05) Greek (phonetic):

dk05 greek dk05sh greek

06) Circumflex
07) Caron
08) Ogonek, comma below
09) Breve
10) Ring above, ring symbols, ligatures
11) Macron
12) Double-acute, math/science:

dk12 dblacutesi dk12sh dblacutesi

13) Umlaut/diaeresis
14) Tilde
15) Acute, superscripts

dk15 acute dk15sh acute

16) Grave, subscripts
17) Cedilla
18) Dot above
19) Stroke/bar, fractions

dk19 stokebar dk19sh stokebar

Note that the dead keys are designed to interact in clever ways through chaining: 'Ring' then 'angle' will produce 'arced angle', 'Tilde' with 'equals' will produce 'equal or approximately equal', Stroke with many symbols will produce slashed symbols (e.g., from 'identical to' you get 'not identical to') etc. The sequence you press the dead keys in may matter: Usually, start with the modifier(s) (such as 'stroke' for "not") then the symbol-producing key (such as 'maths' and then '=' which will usually produce '≡' but now gives you '≢' instead). At the moment, the only documentation for all this cleverness is snoping around the PKL layout.ini files, but logic will take you far too.

A goodly way down on my TODO list, I've planned to make a set of IPA dead keys to allow people to write phonetics easily and quite intuitively. It'll still be a while before I get around to it I'm afraid... Contact me if you wish to help make it happen!