Extend Extra Extreme






Extend ANSI No Mod Linux

(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 MacOS users could learn to love Extend as much as I do.

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

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

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

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

... How?

See the main Layers page for more info and instructions on how to use Extend on different platforms.

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. On a side note: 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! Maybe I'll eventually make something like that for other platforms, so you won't have to hold down the Extend key all the time for, say, a NumPad layer.

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 Forum 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 (on Windows): 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 Arrows and Shift with the actual Win/GUI 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.


There is no Win/GUI key on my Extend layout, as mentioned above. Since Extend layers override the letter/number/symbol keys, most of the common shortcuts involving Win/GUI or Ctrl aren't directly useable with Extend anyway. You can use Extend Arrows and Shift with the actual Win/GUI key.

On Windows at least you can also map Extend-taps or similar to key combos. As an example, when I tap Extend then A I get the Select All (Ctrl+A) command. It can be done from the home row which makes it a lot handier than twisting my hand for the physical Ctrl+A combo. Ext-tap then W opens Windows Explorer (Win+E), etc etc. The only problem is remembering where I mapped them all... But since I use these on Windows I have the handy EPKL help images to aid my memory.

Below is a list of some Windows shortcuts that can be handy to learn even if they aren't directly useable with the standard Extend layers. Enjoy!

Useful Windows shortcuts:

This is not a comprehensive list, but a collection of useful shortcuts that many Windows users could benefit from. I have!

  • Win+D: Show Desktop – Minimize all windows (hides everything; with M it asks nicely instead)
  • Win+E: Windows Explorer
  • Win+I: Windows Settings
  • Win+L: Lock the screen
  • Win+P: Projector settings
  • Win+R: Run dialog (e.g., "shell:startup" for the Startup folder)
  • Win+V: Paste panel – choose what to paste from Clipboard history
  • Win+.: Emoji panel; works with either period or semicolon
  • Win+Shift+S: Snipping tool for screenies
  • Win+Tab: Like Alt+Tab but lets you arrow around then select
  • Win+T: Make the Taskbar active; see Window Management above
  • Win+#: For # a number key, activate the #th Taskbar window directly
  • Alt+Space: Window Menu for the active window; see Window Management above
  • F11: Full Screen View in many programs
  • Ctrl+Shift+T: Reopen Tab – lifesaver when you accidentally close stuff
  • Ctrl+Y: Redo Change in some programs; others use Ctrl+Shift+Z

Extend Key Logo

... When?

Extend, as described, is a wonderful chording modifier – the same basic modifier type as Shift or Ctrl, but used for navigation/editing and much more. However, chording isn't always the best answer. For one-shot output like a special symbol or a single command, 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 best option is to use a mix of chords and sequences suited to your needs. An example: For my Kaomoji needs I first used a one-shot layer 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, normal Extend still reigns supreme.

See the Sequencing topic for more in-depth info.


One-Shot Extend

One-shot Extend layers that return to the main layer after releasing one key, could be good for "power strings" that typically are entered once. They could just as well have been implemented with other sequencing methods instead, which may be simpler as multi-Extend typically uses chording to access deeper Extend layers. EPKL for Windows supports one-shot Extend layers.


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. I call such a multi-mode modifier a Mother-of-DeadKeys (MoDK) Extend key. Sadly, this isn't available on all platforms.

Extend Key Logo


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

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.

Extend Key Logo


Extend-tap 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

My well-worn CapsLock-Extend key

My Lenovo ThinkPad's Extend key after seven years of loving use.

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! 😻

PKL Cpt Extend