Keyboard Support

Contact and Search

Keyman.com Homepage

Header bottom

Keyman.com

On this page

Khmer Angkor

Overview

This documentation is adapted from three sources: ‘How to Type Khmer Unicode,’ ‘the Unicode Standard, Version 10.0.0’ and a paper authored by the Keyman team entitled ‘Spoof-Vulnerable Rendering in Khmer Unicode Implementation’ presented at Asia Conference on Information System in 2017.  Customizations have been made by the Keyman team. A layer is added to both desktop and touch layout in order to dedicate to the Khmer divination lore and Khmer lunar dates.

Khmer Angkor Keyboard Layouts

Desktop Layout

Touch Layout

There is no Shift key nor subscript sign in the touch layout to switch between layouts. Strange, right? Yes, maybe, but it is not easy to reach for the “Shift” key one-handedly. More keys are embedded in each key:

  • Press and hold for a second or so to see more available keys.
  • Press a key and flick down
  • For example, to get subscript “្ហ” press and flick down on key “”.

    While using the touch keyboard, one has to be aware of the location of each key. This may take a while to get used to, but it would be easier, once passed the learning curve, than pressing “Shift” each time to get addition characters and pressing “ each time to get a subscript.

    Phone - Default layout with flick gesture on ហ key

     

    Phone - Shift layout

    Phone - Khmer Numeric layout

     

    Phone - Numeric layout with longpress triggered on / key

     

    Khmer Character Categories and Keystrokes for Desktop

    Consonants

    Consonant

    Keystroke

     

    Consonant

    Keystroke

    [U+1780]

    K

    [U+1790]

    F

    [U+1781]

    X

    [U+1791]

    Shift T

    [U+1782]

    Shift K

    [U+1792]

    Shift F

    [U+1783]

    Shift X

    [U+1793]

    N

    [U+1784]

    G

    [U+1794]

    B

    [U+1785]

    C

    [U+1795]

    P

    [U+1786]

    Q

    [U+1796]

    Shift B

    [U+1787]

    Shift C

    [U+1797]

    Shift P

    [U+1788]

    Shift Q

    [U+1798]

    M

    [U+1789]

    Shift J

    [U+1799]

    Y

    [U+178A]

    D

    [U+179A]

    R

    [U+178B]

    Z

    [U+179B]

    L

    [U+178C]

    Shift D

    [U+179C]

    V

    [U+178D]

    Shift Z

    [U+179F]

    S

    [U+178E]

    Shift N

    [U+17A0]

    H

    [U+178F]

    T

    [U+17A1]

    Shift L

     

     

    [U+17A2]

    Shift G

     

    Dependent Vowels

    Dependent Vowel

    Keystroke

     

    Dependent Vowel

    Keystroke

    [U+17B6]

    A

    [U+17C0]

    [

    [U+17B7]

    I

    [U+17C1]

    E

    [U+17B8]

    Shift I

    [U+17C2]

    Shift E

    [U+17B9]

    W

    [U+17C3]

    Shift S

    [U+17BA]

    Shift W

    [U+17C4]

    O

    [U+17BB]

    U

    [U+17C5]

    Shift O

    [U+17BC]

    Shift U

    ុំ [U+17BB][U+17C6]

    ,

    [U+17BD]

    Shift Y

    ាំ [U+17B6][U+17C6]

    Shift A

    [U+17BE]

    ;

    ុះ [U+17BB][U+17C7]

    Shift ,

    [U+17BF]

    Shift [

    េះ [U+17C1][U+17C7]

    Shift V

     

     

    ោះ [U+17C4][U+17C7]

    Shift ;

     

    Signs

    Sign

    Keystroke

    [U+17C6]

    Shift M

    [U+17C7]

    Shift H

    [U+17C8][1]

    AltGr ’

     

    Independent Vowels

    Independent Vowel

    Keystroke

     

    Independent Vowel

    Keystroke

    [U+17A5]

    -

    [U+17AD]

    Shift \

    [U+17A6]

    AltGr I

    [U+17AE]

    \

    [U+17A7]

    Shift ]

    [U+17AF]

    AltGr E

    [U+17A9]

    AltGr [

    [U+17B0]

    AltGr P

    [U+17AA]

    ]

    [U+17B1]

    AltGr O

    [U+17AB]

    AltGr R

    [U+17B2]

    =

    [U+17AC]

    Shift R

    [U+17B3]

    AltGr ]

    Diacritics

    Diacritics

    Keystroke

     

    Diacritics

    Keystroke

    [U+17C9]

    Shift ’

    [U+17CF]

    Shift 8

    [U+17CA]

    /

    [U+17D0]

    Shift 7

    [U+17CB]

    [U+17CE]

    AltGr =

    [U+17CC]

    Shift -

    [U+17D3]

    AltGr M

    [U+17CD]

    Shift 6

    [U+17D2]

    J

    Native Punctuations

    Native Punct.

    Keystroke

     

    Native Punct.

    Keystroke

    [U+17D4]

    .

    [U+17D9]

    AltGr 6

    [U+17D5]

    Shift .

    [U+17DA]

    AltGr 7

    [U+17D6]

    AltGr ;

    [U+17D7]

    Shift 2

     

    Latin Punctuations

    Latin Punct.

    Keystroke

     

    Latin Punct.

    Keystroke

    ! [U+0021]

    Shift 1

    « [U+00AB]

    `

    ? [U+003F]

    Shift ?

    » [U+00BB]

    Shift `

    [U+0022]

    Shift 3

    - [U+002D]

    AltGr S

    . [U+002E]

    AltGr .

    : [U+003A]

    AltGr G

    , [U+002C]

    AltGr ,

    [U+2018]

    AltGr H

    ; [U+003B]

    AltGr N

    [U+2019]

    AltGr J

    # [U+0023]

    AltGr C

     

    & [U+0026]

    AltGr V

     

    Currencies

    [U+17DB]

    Shift 4

     

    Khmer Numerals

    Khmer Numeral

    Keystroke

     

    Khmer Numeral

    Keystroke

    [U+17E1]

    1

    [U+17E6]

    6

    [U+17E2]

    2

    [U+17E7]

    7

    [U+17E3]

    3

    [U+17E8]

    8

    [U+17E4]

    4

    [U+17E9]

    9

    [U+17E5]

    5

    [U+17E0]

    0

     

                Divination Lore

    Divination Lore

    Keystroke

     

    Divination Lore

    Keystroke

    [U+17F1]

    AltGr Shift 1

    [U+17F6]

    AltGr Shift 6

    [U+17F2]

    AltGr Shift 2

    [U+17F7]

    AltGr Shift 7

    [U+17F3]

    AltGr Shift 3

    [U+17F8]

    AltGr Shift 8

    [U+17F4]

    AltGr Shift 4

    [U+17F9]

    AltGr Shift 9

    [U+17F5]

    AltGr Shift 5

    [U+17F0]

    AltGr Shift 0

                Khmer Lunar Dates

    Khmer Lunar Date

    Keystroke

     

    Khmer Lunar Date

    Keystroke

    [U+19E0]

    AltGr Shift Q

    [U+19F0]

    AltGr Shift G

    [U+19E1]

    AltGr Shift W

    [U+19F1]

    AltGr Shift H

    [U+19E2]

    AltGr Shift E

    [U+19F2]

    AltGr Shift J

    [U+19E3]

    AltGr Shift R

    [U+19F3]

    AltGr Shift K

    [U+19E4]

    AltGr Shift T

    [U+19F4]

    AltGr Shift L

    [U+19E5]

    AltGr Shift Y

    [U+19F5]

    AltGr Shift ;

    [U+19E6]

    AltGr Shift U

    [U+19F6]

    AltGr Shift ’

    [U+19E7]

    AltGr Shift I

    [U+19F7]

    AltGr Shift Z

    [U+19E8]

    AltGr Shift O

    [U+19F8]

    AltGr Shift X

    [U+19E9]

    AltGr Shift P

    [U+19F9]

    AltGr Shift C

    [U+19EA]

    AltGr Shift [

    [U+19FA]

    AltGr Shift V

    [U+19EB]

    AltGr Shift ]

    [U+19FB]

    AltGr Shift B

    [U+19EC]

    AltGr Shift A

    [U+19FC]

    AltGr Shift N

    [U+19ED]

    AltGr Shift S

    [U+19FD]

    AltGr Shift M

    [U+19EE]

    AltGr Shift D

    [U+19FE]

    AltGr Shift ,

    [U+19EF]

    AltGr Shift F

    ᧿ [U+19FF]

    AltGr Shift .

    Discouraged/Obsolete characters

    Character

    Keystroke

    [U+17D8]

    AltGr L

    [U+17A8]

    AltGr T

    [U+17DC]

    AltGr Q

    [2] [U+17D1]

    AltGr 3

    [U+17D3]

    AltGr M

                Characters used in minority languages

    Other Character

    Keystroke

    [U+179D]

    AltGr K

    [U+179E]

    AltGr B

    [U+17DD]

    AltGr W

                Joiners and Spaces

    Key name

    Keystroke

    Zero-width non-joiner [U+200C]

    AltGr + 1

    Zero-width joiner [U+200D]

    AltGr + ‘

    Zero-width space [U+200B]

    Spacebar

    White space [U+0020]

    Shift + Spacebar or Press spacebar twice

    No break space [U+00A0]

    AltGr + Spacebar

     

    Typing in Khmer

    Khmer Angkor keyboard adopted the key arrangement from that of Khmer NiDA keyboard. More functionalities have been added to it to assist in typing (i.e. reduce inconsistency in character sequences). Regardless of how the user may type, a well-formed word will be produced. Please note that only issues identified are covered. For how to install the Khmer Angkor keyboard, please click here for the instructions.

    You can simply use Khmer Angkor as you would for any NiDA based keyboard. You may type a word in an order of how it is spelled, not how it appears to be, especially when the vowel is to the left of the consonant. For example, to type the word “តែ” which means ‘tea’, one should type the consonant first and then the vowel (i.e. press key “T” and then “Shift E”).

    The order of characters is:

                    Consonant + Subscript(s) + Consonant Shifter + Vowel + Diacritic

    Silent Auto-correction

    There are eight cases of invisible typos that Khmer Angkor keyboard automatically corrects. They could not be detected with the naked eye; and the rendering engines may render them all the same on the screen. The auto-correction involves reordering and/or transducing of certain in correct characters to the correct ones in a split second.

                Subscript + Vowel

    When a subscript and a vowel occur together, the vowel has to come after the subscript. For instance, “ខ្មែរ and ខែ្មរ look the same, but they are encoded differently.

    1.        ខ្មែរ = ខ ្ម ែ    (correct)

    2.        ខែ្មរ = ខ ែ ្ម    (incorrect)

    Thanks to the context dependent rules, Khmer Angkor keyboard is able to output the second typing sequence the same as that of the first one.

                Subscript + ្រ [U+17D2] [U+179A]

    According to the spelling rule, in a sequence of two subscript and one of which is ្រ [U+17D2] [U+179A], the ្រ [U+17D2] [U+179A] should come after another subscript.

    ·         កញ្ជ្រឹល = ក ញ ្ជ ្រ ឹ ល   (correct)

    ·         កញ្រ្ជឹល = ក ញ ្រ ្ជ ឹ ល   (incorrect)

    As you can see the two-character sequences yield the same visual output on the screen. Once again, Khmer Angkor will be able to automatically swap the sequence of the second to the first; so that the output would be both looked and encoded correctly and consistently.

                Subscript + Consonant Shifter + Vowel

    This is a case whereby the character sequence is vague in the Unicode Standard. Unicode Standard 4.0 and later have the consonant shifter come between the consonant and the subscript while Unicode Standard 3.0 has it after the subscript. Khmer Angkor conforms to Unicode 3.0 and it is taken as the standard sequence. If one typed a consonant shifter before a subscript, the order would be switched silently.

         ៉ ្យ ា ង Þ ្យ ៉ ា ង

                Consonant Shifter + Vowel

    Consonant shifters should be typed before a vowel. (See the same in the section above)

                Vowel with Nikahit [U+17C6]

    Nikahit is considered as a sign in the Unicode Standard. However its function is more like that of a vowel. It is usually combined with another vowel, i.e. [U+17BB] [U+17B6], and it should always be typed after these vowels.

               ំ ុ       Þ ុ ំ
         
    ំ ា      Þ ា ំ

                Vowel [U+17C4] and Vowel [U+17BE]

    These two vowels could be mistakenly typed by adding [U+17B6] and [U+17C1] respectively to [U+17C1]. Given this sequence, Khmer Angkor would transform them to [U+17C4] and [U+17BE], the correct vowel encodings.

                Visually Identical Subscript

    Two subscripts look exactly the same, but they are encoded with different Unicode code points, ្ដ [U+17D2][U+178A] and ្ត [U+17D2][U+178F]. According to the spelling rule, it governs that the first should come after [U+178E] and the latter should come after [U+1793].

    Vowel Rotation

    Since no two-vowel sequence is allowed, once one is typed after another, the vowel would switch to the one typed last. For example, if the current character is vowel [U+17B6], and then [U+17C2] is typed, the final output would be [U+17C2], not [U+17B6].

                    NOTE: The vowel rotation would not be triggered in the following cases:

    ·         If the first vowel is [U+17C1] and the second is [U+17B8]or vice versa, then the switch would not happen, but the output would be [U+17BE] instead.

    ·         If the first vowel is [U+17C1] and the second is [U+17B8] or vice versa, then the switch would not happen, but the output would be [U+17C4] instead.

    ·         If the first vowel is on the above vowels[3] and the second is [U+17BB] or vice versa, then the switch would not happen, but the output would be the corresponding consonant shifter instead. For examples: a sequence of ស ី ុ or ស ុ ី would be automated as ស៊ី (ស ៊ ី); ម ី ុ or ម ុ ី would be automated as ម៉ី (ម ៉ ី).

    ·         When [U+17BB] is typed after ាំ, it will be transformed to a consonant shifter corresponding with the consonant before ាំ before which the shifter will be placed. For example,

    o   សាំ + ុ   Þ ស៊ាំ (ស ៊ ាំ) and

    o   មាំ + ុ    Þ ម៉ាំ (ម ៉ ាំ).

    ·         When or is typed after , the order will be reversed. For example,

    o   + + ុ       Þ កុំ (ក ុ ំ) and

    o   + + ា      Þ កាំ (ក ា ំ).

     

    Beep / Constraints

    ·         No two consecutive vowels in a syllable.

    ·         No Bantoc is allowed after a vowel, a pseudo vowel[4], a consonant shifter or a subscript.

    ·         No two consecutive subscript signs () are allowed.

    ·         No two consecutive consonant shifters are allowed.

     

    Mistyped Characters

    No

    Mistyped as …

    Transformed to …

    1

    ទ្ប (ទ ្ប)

    2

    ប្ញ (ប ្ញ)

    3

    ឫុ (ប ្ញ ុ)

    4

    ឭា (ឭ ា)

    5

    ឮា (ឮ ា)

    6

    ព្ញ (ព ្ញ)

    7

    ឭុ (ព ្ញ ុ)

    8

    ព្ឋ (ព ្ឋ)

     

    9

    ឧិ (ឧ ិ)

    10

    ឧ៌ (ឧ ៌)

     

    11

    ឧ៍ (ឧ ៍)

      

    12

    ដ្ធ (ដ ្ធ)

    ដ្ឋ

    13

    ទ្ឋ (ទ ្ឋ

    ទ្ធ

    14

    ពន្ឋ (ព ន ្ឋ

    ពន្ធ

    15

    ព័ន្ឋ (ព ័ ន ្ឋ

    ព័ន្ធ

    16

    ឪ្យ (ឪ ្យ

    ឱ្យ

    17

    ឳ្យ (ឳ ្យ

    ឱ្យ

    18

    ញ្វ (ញ ្វ

    ព្វា

    19

    េ ្យ ឺ

    20

    េ ្យ ឹ

    21

    េ ្យ ី

     



    [1] It is actually not a vowel, but it behaves like one. To some, this is a diacritics.

    [2] Note the different between this character and [U+17CA].

    [3] [U+17B7], [U+17B8], [U+17B9], [U+17BA], [U+17BE], and ាំ [U+17B6] [U+17C6] are considered as superscript vowels or above vowels.

    [4] Three characters play a role similar to that of vowels, thus they are called ‘pseudo vowel’.
    They are: [U+17C6], [U+17C7], and [U+17C8].

Click here to download the English Version or Khmer Version in PDF format.

Fonts

To get Khmer fonts, you may visit one of the three sources below:

More Information

All Documentation Versions

Download this keyboard