[Home] [Purchase] [Download] [Manual] [Acknowledgements] [Sitemap] [Release Notes] [FAQ]

Up ] Swapping Caps Lock and Ctrl ] Disabling the WINDOWS key ] Mapping multimedia/web keys to numeric keypad ] Assigning characters to multimedia/web keys ] Multi-lingual English/French keyboard ] Multi-alphabet Serbian Cyrillic/Latin keyboard ] Tri-lingual Serbian Cyrillic / Latin / Greek keyboard ] Replacing AltGR with Kana ] French improved keyboard ] Multi-lingual Russian phonetic / US English keyboard ] Multi-lingual Bulgarian phonetic / US English keyboard ] Colemak keyboard ] Multi-lingual Hindi / US English keyboard ] Multi-lingual Hebrew / US English keyboard ] French multilingual keyboard ] Emulating Compose key using chained dead keys ] [ US English with all Latin accents using chained dead keys ] Mac Boot Camp: fixed positions of Alt, Windows and Ctrl keys ] Using NLS functions to simulate the "Context menu" key ] Using NLS functions to make Caps Lock and Alt Gr share the same key ] Using NLS functions to simulate togglable ROYA/LOYA modifier keys ] Sanskrit keyboard with Vedic extensions ]

Example - US English keyboard with all Latin accents using chained dead keys

Installer package: KbdEditInstallerUSChainedDeadKeyMultiAccent.exe

Layout file: US Chained Dead Key Multi Accent.zip

Dead key table file: Chained Dead Table All Accents.zip

You can use the installer package to deploy this keyboard layout without any restrictions. Free Demo version can be used to make changes and test them. To deploy a modified version, a Premium, Personal or Lite edition is needed.

The Unicode standard defines many accented versions of Latin letters. Most standard Windows layouts support at least some accents through dead keys, depending on the needs of particular language.

The standard also defines many double accents consisting of two simple accents simultaneously applied to a letter. These accents are heavily used in  Vietnamese alphabet, where five tone marks (grave  ̀ , hook  ̉ , tilde  ̃  , acute  ́  and dot below   ̣  ) can be combined with already accented letters to produce final letters like or (and several other combinations). Double accents can also appear in Pinyin Chinese Romanization ( ǖ ǘ ǚ ǜ ).

Double accents are generally not available in standard Windows keyboards. An earlier KbdEdit example - French multilingual keyboard - does a decent job of mapping a rich subset of double accents to custom dead keys. However, it suffers from a typical limitation of "classic" dead keys - each double accent is mapped to a distinct VK/modifier position. This limits the number of accessible double accents and forces them to be mapped to counter-intuitive key combinations that are difficult to memorize.

This example goes one step further by supporting all "conventional" single accents, plus all double-accent combinations, through a convenient subset of easy-to-memorize dead keys. Chained dead keys are used to produce double accents using two-key sequences of their single-accent components (see further below for a complete table of double accents). This way, a total of 62 accents (26 single + 36 double) is produced using only 26 dead keys.

The image below shows the positions of accents that have direct high-level dead key mappings. They are mapped to AltGr and Shift+AltGr positions, leaving the original US English Base and Shift positions intact. Where the same accent exists in both "above" and "below" version (like 'Diaeresis'  ̈  and 'Diaeresis Below'  ̤ ), an effort has been made to map the "below" accent to AltGr and the "above" counterpart to AltGr+Shift position of the same key.

US with all accents on chained dead keys
(click to see full sized image)

If you normally use the standard US English layout, you can use the attached layout file US Chained Dead Key Multi Accent.zip without modifications (the examples page explains how). If you are not happy with the placement of accent dead keys, you can use the high-level editor to rearrange them to your taste.

If you use a different layout, you will first have to use the Import dead char table from KLD file command in the Dead char editor to import the attached dead table file Chained Dead Table All Accents.zip. You should then use the high-level editor to map the accents you are interested in to VK/modifier positions of your choice.

Unless you specifically want to have double accents available through a single keystroke, you should create dead-key mappings only for the single accents - the double accents are available by default through chaining and don't require any additional effort.

First-level dead keys - single accents

The example supports 26 "single" accents, each of which is mapped to its own VK key / modifier position in the high-level editor.

Each dead character is represented by the Unicode character for the accent it represents. E.g. dead character for accent 'Breve' is Unicode character 0306  ̆  'Combining Breve'.

This table shows all single accents, along with the keystrokes to produce them:

Dead character Mapped to Sample transformation
From To
U0301  ́ Acute  ́ AltGr+' U0061 a U00E1 á
U0306  ̆ Breve  ̆ AltGr+Shift+2 U0061 a U0103 ă
U032E  ̮ Breve Below  ̮ AltGr+2 U0068 h U1E2B
U030C  ̌ Caron  ̌ AltGr+\ U0061 a U01CE ǎ
U0327  ̧ Cedilla  ̧ AltGr+4 U0063 c U00E7 ç
U0302  ̂ Circumflex  ̂ AltGr+Shift+6 U0061 a U00E2 â
U032D  ̭ Circumflex Below  ̭ AltGr+6 U0064 d U1E13
U0326  ̦ Comma Below  ̦ AltGr+, U0073 s U0219 ș
U0308  ̈ Diaeresis  ̈ AltGr+Shift+3 U0061 a U00E4 ä
U0324  ̤ Diaeresis Below  ̤ AltGr+3 U0075 u U1E73
U0307  ̇ Dot Above  ̇ AltGr+Shift+. U0061 a U0227 ȧ
U0323  ̣ Dot Below  ̣ AltGr+. U0061 a U1EA1
U0300   ̀ Grave  ̀ AltGr+Shift+' U0061 a U00E0 à
U0309  ̉ Hook Above  ̉ AltGr+Shift+, U0061 a U1EA3
U031B  ̛ Horn  ̛ AltGr+Shift+4 U006F o U01A1 ơ
U0311  ̑ Inverted Breve  ̑ AltGr+Shift+1 U0061 a U0203 ȃ
U0331  ̱ Line Below  ̱ AltGr+Shift+- U0062 b U1E07
U0304  ̄ Macron  ̄ AltGr+- U0061 a U0101 ā
U00B7  · Middle Dot  · AltGr+Shift+/ U006C l U0140 ŀ
U0328  ̨ Ogonek  ̨ AltGr+0 U0061 a U0105 ą
U02BE  ʾ Right Half Ring  ʾ AltGr+Shift+0 U0061 a U1E9A
U030A  ̊ Ring Above  ̊ AltGr+Shift+o U0061 a U00E5 å
U0325  ̥ Ring Below  ̥ AltGr+o U0061 a U1E01
U002F  / Stroke / AltGr+/ U0061 a U2C65
U0303   ̃ Tilde  ̃ AltGr+Shift+` U0061 a U00E3 ã
U0330  ̰ Tilde Below  ̰ AltGr+` U0065 e U1E1B

Second-level dead keys - double accents

Further 36 dead characters represent double accents produced by chaining two simple accents together.

Since Unicode generally does not define convenient single characters for complex accents, and the corresponding dead characters are not meant to be directly mapped to VK code / modifier positions anyway, numeric values for the chained dead characters are chosen arbitrarily from the "Private use" area (E000 - E036).

In most cases, chaining sequences are symmetrical: e.g. double accent 'Breve And Acute' can be produced by either 'Breve' followed by 'Acute' or 'Acute' followed by 'Breve'. The only exception is the Macron / Diaeresis pair - interestingly, "Diaeresis And Macron" and "Macron And Diaeresis" are two distinct accents, hence 'Macron' followed by 'Diaeresis' produces different result from 'Diaeresis' followed by 'Macron'.

Also note that 'Double Acute', even though technically not a double accent, is produced by pressing 'Acute' twice rather than being given its own first-level dead character. Likewise, 'Double Grave' is produced by pressing 'Grave' twice. This way, two VK code / modifier positions are saved in the high-level editor. Of course, if you prefer these accents to be produced by a single keystroke, you can easily assign them to key/modifier positions of their own.

This table shows all double accents supported by the example, along with the chaining sequences to produce them:

Dead character Mapped to Sample transformation
From To
UE011 Acute And Dot Above  ́̇ AltGr+'  AltGr+Shift+.
AltGr+Shift+.  AltGr+'
U0073 s U1E65
UE01A Breve And Acute  ̆́ AltGr+Shift+2  AltGr+'
AltGr+'  AltGr+Shift+2
U0061 a U1EAF
UE01E Breve And Dot Below  ̣̆ AltGr+Shift+2  AltGr+.
AltGr+.  AltGr+Shift+2
U0061 a U1EB7
UE01B Breve And Grave  ̆̀ AltGr+Shift+2  AltGr+Shift+'
AltGr+Shift+'  AltGr+Shift+2
U0061 a U1EB1
UE01C Breve And Hook Above  ̆̉ AltGr+Shift+2  AltGr+Shift+,
AltGr+Shift+,  AltGr+Shift+2
U0061 a U1EB3
UE01D Breve And Tilde  ̆̃ AltGr+Shift+2  AltGr+Shift+`
AltGr+Shift+`  AltGr+Shift+2
U0061 a U1EB5
UE012 Caron And Dot Above  ̌̇ AltGr+\  AltGr+Shift+.
AltGr+Shift+.  AltGr+\
U0073 s U1E67
UE00A Cedilla And Acute  ̧́ AltGr+4  AltGr+'
AltGr+'  AltGr+4
U0063 c U1E09
UE00D Cedilla And Breve  ̧̆ AltGr+4  AltGr+Shift+2
AltGr+Shift+2  AltGr+4
U0065 e U1E1D
UE015 Circumflex And Acute  ̂́ AltGr+Shift+6  AltGr+'
AltGr+'  AltGr+Shift+6
U0061 a U1EA5
UE019 Circumflex And Dot Below  ̣̂ AltGr+Shift+6  AltGr+.
AltGr+.  AltGr+Shift+6
U0061 a U1EAD
UE016 Circumflex And Grave  ̂̀ AltGr+Shift+6  AltGr+Shift+'
AltGr+Shift+'  AltGr+Shift+6
U0061 a U1EA7
UE017 Circumflex And Hook Above  ̂̉ AltGr+Shift+6  AltGr+Shift+,
AltGr+Shift+,  AltGr+Shift+6
U0061 a U1EA9
UE018 Circumflex And Tilde  ̂̃ AltGr+Shift+6  AltGr+Shift+`
AltGr+Shift+`  AltGr+Shift+6
U0061 a U1EAB
UE003 Diaeresis And Acute  ̈́ AltGr+Shift+3  AltGr+'
AltGr+'  AltGr+Shift+3
U0069 i U1E2F
UE004 Diaeresis And Caron  ̈̌ AltGr+Shift+3  AltGr+\
AltGr+\  AltGr+Shift+3
U0075 u U01DA ǚ
UE005 Diaeresis And Grave  ̈̀ AltGr+Shift+3  AltGr+Shift+'
AltGr+Shift+'  AltGr+Shift+3
U0075 u U01DC ǜ
UE002 Diaeresis And Macron  ̈̄ AltGr+Shift+3  AltGr+- U0061 a U01DF ǟ
UE006 Dot Above And Macron  ̇̄ AltGr+Shift+.  AltGr+-
AltGr+-  AltGr+Shift+.
U0061 a U01E1 ǡ
UE013 Dot Below And Dot Above  ̣̇ AltGr+.  AltGr+Shift+.
AltGr+Shift+.  AltGr+.
U0073 s U1E69
UE00E Dot Below And Macron  ̣̄ AltGr+.  AltGr+-
AltGr+-  AltGr+.
U006C l U1E39
UE000 Double Acute  ̋ AltGr+'  AltGr+' U006F o U0151 ő
UE001 Double Grave  ̏ AltGr+Shift+'  AltGr+Shift+' U0061 a U0201 ȁ
UE01F Horn And Acute  ̛́ AltGr+Shift+4  AltGr+'
AltGr+'  AltGr+Shift+4
U006F o U1EDB
UE023 Horn And Dot Below  ̛̣ AltGr+Shift+4  AltGr+.
AltGr+.  AltGr+Shift+4
U006F o U1EE3
UE020 Horn And Grave  ̛̀ AltGr+Shift+4  AltGr+Shift+'
AltGr+Shift+'  AltGr+Shift+4
U006F o U1EDD
UE021 Horn And Hook Above  ̛̉ AltGr+Shift+4  AltGr+Shift+,
AltGr+Shift+,  AltGr+Shift+4
U006F o U1EDF
UE022 Horn And Tilde  ̛̃ AltGr+Shift+4  AltGr+Shift+`
AltGr+Shift+`  AltGr+Shift+4
U006F o U1EE1
UE00C Macron And Acute  ̄́ AltGr+-  AltGr+'
AltGr+'  AltGr+-
U006F o U1E53
UE014 Macron And Diaeresis  ̄̈ AltGr+-  AltGr+Shift+3 U0075 u U1E7B
UE00B Macron And Grave  ̄̀ AltGr+-  AltGr+Shift+'
AltGr+Shift+'  AltGr+-
U0065 e U1E15
UE007 Ogonek And Macron  ̨̄ AltGr+0  AltGr+-
AltGr+-  AltGr+0
U006F o U01ED ǭ
UE008 Ring Above And Acute  ̊́ AltGr+Shift+o  AltGr+'
AltGr+'  AltGr+Shift+o
U0061 a U01FB ǻ
UE00F Tilde And Acute  ̃́ AltGr+Shift+`  AltGr+'
AltGr+'  AltGr+Shift+`
U006F o U1E4D
UE010 Tilde And Diaeresis  ̃̈ AltGr+Shift+`  AltGr+Shift+3
AltGr+Shift+3  AltGr+Shift+`
U006F o U1E4F
UE009 Tilde And Macron  ̃̄ AltGr+Shift+`  AltGr+-
AltGr+-  AltGr+Shift+`
U006F o U022D ȭ

Manual index

Copyright © KbdSoft 2007-2023