Keyboard layouts with dead keys

As of Windows 10.0.25120.1000

By dead keysBy ligaturesBy SGCAPSBy UnicodeBy shift statesBy flagsBy languages
Sorting It All OutMSKLCTerminology

The dead key mechanism in keyboard layouts is rooted in European typewriters. One would type the accent character and the typewriter's head would not advance, then one would type the base character and it would. The term dead key refers to the fact that the position is not advanced after typing the diacritic mark.

If you are used to Unicode then you know that one first types the base character and then the diacritic. If you are used to typewriters, you expect to see the diacritic. And in both cases you expect that what is finally produced is always made up of the constituent parts that were typed.

In keyboard layouts on Windows, none of these assumptions are true. Nothing is visible after typing the dead key. The layout defines what is to appear when the combination of the dead key and the base character is typed and there is no rule guiding what must appear.

This is a mechanism that is very easy and intuitive if you know about it, otherwise it is as confusing as hell.

(from Dead keys are not intuitive)

Layouts with simple dead keys

77 out of 208 system layouts have simple dead keys, ordered byllow by the number of dead keys. Legend:

accent
base character
composed character


Greek Polytonic

-
 .αΑιΙυΥ
-¯
_
 .αΑιΙυΥ
_˘
=
 .αΑηΗιΙυωΩ
=
+
 .αΑηΗιΙυΥωΩ
+Ἷ
½
 αΑηΗωΩ
½
αΑηΗωΩ
;
 .αΑεΕηΗιΙοΟυΥωΩ
;
:
 .ιΙυΥ
:¨ϊΪϋΫ
αηω
΅
 .ιυ
΅΅ΐΰ
[
 .αηιυω
[
{
 .αΑηΗωΩ
{
«
 αηω
«
]
 .αΑεΕηΗιΙοΟυΥωΩ
]
}
 .
}·
»
 αηω
»
΄
 .αΑεΕηΗιΙοΟυΥωΩ
΄΄άΆέΈήΉίΊόΌύΎώΏ
¨
 .ιΙυΥ
¨¨ϊΪϋΫ
'
 .αΑεΕηΗιΙοΟρυωΩ
'᾿
"
 .αΑεΕηΗιΙοΟρΡυΥωΩ
"
᾿
αΑηΗωΩ
αΑηΗωΩ
~
 .ιυ
~
`
 .ιυ
`
 .ιυ
\
 .αΑεΕηΗιΙοΟυωΩ
\
|
 .αΑεΕηΗιΙοΟυΥωΩ
|
¬
 αΑηΗωΩ
¬
αΑηΗωΩ
/
 .αΑεΕηΗιΙοΟυωΩ
/
?
 .αΑεΕηΗιΙοΟυΥωΩ
?
αΑηΗωΩ
αΑηΗωΩ


Canadian Multilingual Standard

¸
 cCgGkKlLnNrRsStT
¸çÇģĢķĶļĻņŅŗŖşŞţŢ
˛
 aAeEiIuU
˛ąĄęĘįĮųŲ
^
 aAcCeEgGhHiIjJoOsSuUwWyY
^âÂĉĈêÊĝĜĥĤîÎĵĴôÔŝŜûÛŵŴŷŶ
¨
 aAeEiIoOuUyY
¨äÄëËïÏöÖüÜÿŸ
˚
 aAuU
˚åÅůŮ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
¯
 aAeEiIoOuU
¯āĀēĒīĪōŌūŪ
~
 aAiInNoOuU
~ãÃĩĨñÑõÕũŨ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
˘
 aAgGuU
˘ăĂğĞŭŬ
·
 cCeEgGIzZ
·ċĊėĖġĠİżŻ


English (India)

ˆ
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
˘
 eEhHoOuU
(ĕĔŏŎŭŬ
-
 aAeEiIoOuU
-āĀēĒīĪōŌūŪ
ˍ
 dDhkKlLnNrRtT
_
'
 aAcCeEiIoOuUyY
'áÁçÇéÉíÍóÓúÚýÝ
"
 aAeEiIoOuUy
"äÄëËïÏöÖüÜÿ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ
,
'- (*.:^_`|~<>9o
́̄,̣̤̱̲̮̥̆̐̂̀̃̌̇
<
 zZ
<žŽ
.
 dDhHlLmMnNrRsStT
.
/
 oO
/øØ


Romanian (Programmers)

~
 
~
ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
˙
 zZ
·żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEiIoOuUyY
¨äÄëËïÏöÖüÜÿŸ
¸
 cCsStT
¸çÇşŞţŢ


Romanian (Standard)

~
 
~
ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
˙
 zZ
·żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEiIoOuUyY
¨äÄëËïÏöÖüÜÿŸ
¸
 cCsStT
¸çÇşŞţŢ


Czech

ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
˘
 aAgG
˘ăĂğĞ
°
 aAuU
°åÅůŮ
˛
 aAeEiIuU
˛ąĄęĘįĮųŲ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
˙
 eEiIzZ
·ėĖıİżŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEiIoOuUyY
¨äÄëËïÏöÖüÜÿŸ
¸
 cCgGkKlLnNrRsStT
¸çÇģĢķĶļĻņŅŗŖşŞţŢ


Serbian (Latin)

ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAiIoO
^âÂîÎôÔ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
˙
 zZ
˙żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEoOuU
¨äÄëËöÖüÜ
¸
 cCsS
¸çÇşŞ
 cCsS
çÇşŞ


Albanian

ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAiIoO
^âÂîÎôÔ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
˙
 zZ
˙żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEoOuU
¨äÄëËöÖüÜ
¸
 cCsStT
¸çÇşŞţŢ


Slovenian

ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAiIoO
^âÂîÎôÔ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
˙
 zZ
˙żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEoOuU
¨äÄëËöÖüÜ
¸
 cCsS
¸çÇşŞ


Hungarian

ˇ
 cCdDeEnNrRsStTzZ
ˇčČďĎěĚňŇřŘšŠťŤžŽ
^
 aAiIoO
^âÂîÎôÔ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
˙
 zZ
˙żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEoOuU
¨äÄëËöÖüÜ
¸
 cCsStT
¸çÇşŞţŢ


Polish (214)

ˇ
 cCdDeEnNrRsStTzZ
ˇčČďĎěĚňŇřŘšŠťŤžŽ
^
 aAiIoO
^âÂîÎôÔ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
·
 zZ
·żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEoOuU
¨äÄëËöÖüÜ
¸
 cCsStT
¸çÇşŞţŢ


Romanian (Legacy)

ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAiIoO
^âÂîÎôÔ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
·
 zZ
·żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEoOuU
¨äÄëËöÖüÜ
¸
 cCsStT
¸çÇșȘţŢ


Slovak

ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAiIoO
^âÂîÎôÔ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
˙
 zZ
·żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAoOuU
¨äÄöÖüÜ
¸
 cCsStT
¸çÇşŞţŢ


Slovak (QWERTY)

ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAiIoO
^âÂîÎôÔ
˘
 aA
˘ăĂ
°
 uU
°ůŮ
˛
 aAeE
˛ąĄęĘ
˙
 zZ
˙żŻ
´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
˝
 oOuU
˝őŐűŰ
¨
 aAeEoOuU
¨äÄëËöÖüÜ
¸
 cCsStT
¸çÇşŞţŢ


Russian - Mnemonic

ы
 аеоу
ыяэёю
Ы
 аАеЕоОуУ
ЫЯЯЭЭЁЁЮЮ
с
 хц
сшщ
С
 хХцЦ
СШШЩЩ
й
 аеоу
йяэёю
Й
 аАеЕоОуУ
ЙЯЯЭЭЁЁЮЮ
¨
 ¨аАбБгГеЕзЗиИоОсСуУцЦшШыЫ
¨`эЭъЪѓЃёЁжЖїЇёЁшШюЮчЧщЩўЎ
ц
 х
цч
Ц
 хХ
ЦЧЧ


Canadian French (Legacy)

¸
cC
çÇ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
~
 aAnNoO
~ãÃñÑõÕ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ


Czech (QWERTY)

´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
°
 aAuU
°åÅůŮ
¨
 aAeEiIoOuUyY
¨äÄëËïÏöÖüÜÿŸ
˝
 oOuU
˝őŐűŰ


Czech Programmers

´
 aAcCeEiIlLnNoOrRsSuUyYzZ
´áÁćĆéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
ˇ
 cCdDeElLnNrRsStTzZ
ˇčČďĎěĚľĽňŇřŘšŠťŤžŽ
°
 aAuU
°åÅůŮ
¨
 aAeEiIoOuUyY
¨äÄëËïÏöÖüÜÿŸ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
˝
 oOuU
˝őŐűŰ


Dutch

~
 aAnNoO
~ãÃñÑõÕ
¸
 cC
¸çÇ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ


Sami Extended Finland-Sweden

´
 aAåÅæÆcCeEiIlLnNoOøØrRsSuUwWyYzZ
´áÁǻǺǽǼćĆéÉíÍĺĹńŃóÓǿǾŕŔśŚúÚýÝźŹ
`
 aAeEiIoOuUwWyY
`àÀèÈìÌòÒùÙ
¨
 aAeEiIoOuUwWyY
¨äÄëËïÏöÖüÜÿŸ
^
 aAcCeEgGhHiIjJoOsSuUwWyY
^âÂĉĈêÊĝĜĥĤîÎĵĴôÔŝŜûÛŵŴŷŶ
~
 aAiInNoOuU
~ãÃĩĨñÑõÕũŨ
ˇ
 cCdDeEgGhHkKlLnNrRsStTzZʒƷ
ˇčČďĎěĚǧǦȟȞǩǨľĽňŇřŘšŠťŤžŽǯǮ


Sami Extended Norway

`
 aAeEiIoOuUwWyY
`àÀèÈìÌòÒùÙ
´
 aAåÅæÆcCeEiIlLnNoOøØrRsSuUwWyYzZ
´áÁǻǺǽǼćĆéÉíÍĺĹńŃóÓǿǾŕŔśŚúÚýÝźŹ
¨
 aAeEiIoOuUwWyY
¨äÄëËïÏöÖüÜÿŸ
^
 aAcCeEgGhHiIjJoOsSuUwWyY
^âÂĉĈêÊĝĜĥĤîÎĵĴôÔŝŜûÛŵŴŷŶ
~
 aAiInNoOuU
~ãÃĩĨñÑõÕũŨ
ˇ
 cCdDeEgGhHkKlLnNrRsStTzZʒƷ
ˇčČďĎěĚǧǦȟȞǩǨľĽňŇřŘšŠťŤžŽǯǮ


Belgian (Comma)

^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ


Belgian (Period)

^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ


Portuguese (Brazil ABNT2)

¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ


Canadian French

^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
¸
 cC
¸çÇ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ


Danish

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
~
 aAnNoO
~ãÃñÑõÕ


Estonian

´
 cCeEnNoOsSzZ
´ćĆéÉńŃóÓśŚźŹ
`
 aAeEoOuU
`àÀèÈòÒùÙ
^
 aAeEgGiIuU
^âÂêÊĝĜîÎûÛ
ˇ
 cCsSzZ
ˇčČšŠžŽ
~
 oO
~õÕ


Faeroese

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
~
 aAnNoO
~ãÃñÑõÕ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ


Finnish

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
~
 aAnNoO
~ãÃñÑõÕ


Finnish with Sami

´
 aAåÅæÆcCeEiIlLnNoOøØrRsSuUwWyYzZ
´áÁǻǺǽǼćĆéÉíÍĺĹńŃóÓǿǾŕŔśŚúÚýÝźŹ
`
 aAeEiIoOuUwWyY
`àÀèÈìÌòÒùÙ
¨
 aAeEiIoOuUwWyY
¨äÄëËïÏöÖüÜÿŸ
^
 aAcCeEgGhHiIjJoOsSuUwWyY
^âÂĉĈêÊĝĜĥĤîÎĵĴôÔŝŜûÛŵŴŷŶ
~
 aAiInNoOuU
~ãÃĩĨñÑõÕũŨ


Greek (319) Latin

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
~
 aAnNoO
~ãÃñÑõÕ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ


Greek Latin

^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
´
 aAcCeEiIoOuUyY
´áÁçÇéÉíÍóÓúÚýÝ
¨
 aAeEiIoOuUyY
¨äÄëËïÏöÖüÜÿŸ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ


Greenlandic

´
 aAåÅæÆcCeEiIlLnNoOøØrRsSuUwWyYzZ
´áÁǻǺǽǼćĆéÉíÍĺĹńŃóÓǿǾŕŔśŚúÚýÝźŹ
`
 aAeEiIoOuUwWyY
`àÀèÈìÌòÒùÙ
¨
 aAeEiIoOuUwWyY
¨äÄëËïÏöÖüÜÿŸ
^
 aAcCeEgGhHiIjJoOsSuUwWyY
^âÂĉĈêÊĝĜĥĤîÎĵĴôÔŝŜûÛŵŴŷŶ
~
 aAiInNoOuU
~ãÃĩĨñÑõÕũŨ


Guarani

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
~
 aAeEiIoOuUyY
~ãÃĩĨõÕũŨ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ


Icelandic

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
°
 aA
°åÅ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ


Norwegian

`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
~
 aAnNoO
~ãÃñÑõÕ


Norwegian with Sami

`
 aAeEiIoOuUwWyY
`àÀèÈìÌòÒùÙ
´
 aAåÅæÆcCeEiIlLnNoOøØrRsSuUwWyYzZ
´áÁǻǺǽǼćĆéÉíÍĺĹńŃóÓǿǾŕŔśŚúÚýÝźŹ
¨
 aAeEiIoOuUwWyY
¨äÄëËïÏöÖüÜÿŸ
^
 aAcCeEgGhHiIjJoOsSuUwWyY
^âÂĉĈêÊĝĜĥĤîÎĵĴôÔŝŜûÛŵŴŷŶ
~
 aAiInNoOuU
~ãÃĩĨñÑõÕũŨ


Portuguese

¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ


Sesotho sa Leboa

^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
'
 aAcCeEiIoOuUyY
'áÁçÇéÉíÍóÓúÚýÝ
"
 aAeEiIoOuUy
"äÄëËïÏöÖüÜÿ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ


Spanish Variation

¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
~
 aAnNoO
~ãÃñÑõÕ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
´
 aAeEiIoOuUy
´áÁéÉíÍóÓúÚý
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ


Spanish

~
 aAnNoO
~ãÃñÑõÕ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ


Swedish

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
~
 aAnNoO
~ãÃñÑõÕ


Swiss French

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ
¨
 aAeEiIoOuUy
"äÄëËïÏöÖüÜÿ


Swiss German

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ


Turkish F

^
 aAeEiIıİoOuU
^âÂêÊîÎîÎôÔûÛ
¨
 aAeEiIıİoOuUy
¨äÄëËïÏïÏöÖüÜÿ
~
 aAnNoO
~ãÃñÑõÕ
´
 aAeEiIıİoOuU
´áÁéÉíÍíÍóÓúÚ
`
 aAeEiIıİoOuU
`àÀèÈìÌìÌòÒùÙ


Turkish Q

^
 aAeEiIıİoOuU
^âÂêÊîÎîÎôÔûÛ
¨
 aAeEiIıİoOuU
¨äÄëËïÏïÏöÖüÜ
~
 aAnNoO
~ãÃñÑõÕ
´
 aAeEiIıİoOuU
´áÁéÉíÍíÍóÓúÚ
`
 aAeEiIıİoOuU
`àÀèÈìÌìÌòÒùÙ


United Kingdom Extended

¨
 aAeEiIoOuUwWyY
¨äÄëËïÏöÖüÜÿŸ
^
 aAeEiIoOuUwWyY
^âÂêÊîÎôÔûÛŵŴŷŶ
´
 aAeEiIoOuUwWyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuUwWyY
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ


United States-International

^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
'
 aAcCeEiIoOuUyY
'áÁçÇéÉíÍóÓúÚýÝ
"
 aAeEiIoOuUy
"äÄëËïÏöÖüÜÿ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
~
 aAnNoO
~ãÃñÑõÕ


Central Atlas Tamazight

~
 aAnNoO
~ãÃñÑõÕ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
^
 aAcCdDgGhHjJlLrRsStTwzZ
^ɛƐčČɣƔǧǦřŘʷ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ


French

~
 aAnNoO
~ãÃñÑõÕ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ


Latin American

´
 aAcCeEiIoOuUyY
´áÁçÇéÉíÍóÓúÚýÝ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ


Latvian

~
 oO
~õÕ
´
 cCeEnNoOsSzZ
´ćĆéÉńŃóÓśŚźŹ
°
 aAeEgzZ
°åÅėĖġżŻ
¨
 aAoOuU
¨äÄöÖüÜ


Latvian (Standard)

'
- $%&*_`1236aAcCeEgGiIkKlLnNoOrRsSuUzZ
'§°±×SHY-NBSP«»āĀčČēĒģĢīĪķĶļĻņŅōŌŗŖšŠūŪžŽ
"
- $%&*_4578aAcCeEgGiIkKlLnNoOrRsSuUzZ
"§°±×§°±×ĀĀČČĒĒĢĢĪĪĶĶĻĻŅŅŌŌŖŖŠŠŪŪŽŽ
´
- $%&*_`1236aAcCeEgGiIkKlLnNoOrRsSuUzZ
´§°±×SHY-NBSP«»āĀčČēĒģĢīĪķĶļĻņŅōŌŗŖšŠūŪžŽ
¨
- $%&*_4578aAcCeEgGiIkKlLnNoOrRsSuUzZ
¨§°±×§°±×ĀĀČČĒĒĢĢĪĪĶĶĻĻŅŅŌŌŖŖŠŠŪŪŽŽ


Latvian (QWERTY)

´
 cCeEnNoOsSzZ
´ćĆéÉńŃóÓśŚźŹ
¨
 aAoOuU
¨äÄöÖüÜ
~
 oO
~õÕ
°
 aAeEgzZ
°åÅėĖġżŻ


Sorbian Extended

´
 aAcCdDeEiIlLnNoOrRsSuUyYzZ
´áÁćĆđĐéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
`
 aAcCeEoOsSuU
'ąĄçÇęĘőŐşŞűŰ
^
 cCdDeElLnNoOrRsStTzZ
ˇčČďĎěĚľĽňŇôÔřŘšŠťŤžŽ
°
 eEsuUzZ
˙ėĖſůŮżŻ


Sorbian Standard (Legacy)

´
 aAcCdDeEiIlLnNoOrRsSuUyYzZ
´áÁćĆđĐéÉíÍĺĹńŃóÓŕŔśŚúÚýÝźŹ
`
 aAcCeEiIoOsSuU
'àÀçÇèÈìÌòÒşŞùÙ
^
 cCdDeElLnNoOrRsStTzZ
^čČďĎěĚľĽňŇÔôřŘšŠťŤžŽ
°
 eEsuUzZ
̇ėĖſůŮżŻ


Wolof

~
 aAnNoO
~ãÃñÑõÕ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ
¨
 aAeEiIoOuUy
¨äÄëËïÏöÖüÜÿ


German

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ


German (IBM)

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
^
 aAeEiIoOuU
^âÂêÊîÎôÔûÛ


Greek (220)

΄
 αΑεΕηΗιΙοΟυΥωΩ
΄άΆέΈήΉίΊόΌύΎώΏ
¨
 ιΙυΥ
¨ϊΪϋΫ
΅
 ιυ
΅ΐΰ


Greek (220) Latin

΄
 αΑεΕηΗιΙοΟυΥωΩ
΄άΆέΈήΉίΊόΌύΎώΏ
¨
 ιΙυΥ
¨ϊΪϋΫ
΅
 ιυ
΅ΐΰ


Greek (319)

΄
 αΑεΕηΗιΙοΟυΥωΩ
΄άΆέΈήΉίΊόΌύΎώΏ
¨
 ιΙυΥ
¨ϊΪϋΫ
΅
 ιυ
΅ΐΰ


Greek

΅
 ιυ
΅ΐΰ
΄
 αΑεΕηΗιΙοΟυΥωΩ
΄άΆέΈήΉίΊόΌύΎώΏ
¨
 ιΙυΥ
¨ϊΪϋΫ


Igbo

^
 aAeEiIoOuU
^āĀēĒīĪōŌūŪ
`
 aAeEiInNoOuU
`àÀèÈìÌǹǸòÒùÙ
~
 aAeEiImMnNoOuU
~áÁéÉíÍḿńŃóÓúÚ


Sorbian Standard

´
 cClLnNoOrRsSzZ
´ćĆłŁńŃóÓŕŔśŚźŹ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ
^
 cCeErRsSzZ
^čČěĚřŘšŠžŽ


Yoruba

[
 aAeEiInNoOuU
[àÀèÈìÌǹǸòÒùÙ
'
 aAeEiInNoOuU
'áÁéÉíÍńŃóÓúÚ
\
 eEoOsS
\


Futhark

\
 
~
|
 
|


Irish

´
 aAeEiIoOuUyY
´áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ


Scottish Gaelic

'
 aAeEiIoOuUyY
'áÁéÉíÍóÓúÚýÝ
`
 aAeEiIoOuU
`àÀèÈìÌòÒùÙ


Tibetan (PRC) - Updated

m
m
ཿ
M
mM


Tibetan (PRC)

m
m
ཿ
M
mM


ADLaM

`
`bBjJkKpPsSvV
`


Bosnian (Cyrillic)

'
 гГкК
'ѓЃќЌ


Inuktitut - Naqittaut

]


NZ Aotearoa

`
 `aAeEiIoOuU
~`āĀēĒīĪōŌūŪ


Polish (Programmers)

~
 aAcCeElLnNoOsSxXzZ
~ąĄćĆęĘłŁńŃóÓśŚźŹżŻ


Serbian (Cyrillic)

'
 гГкК
'ѓЃќЌ

Layouts with chained dead keys

Dead keys can also be chained, where a dead key plus a base character will treat the combination as another dead key waiting for yet a third base character. One could then chain that as well, and so on — adding more and more keystrokes to produce in the end a single code point.


Cherokee Phonetic

Reachable within 1 key press:

q
 
Α
Q
 
Α
w
 
W
 
t
 iIlLsS
ΛΛΒΒΓΓ
T
 lLsS
ΒΒΓΓ
y
 
Y
 
s
 `xX
S
 `xX
d
 dDlLsS
ΛΛΔΔΘΘ
D
 dDlLsS
ΛΛΔΔΘΘ
g
 hHwW
ΚΚΖΖ
G
 hHwW
ΚΚΖΖ
h
 nN
ΕΕ
H
 nN
ΕΕ
j
 
J
 
k
 hHwW
ΙΙΗΗ
K
 hHwW
ΙΙΗΗ
l
 
L
 
x
 
x
X
 
X
c
 
C
 
n
 hH
N
 hH
m
 
M
 

Reachable within 2 key presses:

Α
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Β
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Γ
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Λ
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Δ
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Θ
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Ζ
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Κ
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Ε
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Η
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
Ι
'- !"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY
'-!"#$%&()*,./:;?@[\]^_`{|}~+<=>0123456789cCdDgGhHkKlLmMnNqQsStTwWxXyY

Developer notes

You can use ToUnicodeEx to detect dead keys (returns -1). For chained dead keys, you can obtain the final character by calling the function multiple times for each dead key pressed. However, it isn't possible to distinguish the chained lookup tables inbetween.

Michael has discussed dead keys in Part #7 and chained dead keys in Part #10a of his Getting all you can out of a keyboard layout series.

Both French and German keyboard layouts in the Windows driver samples show how to define simple dead keys at the driver level.