Extend Extra Extreme






Extend ANSI No Mod Linux

Extend! Green, navigation; blue, mousing; orange, multimedia; gray, system/misc. For more info, read on!

(Or: Extend is really really neat – and I'll tell you why now.)

Extend Key Logo

... Why?

Living without Extend at this point would seem like some kind of perverse hell imposed as punishment for terrible crimes committed in numerous past lives.
    ~ SteveP, creator of the Colemak-DH mod

The Extend layer mappings are wonderfully powerful and useful; in my opinion at least as useful as Colemak itself. Also, they're much easier to start using as you don't have to learn much to get started and can grow gradually into full mastery without any loss of efficiency – even ingrained QWERTY die-hards could get used to a little Extend on the side unless they're completely backwards. You start up using the arrow keys in the home position and/or multimedia keys, and before you know it you'll be jumping around selecting whole words at a time and doing more and more advanced stuff.

Another advantage of using Extend is that all these shortcut tricks are available on other computers too, albeit in more awkward geometries as you have to reach for arrow and PgUp/Dn etc keys without the power of Extend. Extend may not be as powerful as specialized navigation software like Vimperator/Pentadactyl or MouselessBrowsing, but it's generic, usable in all apps/modes and always ready, and for me at least it comes with my layout which I have to install anyway so it's "already there" without having to manage any extra software. I actually think that even the mighty Vim benefits from it (as its keys are OmniMode and no remappings are needed)!

I've been dabbling, learning and experimenting since 2008 to become an Adept of Extending, if I may call myself that. So I'd like to share some tricks here, to make everyone see how much better your computing experience can become with this mouse relieving wonder – along with some other shortcuts I've picked up along the way.

Many of the tricks described here work under both Windows and Linux, as they often use the same shortcuts. Some are Windows specific though, and some are specific for some browsers (I mostly use Firefox but there are usually plugins and/or similar tricks available for other browsers). Macs often have different tacks and I haven't used one of those in a while so I can't really enlighten you much there – but the principles are the same so I guess Mac users could learn to love the Extend mode as much as I do. There hasn't been any standard Extend solutions for MacOS, but there have been several efforts to remedy that.

Extend skepticism

It's my experience that many newcomers don't think Extend is for them, that it's "just a layer" or something, or that they'll handle it later when they have time. One line I hear a lot is "I'll learn Colemak first, then I'll tackle Extend and stuff". Once they get to understand its power better though, they regret not doing it sooner!

Extend Key Logo

... What?

Oh, sorry. Maybe you don't know or understand exactly what Extend is? If you do, you may skip to the next part now. For those reading on:

Is Extend "just another layer"?

Extend, at its core, is a way of bringing navigation/editing to the home position. To do that really well you have to be able to chord modifiers and nav/edit keys easily from the home position. If you can do that with a layer, I'll consider it an Extend-type layer. Many laptop Fn layers, for instance, have only nav/edit and not accessible modifiers so they fail to meet my definition.

I also have multimedia, system and mousing keys in my basic Extend layer. There may be other layers too, such as a NumPad layer and string/symbol/command layers.

An Extend key is a layer modifier that lets you select these layers. You may have both Hold-Extend where you hold the Ext key like a Shift key, and Tap-Extend where you tap it like a dead key. Tap-Extend is best for one-shot stuff like strings/symbols, whereas Hold-Extend is brilliant for nav/edit and NumPad layers.

The Extend idea sprang out of the Fn layer that some laptops have to get NumPad and other keys. Some compact "hacker" keyboards such as the Happy Hacking Keyboard also sport such Fn layers that give easy access to arrows, F# keys and other keys that are missing from the reduced-size keyboard.


The legacy of Extend: The Happy Hacking Keyboard's Fn layer for navigation, media and F# keys.

Instead of an extra hardware "Fn" key, the Extend mappings can use any key really as their modifier, but usually it's CapsLock that gets the honor although some prefer using a thumb key. I wanted a far better layout than the one above, so I and others on the Colemak forums came up with one around 2008. It was later expanded and implemented in PortableKeyboardLayout (PKL) by its creator Farkas Máté who also to my knowledge came up with the name 'Extend' for this wonder. PKL has since gone and evolved into the EPiKaL EPKL. My EPKL Extend layout is quite similar to the original one, mostly adding mousing and multimedia keys.

This, then, is the result. First, as a color-coded layout image with text labels:

Extend ISO NoMod Win Labels

My Extend mappings. Green, navigation; blue, mousing; orange, multimedia; gray, system/misc.
World/ISO board. Windows/PKL mappings with MouseWheel R/L keys.
[FYI: The first image on this page shows US/ANSI board with Linux mappings.]

Then the same image using symbols as found in EPKL help images etc. Shifted F# keys have extra multimedia functions:

Symbolic Extend image:

Extend ISO NoMod Win

If you wish to print out a labeled Extend reference image you can use an image editor on this high-res one:

High-res labeled Extend image:

Extend DIY Labels

My Extend mappings. Green, navigation; blue, mousing; orange, multimedia; gray, system/misc.
DIY 1624×728px version. Piece together what you want using an image editor.

Also, here's the main Extend layer shown as a text table from the symbols file for Linux/XKB:

ASCII Extend map:

Esc +

F1 <>
F2 <<
F3 <<
F4 <<
F5 <<
F6 <<
F7 <<
F8 <<
F9 <<
F10 <<
F11 <<
F12 <<
` €€€
Tab Q €€€
W ***
F <<>
P <<>
G ***
J ###
L ###
U ###
Y ###
; €€€
[ €€€
] €€€
A +++
R ***
S +++
T +++
D ***
H ###
N ###
E ###
I ###
O €€€
' €€€
\ ><>
Z €€€
X ===
C ===
V ===
B ***
K ***
M ***
, ***
. ***
/ €€€
Spc €

Legend: # Movement; + Modifiers; = GUI edit; * Mouse; ≶> MultiMedia; € Various commands.

My Extend mappings for XKB/Linux; the Windows/PKL ones are nearly identical save for the VK_102 and Slash keys.

Note the home position modifier keys: These make it easy to hit powerful shortcut combinations! Alt+F4 is now accessible from the home position as Ext-A+4. Select Previous Word (Ctrl+Shift+Left) becomes Ext-S+T+N, etc etc. Letter shortcuts like Ctrl+Q don't work but some have alternatives like Alt+F4 that do. Also, there's no Win (GUI) key because it proved hard to implement and many Win-key shortcuts use letters. But the point of Extend isn't to replace those shortcuts – it's to bring the arrows and other out-of-the-way keys close to your home position to make you faster and stronger!

Some useful shortcuts like Ctrl+A (Select All), Ctrl+S (Save), Ctrl+W (Close – Ctrl+F4 unfortunately doesn't work everywhere) and Ctrl+(Shift+)T (Re-/Open Tab) are quite easy to reach with one hand, even though it means twisting your wrist to reach the Ctrl key. Unless you use them a lot, they don't need to be on Extend mappings. If you feel that you do need any of these in Extend, you could always map them to the Tilde key and/or one of the Escapes (or a right hand key like Ins, Menu, Favorites, Break, Mouse buttons, the Slash key – anything you feel you don't need of course).

A better solution for one-shot commands and mappings is on tap layers. Instead of chording – that is, holding down modifiers while pressing other keys – I use for instance tap-Extend then a key for Ctrl or Win key combinations I need often. See the "When?" section below.

The Extend mappings are mostly positional so they'll work with any layout – even if some keys like A and ZXCVB might be easier to remember using Colemak or QWERTY. If you use Curl(DH), Angle and/or Wide ergo mods the Extend mappings should move accordingly to match the transposed home positions of the ZXVCB and right-hand keys. Other than that, I wouldn't move around the Extend mappings to suit different underlying layouts as they mostly go by key position rather than letter.

Extend ISO AWide Linux

My Extend mappings, Linux version. Green, navigation; blue, mousing; orange, multimedia; gray, system/misc.
World/ISO board with (Curl)AngleWide ergo mod (CAW – shifted ZXCV_ and right-hand keys).

On an interesting side note, the Ultimate Hacking Keyboard (UHK) has a "Mod" layer that seems to have borrowed quite a few mappings from my page, including the nav block that I designed in 2007/2008. Can it be coincidential? They have almost the right idea but it's still not nearly as good as a proper Extend: They missed the oh so important home row modifiers – we'll get back to those in a minute! – put the fairly useless Insert key where the very useful Back key should've been and left several good positions open. Nice try but no Extend. ^_^

Here's the Mod layer of the UHK so you can see what I mean:

UHK Mod layer image:

Extend Key Logo

... When?

As described in an interesting article by Xah Lee, chording isn't always the best answer. For one-shot output like a special symbol or a single command, "tap-dance" key sequences are generally better. A good example is the Compose method from Linux that can be trigged by any desired key combination, or by a designated "leader key" such as a Compose or dead key. The Alt key in Windows lets you access menu items by tapping a letter sequence such as {Alt,f,t} to open a new tab, which is brilliant and can be easily learned by looking at the menus the first times.

Even a "tap-dance" of several key strokes can be preferable to chording for many one-shot needs. Holding down keys is more tiring than tapping out a sequence, and the more contorted a chord gets the worse it will be. All tap-dances aren't created equal either, and I much prefer ones that use easily reachable keys and no same-finger bigrams. Tapping the same key several times is not the best of ideas.

Sequences can be more mnemonic than layers. Let's say I want to map the old English letter Hwair (a /ʍ/ sound like in the Scottish pronounciation of 'who') to my layout for occasional use. With layers I'd have to remember where I had put it and on which layer ... hmmm, tricky. Help images like in the EPKL program can be very helpful there for sure, but only to some extent. If, on the other hand, I implement it as a Compose sequence I could for instance just type 'hwair' and hit a Compose key to get a 'ƕ'. That's much easier to remember, don't you think? But only practical if it's not used all the time. If I were writing a book about Old English, I'd have the letters Ƕƕ Ȣȣ Ȝȝ and Ƿƿ in a handy layer for sure, and from frequent use I'd quickly learn where I'd put them.

Sequences provide for near endless complexity, but chord layers like Extend let you do many similar operations without trigging them separately each time. So for navigation/editing like selecting the previous word then moving it to the end of the paragraph or for number entry chord layers are perfect.

Compose is a wonderful method based on easy-to-remember sequences for one-shot output. Linux users may know and use it with sequences like Compose e ' producing the accented letter é, and Compose 1 2 producing the symbol ½. You can edit the tables and add pretty much anything though! In the EPKL program for Windows I've added a whole bunch of new sequences for boilerplate text or even emoji sequences such as 'noevil' composing to '🙈 🙉 🙊'. 💪

Dead keys can be great for mapping one-shot output like special and accented letters and symbols, without holding a modifier like AltGr down. They're like a short sequence, in that they only use one key to trigger the output. With a battery of DKs you can fit in a whole bunch of symbols on fairly intuitive mappings! On the downside, DK and modifier layers can easily get crowded if, say, there are many symbols based on the same letter, or you want to map symbols that aren't based on letters or numbers. And since you'll likely need many DKs you may have to hold a modifier to access the DK in the first place; all my 19 or so DKs require you to press AltGr first unless you're using a locale variant that has the most needed of them on the main layers.

One-shot Extend layers (see below) that return to the main layer after releasing one key, should be good for "power strings" that typically are entered once. They could just as well have been implemented with other sequencing methods instead.

Extend-tap (see below) is a neat way of supercharging your Extend key for both chording and sequencing! The Extend key can be a multi-layer dual-function key that produces different one-shot (dead key) or chording layers based on the shift state at the time of tapping or holding it down. This way it can be a gate to the best of both the chording and sequencing worlds. It isn't available on all platforms though, sorry.

The best option is to use a mix of chords and sequences suited to your needs. For my Kaomoji needs I first used a one-shot layers on Shift+Extend-hold, but now I've switched to Shift+Extend-tap which doesn't require me to hold down the Extend key and also allows more output diversity than a single Extend layer can. For navigation/edit and NumPad layers, Extend-hold still reigns supreme of course.


Extend Key Logo

... How?

Head over to the appropriate Big Bag topic (Linux/XKB, Windows/PKL, USB-2-USB or mkborregaard's Mac topic) for resources and instructions on how to use this. In the standard setup, the CapsLock key becomes a "switch" modifier like the Shift key, that you hold down for the Extend mappings. One might also have "latch" (press and release modifier, then press key) or "lock" (like CapsLock) modifiers; for the main Extend layer I don't think that'll be so useful though. Using Linux, if you set two modifiers with the 'level5_switch_lock' behaviour, they'll actually work as a switch alone but a lock if pressed together! The Mac implementation has a separate ExtendLock key.

Much of Extend's power is immediately obvious. Shortcuts you've been using easily and intuitively translate to their Extend counterparts. One of the advantages of Extend, as mentioned, is the transparent correspondence between Extend and non-Extend shortcuts. But there are very useful tricks that even I didn't know until quite recently. Having the necessary keys more available creates new possibilities for awesomeness, and so using Extend over time will be a pleasantly surprising journey if you're anything like me.

I've made a topic that highlights some favorite Extend tricks, so feel free to have a look there! For a more thorough overview, I'll go through some shortcut categories below and explain how Extend can help you excel in them.

Prestidigitatus – let the magic begin! ;-)


All the keys marked in orange on the Extend images above are multimedia keyboard keys. They work pretty much as expected, though in most Linux distros you may have to assign some of them manually. There are different keys on Ext-Shift since you don't usually shift multimedia keys – but in Windows/PKL those unfortunately cannot be implemented (yet).

I looked to Apple keyboards and various others, but settled on my own layout which seems very logical to me:

†: These are the default settings; you can configure what apps are defined as App1 and App2. (Using Windows, it takes registry editing.)

Using Linux/XKB (or in the Extend2 layer; not yet implemented for Windows/PKL...):

The App keys are worth mentioning: Besides volume controls, the File Manager and Calculator keys are the F# key ones I use the most. I could've hit Win and typed 'calc' too of course, but Ext-F12 is faster.


| Shortcut          | Extend-...     | Effect                          |
| Ctrl+(Sh+)Z       | (S+)Z          | Undo(Redo)                      |
| Ctrl+X/C/V        | X/C/V          | Cut/Copy/Paste                  |
| (Ctrl+)Enter, Esc | (T+)Spc, Q [   | Activate (Send mail...), Cancel |
| (Sh/Alt+)PrintScr | (S/A+)Enter    | Screenshot (Area/Window)        |
| (Sh+)F1           | (S+)1          | (Context) Help                  |
| (Sh+)F3           | (S+)3          | Find Next(Prev)                 |
| F4 or (Alt+)↓     | 4 or (A+)E     | Display drop-down list items    |
| Ctrl+WhUp/WhDn    | T+W/R          | Zoom In/Out                     |
| Mouse ←↑↓→, Btn1  | ,GD. then B    | Set focus using mouse pointer   |

Undo/Cut/Copy/Paste are fairly obvious. They need to be on the Extend layer to avoid interruption and wrist gymnastics while editing. I tried using the multimedia key "GUI" versions of them, but those are sometimes poorly implemented so now it's the actual Ctrl+letter mappings as they seem to always work well.

Mousing with keys isn't all that powerful unless you spend more keys on it and get fancy. This is mostly for getting the pointer out of reading's way and sometimes the button is nice for regainining window focus. The right mouse button, as usual, brings up a context menu but I usually use the Menu[Ext-'] key for that as it shows the menu where it's relevant instead of at the mouse pointer position. The mouse wheel keys are very useful, as they scroll windows and with Ctrl zoom in/out using the left hand only. Pretty much a must for quality browsing.


| Ctrl+(Sh+)X/C/V   | (S+)X/C/V      | (Line) Cut/Copy/Paste           |
| (Sh+)Enter        | (S+)Spc        | Insert (Soft) Linebreak         |
| Ctrl+(Sh+)←/→     | T+(S+)N/I      | GoTo/Select  Word ←/→           |
| (Ctrl+)(Sh+)↑/↓   | (T+)(S+)U/E    | Go/Sel Line(Paragraph) ↑/↓      |
| (Ctrl/Sh+)Home/End| (T+)(S+)L/Y    | Go/Sel Line(Doc) Start/End      |
| (Sh+)PgUp/PgDn    | (S+)J/H        | Go/Sel Page Up/Down             |
| (Ctrl+)Back/Del   | (T+)O/;        | Delete (Word) ←/→               |

Easily moving or selecting to the beginning/end of words, lines, paragraphs or documents quickly becomes addicting. This is an excellent place to start your journey!


| Alt+(Sh+)Esc      | A+(S+)Q/[      | Next(Prev) Window/App           |
| Ctrl+(Sh+)Esc     | T+(S+)Q/[      | Start Menu (Task Manager)       |
| Ctrl+PgUp/Dn      | T+J/H          | Next/Prev Tab                   |
| Alt+F2 <...>      | A+2 <...>      | Run App <...>           {Linux} |
| [Alt/Ctrl]+F4     | [A/T]+4        | Close App/Tab (or Window)       |
| F5                | 5              | Refresh                         |
| (Sh+)(Alt+)F6     | (S+)(A+)6      | Switch Pane/Element (Subwindow) |
| Alt+F8 ←↑↓→ Enter | A+8 NUEI Spc   | Resize Window           {GNOME} |
| F10 or Alt        | 0 or A         | Focus on App Menu (or Tips)     |
| Sh+F10            | S+0 or ' (M)   | Context Menu; (R-Click)         |
| F11               | -              | Fullscreen On/Off               |
| F12               | =              | Sometimes 'Save As...'          |
| (Ctrl/Alt+Sh+)Tab | Next/Prev Item/Tab/App (Ext: All but Alt work)   |
| Space             | Toggle state of buttons/items in dialogues etc   |
| Alt+Space         | Popup window menu (then press letter or 2*Esc)   |
|                   |   - Restore/Move/Size/miNimize/maXimize/Close    |
|                   |   - (Cmd window: Edit.../Defaults/Properties)    |
|                   |   - Then Ext Arrows/Enter to resize/move window  |
| Win+T             | Open Windows Taskbar (Ext: Ctrl+Esc, F6)         |
|                   |   - Then Ext ←↑↓→ to navigate open apps          |
|                   |   - Then (Ctrl+/Sh+)Enter to open (admin/new)    |
|                   |   - Or the Menu key or Sh+F10 for the app's menu |
| Win+(Sh+)↑/↓      | Max/Reduce (Vertical) Window Size        {Win7+} |
| Win+(Sh+)←/→      | Send Window to ←/→ Halfscreen (Monitor)  {Win7+} |

Oh boy, is this nice. Easier access to the F# keys with modifiers makes combos easy.

Dialogue windows like settings panels, save/load windows and alerts should all be keyboard compatible. Often you can use Alt+Letter combinations, but in addition:

Alt+Space {in Windows}: Popup Window Menu for the active window. Then, press a letter for a command (or Esc to go back).

Win+T[Ext-TQ,Ext-6] {in Windows}: Taskbar focus. This lets you navigate and manipulate the open apps on the taskbar.

Win+(Shift+)Arrows {in Windows 7+}: Move/Resize Window to screen. Maximizing the window to the left/right half screen, maxing it vertically and moving it between monitors are modern window management operations that deserve a mention. You can use Extend Shift and Arrows with the Win key.


| Alt+←/→           | A+N/I (or F/P) | Browse Back/Forward             |
| (Sh+)Enter        | (S+)Spc        | Open link (in new window)       |
| (Sh+)Ctrl+Enter   | (S+)T+Spc      | Open in new tab (switch focus)  |
| Alt+Enter         | A+Spc          | Open address in new tab         |
| [Ctrl/+Sh+]Enter  | [T/+S+]Spc     | Complete URL, with com/net/org  |
| [Alt|Ctrl]+Home   | [A or T]+L     | Go to Browser Home Page         |
| Ctrl+(Sh+)PgUp/Dn | T+(S+)J/H      | Switch(Move) Tab                |
| (Ctrl/Sh+)F5      | (T/S+)5        | (Hard) Refresh                  |
| F6                | 6              | Go to address bar and back      |
| F7                | 7              | Caret Browsing On/Off           |
| / or '            | QuickFind text or links on page        {Firefox} |
|                   |   - Ext (Sh+)F3 and Tab as necessary to navigate |
|                   |   - Then Ext (Ctrl+)(Sh+)Enter to open links     |
|                   |   - Very nice! Addons exist for most browsers.   |
| Ctrl+(Sh+)T       | (Re-)Open Tab (Ext: No true replacement!?)       |
|                   |   - Ext: F6 → enter address/search → Alt+Enter   |
| Ctrl+[K/E]        | Browser search field (Ext: Use F6 then Tab)      |
|   (Ctrl+)↑/↓      |   - Ext: Then Browse search history (engines)    |
| ?                 | In address bar: Search with default engine       |
| Ctrl+[+/-/0]      | Zoom In/Out/Reset (Ext: Use Ctrl+MouseWheel)     |

Another clear winner that I use all the time. There are good browser navigation programs and some will certainly prefer to go all the way and use Vimperator/Pentadactyl or similar, but to me Extend browsing feels very nice now. I just got used to the Firefox QuickFind feature which made the experience pretty much complete.

This does depend somewhat on which browser you're using. Opera has good keyboard browsing built-in I hear, while Internet Explorer cannot do some things. I mostly use Firefox. Chrome does much of the same, but the QuickFind feature of Firefox is what makes me able to browse around without extra software/plugins. Fortunately there are QuickFind plugins for most browsers if you're interested.

/ or ' {In Firefox or using browser plugin}: QuickFind. This is simply delightful!


| ←/→               | N/I            | Expand/Collapse Item (or move)  |
| Alt+←/→/↑         | A+N/I/U(F/P/O) | Go Back/Forward/Up              |
| (Ctrl+)↑/↓ etc    | (T+)U/E/L/Y... | Select(Focus) ↑/↓/↑↑/↓↓         |
| Alt+Enter         | A+Spc          | Item Properties                 |
| (Shift+)Del       | (S+);          | Delete Item (directly)          |
| F2                | 2              | Rename Item                     |
| F4                | 4              | Explorer Address bar            |

Learning to navigate the file tree with arrows and more is a frequently useful skill.


This is kinda specific, but I noticed that the Windows tool for remoting (Windows Pro or similar required) is practically made for Extend. I won't go into specifics, but:


My Extend ideally has four layers – I don't see the need for more but let me know if you do. The Extend2 layer holds a NumPad with some useful symbols easily available and the navigation/editing block moved to the left hand:

Extend2 ISO No Mod

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

Here's Extend2 shown as a text table from the symbols file for Linux/XKB:

ASCII Extend2 map:

Extend2: KeyPad overlay with nav block to the left (lv7-8):
|` €€€ |1     |2     |3     |4 £   |5 €   |6     |7     |8     |9     |0     |-     |=     |
| Cust |  !   |  @   |  #   |  $   |  %   |  ^   | KP_7 | KP_8 | KP_9 | KP_* | KP_- | KP_= |
|Tab   |Q ### |W ### |F ### |P €€€ |G €€€ |J ### |L     |U     |Y     |;     |[ {   |] }   |
|      | Home | Up   | End  | Del  | Esc  | PgUp | KP_4 | KP_5 | KP_6 | KP_+ |  (   |  )   |
|Caps+ |A ### |R ### |S ### |T €€€ |D     |H ### |N     |E     |I     |O     |' "   |\ |   |
| ++++ | Left | Down | Right| Back | K_Lck| PgDn | KP_1 | KP_2 | KP_3 | K_Ent|  '   |  \   |
|_ *** |Z €€€ |X === |C === |V === |B *** |K ;   |M     |,     |.     |/     |Spc   |Entr  |
| *MOn | Undo | Cut  | Copy | Paste| *Bt1 |  ,   | KP_0 | KP_0 | KP_. | KP_/ | Spc  | K_Ent|

This is implemented in my Big Bag solutions for Windows(EPKL), USB-2-USB(TMK) and Linux(XKB). In the former two you can configure a modifier or two that will modify which Extend layer gets activated by the Extend key; holding down the Extend key alone will maintain that layer.

With Linux/XKB it's still a bit hard to access Ext2 as it requires Caps+AltGr (Right Alt) to be held down. There's even a "secret" layer for xkb using Caps+Shift+AltGr (it has some more arrow symbols and stuff), but that's ridiculous so I'll have to construct a better modifier! At the moment, I believe that for instance Alt+Caps (then hold down either Alt or Caps – not necessarily both) and similarly with AltGr and even Alt+AltGr, would be ideal.

On Windows/EPKL, I have string templates including a set of kaomoji text faces in the Extend3 layer! L is for Lenny. ( ͡° ͜ʖ ͡°)

Extend3 ISO Angle Cpt

My kaomoji Extend3 layer, mnemonically arranged for Colemak ISO-Angle.

In EPKL, all four layers are available using combinations of the two specified modifiers (by default RAlt and RShift) with Extend. The Ext3/Ext4 layers are set to be one-shot string layers, so if you press RShift+RAlt+Ext, then hold down Ext and press a home row letter you'll release a "powerstring" then fall back to Ext1 for normal editing. Also, since the Ext1/Ext2 layers are positional they are marked as "hard" layers: They don't change with letter positions and would look the same on Colemak as on, say, Dvorak – but they are affected by ergo mods like AngleWide. The kaomoji layer in Ext3 is "soft" though, since the strings are mnemonically linked to different letters:

Extend3 ISO CAWide Cpt

My kaomoji Extend layer, mnemonically arranged for Colemak-CAW. Note how both the Curl(DH) and AWide mods move mappings.

Press RShift+Caps for Extend3, then Caps+D to start a Robot Dance Party in your text! ♪~└[∵┌]└[・▥・]┘[┐∵]┘~♪

Other ideas for Extend layers include more boilerplate text for coding, hotkey combinations for different programs, a better navigation/mousing layer etc etc. As mentioned above, releasing single strings or commands may just as well be implemented as dead key layers so it's up to the user's tastes.

EPKL pro tip: The Autohotkey format lets you mix literal strings with keys. You can for instance write a set of html brackets then position the cursor between them, all in one Extend entry with the * prefix.


This is only implemented in EPKL for Windows yet: Tap the Extend key for a special dead key layer, then another key for a release. As I said in the Extend ...When? section, tap sequences are often better than modifier layers when you want to release a single symbol or string.

With Ext-tap, you have a whole lot of possibilities! You can have 4–5 different deadkeys on basic Ext-tap, Shift+Ext-tap, Ctrl+Ext-tap, AltGr+Ext-tap and AltGr+Shift+Ext-tap. With Sticky/OSM mods, you can tap a modifier and then Ext rapidly to avoid chording completely. Then, any letter or symbol may release the dead key so the possiblities are really huge!

For instance, different kaomoji result from tapping {Shift+Ext,<key>} and {Shift+Ext,Shift+<key>}. With a Sticky Shift timer, it actually depends on how fast you hit the key so you can select a "weaker" or "stronger" version with your tap speed! How's that for power?

 d( ^◇^)b
 (b ̄◇ ̄)b

There's a set of symbols/strings on unmodified Ext-tap, command shortcuts on AltGr+Ext-tap and the aforementioned kaomojis on Shift+Ext-tap by default. See the EPKL DeadKeys file for more ideas. For Linux you could use Compose sequences for this kind of thing, but I haven't done that myself yet.

The ...

Extend Key Logo

So there you have it, voila and prestidigitatus! I hope you will learn to enjoy Extending as much as I have, and find it liberating and empowering. Best of luck on your journeys!

~ DreymaR

PKL Cpt Extend


Wikipedia – Table of keyboard shortcuts
Microsoft Support – Keyboard Shortcuts in Windows
Computer Hope – Shortcuts ABC


"In this time, the most precious substance in the Universe is the spice Melange. The spice extends life. The spice expands consciousness. The spice is vital to space travel. The Spacing Guild and its navigators, who the spice has mutated over four thousand years, use the orange spice gas which gives them the ability to fold space. That is, travel to any part of the Universe without moving."

It would seem that Frank Herbert is referring to Extend in this passage?! Fortunately, it took us substantially less than four thousand years and no messing with consciousness-expanding substances as we solved it in software! ;-)