kmfl-keyboards-mywin-2.1.1/myWin2.1.kmn0000644000175000017500000002470510730513175016625 0ustar keithkeithc Burmese Keyboard for Unicode Encoding. c Derived from an original by MJP Hoskens (SIL) c c This Layout has been designed to resemble that used by WinMyanmar Systems c in their non-Unicode fonts. However, it is much simplified because of the c advantages of Unicode technology. Some keys have changed as a result. c c Copyright (C) 2004,2006 Keith Stribley, www.thanlwinsoft.org c Martin Hosken, SIL International c Bugs/Comments: c Distributable under the terms of the GNU Lesser General Public License, c either version 2.1 of the License, or (at your option) any later version. c http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html c c KRS 1.00 28-May-2004 Initial version c KRS 1.01 31-May-2004 Added 25CC to consU c KRS 1.02 01-Jul-2004 Improved behaviour when deleting 1031 c Added option to type 1031 + stack key for Kinzi c Shift+Space = ZNSP and ~ = WJ c KRS 1.03 04-Sep-2004 Now uses U+200D with YRWH medials following U+1004 c MJPH 1.1 21-APR-2006 Convert to proposed new Unicode 5.1 model n3043 c KRS 2.1 22-Jul-2006 Correct handling of u102A when types as composite c KRS 2.1.1 12-Dec-2007 Change references to Unicode 5.1 c Change filler to 200C, since 200B causes problems in OOo NAME "my-Win2.1 Unicode 5.1" VERSION 5.0 c Comment out the line below to compile for SCIM store(&Copyright) "© 2004-2006 SIL & ThanLwinSoft.org (License: LGPL)" store( &Message ) "This keyboard implements the changes to the Myanmar block made in Unicode 5.1.0. "\ ". "\ "This keyboard is freely redistributable under the terms of the GNU Lesser General Public License." BITMAP myWin.bmp HOTKEY "^+W" begin Unicode > use(Main) c qwertyuiop[ is same as Win c asdfghjkl; is same as Win c zxcvbm is same as Win c currently _ is mapped to * but it is multiply in Win c , is U101A in both Win and here. ',' is < here c in Win 'P' is U100F, here at 'E' - Win's E is not needed anymore c W is now U101D - the symbol in Win at this position is not used c and includes U101D anyway c Duplicates/macros that aren't strictly necessary EKL:F$| c The medials are also can be created using stacking: GjsS c Pali characters that might need a location: U1050-1059 c Some of the characters <.}]^ could be changed to make room c Should U101B, U1002 be moved somewhere more accessible e.g. R,U rather than &,*? store(baseK) 'qwertyui' \ "op['zxc" \ 'vbn,./' \ 'QWERTY' \ 'UIOP{A"' \ 'ZXCVBNM?' \ '-=!@#%^&' \ '*()_+' \ '\]}<>`~' store(baseU) U+1006 U+1010 U+1014 U+1019 U+1021 U+1015 U+1000 U+1004 \ U+101E U+1005 U+101F U+1012 U+1016 U+1011 U+1001 \ U+101C U+1018 U+100A U+101A U+002E U+104B \ U+1029 U+101D U+103F U+1023 U+1024 U+104C \ U+1009 U+104D U+1025 U+100F U+1027 U+1017 U+1013 \ U+1007 U+100C U+1003 U+1020 U+1026 U+1008 U+102A U+104A \ U+002D U+003D U+100D U+100E U+100B U+0025 U+002F U+101B \ U+1002 U+0028 U+0029 U+005F U+002B \ U+104F U+2018 U+2019 U+002C U+104E U+25CC U+2060 store(numK) '1234567890' store(numU) U+1041 U+1042 U+1043 U+1044 U+1045 U+1046 U+1047 U+1048 U+1049 \ U+1040 store(aftereK) 'mgh;' store(aftereU) U+102C U+102B U+1037 U+1038 c sub units of aftereK store (aaK) 'mg' store (aaU) U+102C U+102B store (lDotK) 'h' store (lDotU) U+1037 store (visargaK) ';' store (visargaU) U+1038 store(udiaK) 'dDJKL' store(udiaU) U+102D U+102E U+1032 U+102F U+1030 store(ldiaK) 'kl' store(ldiaU) U+102F U+1030 store(aftereDK) 'f' store(aftereDU) U+103A store(currencyK) '$' c 25cc is added here to allow it to be used to show stand alone diacritics store(consU) U+1000 U+1001 U+1002 U+1003 U+1005 U+1006 U+1007 \ U+1008 U+1009 U+100A U+100B U+100C U+100D U+100E U+100F \ U+1010 U+1011 U+1012 U+1013 U+1014 U+1015 U+1016 U+1017 \ U+1018 U+1019 U+101A U+101B U+101C U+101D U+101E U+101F \ U+1020 U+1021 U+25CC store(sdiaK) 'sjSG' store(sdiaU) U+103B U+103C U+103E U+103D store(diaU) outs(sdiaU) outs(udiaU) outs(ldiaU) U+1031 U+1036 c split up diacritics - user shouldn't need to know canonical order c Y/R should be first and can't come together store(yDiaU) U+103B store(rDiaU) U+103C store(wDiaU) U+103D store(hDiaU) U+103E store(m1DiaK) 's' store(m2DiaK) 'sj' c store(m3DiaK) 'sj_' store(m4DiaK) 'sjG' store(m5DiaK) 'sjGS' store(mDia) U+103B U+103C U+103D U+103E c this is a weired stacked combination of 100B,100C store(ttatthaK) '|' c U+200B causes problems in OpenOffice store(filler) U+200C c F is Kinzi - it should be possible to create a Kinzi store(kinziK) 'F' store(kinziU) U+1004 store(vowelEK) 'a' store(vowelEU) U+1031 c create some classes for diacritics that might have been c sensibly typed before the user types the medial store(allDiaU) U+1031 U+102F U+1030 U+102D U+1032 U+1036 U+1037 c only a subset can correctly occur together c (U+1031 U+1037) (U+102D U+102F) c (U+102F U+1036) (U+1032 U+1037) (U+102D U+1036) store(firstDiaU) U+1031 U+102D U+102F U+1032 store(secondDiaU) U+102F U+1036 U+1037 c It is possible for U+102F U+102D U+1037 to occur, c but in this case its fairly obvious to type the medials c before the final U+1037 store(stackK) '`' store(stackU) U+1039 group(Main) using keys c Deal with vowel E before consonant + any(vowelEK) > outs(filler) outs(vowelEU) c stacker key c U+101E U+101E + any(stackK) > U+103F any(consU) + any(stackK) > outs(stackU) index(consU, 1) c rearrange vowel E to behind consonant in stacking situation U+1031 U+101E U+101E + any(stackK) > U+103F U+1031 U+1031 any(consU) + any(stackK) > outs(stackU) index(consU, 2) U+1031 c modify space keys + [SHIFT K_SPACE] > U+200B c Convert sequences for composite vowels into single code point U+101E U+103C U+1031 U+102c + any(aftereDK) > U+102A U+101E + 'j' > U+1029 U+1025 + 'D' > U+1026 c users usually type u-tha when they mean nya child tha U+1025 + 'f' > U+1009 U+103A + any(numK) > index(numU, 1) + any(baseK) > index(baseU, 1) + any(aftereK) > index(aftereU, 1) any(filler) U+1031 + any(baseK) > index(baseU, 3) U+1031 c any(filler) U+1031 + any(baseK) > U+1031 U+25CC index(baseU, 3) c these allow the user to type upper and lower diacritics in c any order, but to still get the storage right c any(udiaU) U+1037 + any(ldiaK) > index(ldiaU, 3) context any(ldiaU) U+1037 + any(udiaK) > index(udiaU, 3) context U+1037 + any(udiaK) > index(udiaU, 2) context U+1037 + any(ldiaK) > index(ldiaU, 2) context + 'H' > U+1036 U+1036 + any(udiaK) > index(udiaU, 2) context any(ldiaU) U+1036 + any(udiaK) > index(udiaU, 3) context U+1036 + any(ldiaK) > index(ldiaU, 2) context c it is unlikely that other combinations will occur with U1037 c and aa so this rules are probably OK U+1037 + any(aaK) > index(aaU, 2) context c allow tone marks to be typed in either order U+1038 + any(lDotK) > index(lDotU, 2) context c any(udiaU) + any(ldiaK) > index(ldiaU, 2) context any(ldiaU) + any(udiaK) > index(udiaU, 2) context + any(ldiaK) > index(ldiaU, 1) + any(udiaK) > index(udiaU, 1) + any(ttatthaK) > U+100B U+1039 U+100C + any(currencyK) > U+1000 U+103B U+1015 U+103A + ':' > U+102B U+103A c now deal with the medials, need to arrange order appropriately c most complicated is when all 3 medials are together but out of order any(rDiaU) any(lDiaU) any(wDiaU) any(hDiaU) any(firstDiaU) any(secondDiaU) + any(m1DiaK) > index(mDia, 7) context any(rDiaU) any(lDiaU) any(wDiaU) any(hDiaU) any(firstDiaU) + any(m1DiaK) > index(mDia, 6) context any(rDiaU) any(lDiaU) any(wDiaU) any(hDiaU) + any(m1DiaK) > index(mDia, 5) context any(lDiaU) any(wDiaU) any(hDiaU) any(firstDiaU) any(secondDiaU) + any(m2DiaK) > index(mDia, 6) context any(lDiaU) any(wDiaU) any(hDiaU) any(firstDiaU) + any(m2DiaK) > index(mDia, 5) context any(lDiaU) any(wDiaU) any(hDiaU) + any(m2DiaK) > index(mDia, 4) context any(wDiaU) any(hDiaU) any(firstDiaU) any(secondDiaU) + any(m2DiaK) > index(mDia, 5) context any(wDiaU) any(hDiaU) any(firstDiaU) + any(m2DiaK) > index(mDia, 4) context any(wDiaU) any(hDiaU) + any(m2DiaK) > index(mDia, 3) context any(hDiaU) any(firstDiaU) any(secondDiaU) + any(m4DiaK) > index(mDia, 4) context any(hDiaU) any(firstDiaU) + any(m4DiaK) > index(mDia, 3) context any(hDiaU) + any(m4DiaK) > index(mDia, 2) context any(firstDiaU) any(secondDiaU) + any(m5DiaK) > index(mDia, 3) context any(firstDiaU) + any(m5DiaK) > index(mDia, 2) context + any(m5DiaK) > index(mDia, 1) context any(firstDiaU) any(secondDiaU) + any(sdiaK) > index(sdiaU, 3) context any(allDiaU) + any(sdiaK) > index(sdiaU, 2) context + any(sdiaK) > index(sdiaU, 1) + any(aftereDK) > index(aftereDU, 1) any(consU) + any(kinziK) > index(kinziU, 2) U+103A U+1039 context any(numU) + any(kinziK) > index(kinziU, 2) U+103A U+1039 context any(consU) U+1039 any(consU) + any(kinziK) > index(kinziU, 4) U+103A U+1039 context any(consU) U+1039 any(consU) any(diaU) + any(kinziK) > index(kinziU, 5) U+103A U+1039 context any(consU) U+1039 any(consU) any(diaU) any(diaU) + any(kinziK) > index(kinziU, 6) U+103A U+1039 context any(consU) any(diaU) + any(kinziK) > index(kinziU, 3) U+103A U+1039 context any(consU) any(diaU) any(diaU) + any(kinziK) > index(kinziU, 4) U+103A U+1039 context any(consU) any(diaU) any(diaU) any(diaU) + any(kinziK) > index(kinziU, 5) U+103A U+1039 context any(consU) any(diaU) any(diaU) any(diaU) any(diaU) + any(kinziK) > index(kinziU, 6) U+103A U+1039 context any(filler) U+1031 + [K_BKSP] > nul any(baseU) U+1031 + [K_BKSP] > outs(filler) U+1031 U+1004 U+103A U+1039 any(consU) U+1031 + [K_BKSP] > U+1004 U+103A U+1039 outs(filler) U+1031 U+1039 any(consU) U+1031 + [K_BKSP] > U+1031 U+1039 any(consU) + [K_BKSP] > nul kmfl-keyboards-mywin-2.1.1/myWin.bmp0000644000175000017500000000147010730513175016367 0ustar keithkeithBM86(..&&&&&&&&&&&&&&&&&&&&&&&&&!&&&&&&&&&=9m=&&&!"99m=&&&&&9m9m&&zCju\&&&=u\&u\==u\&Ku\&&&9m&&&zCj9m&&&&&&&=9m&9m!2Q9m&9mK&&&&Yn@s!!YnYn&&&&&'T9m2Q!!!!'T9m'T&&&&&&&&!!!!!!'T=&&&&&&&&!!!!!9m"'T&&&&&&&&&!!!!"'T&&&&&&&&&&&!!&=̐K&'T&&&&&&&&&!!!="Yn&&&&&&&&&&!&&&&&&&&&&&&&&&&&&&&&&&kmfl-keyboards-mywin-2.1.1/myWin.png0000644000175000017500000000075010730513175016375 0ustar keithkeithPNG  IHDRabKGD pHYs.."tIME 7uIDATxcTcDHomo= 3eFհLO^ Uv w1,ڕϠt oS w,.3o6wbϊB[, 8ca^II' O~>bPCeF1xKl`Őar/pX{bkkl4Ðk_5Y !L0 ipV9`b```p-ee(˙rqnl 0'\"7'.O O2\kҿ1Ha0ƐÚom e>P6SqIENDB`kmfl-keyboards-mywin-2.1.1/welcome.htm0000644000175000017500000003774010730513175016742 0ustar keithkeith Keyboard layout for myWin2.1

myWin2.1

Myanmar Keyboard Layout for Unicode 5.1

This keyboard provides a smart keyboard layout for typing Myanmar for use with fonts conforming to the Unicode standard version 5.1.0 (currently in Draft). For example, you can use the font Padauk.ttf.

Keyboard Layout

Unshifted

` 1 2 3 4 5 6 7 8 9 0 -- == Bksp
Tab q w e r t y ကu i o p [ ] \
Caps ​◌ေa ◌ျs ◌ိd ◌်f ◌ါg h ◌ြj ◌ုk ◌ူl ◌း; ' Enter
Shift ဖ​z x c v b n m , ◌.. / Shift
Ctrl Win Alt AltGr Menu Ctrl

Shifted

` 1 2 3 ကျပ်4 %5 /6 7 8 (9 )0 _- += Bksp
Tab q w e r t y ဉ  u i o p [ ] ဋ္ဌ\
Caps ​ဗa ◌ှs d င်္◌f g h j k l ါ်; ' Enter
Shift ဇ​z x c v b n m ,, . / Shift
Ctrl Win Alt AltGr Menu Ctrl

Explanation

Old Myanmar fonts used to require several different variations of some characters and other symbols. Most of these are no longer necessary because the font itself chooses the correct shape variant. This means there is no longer any need to use control or alt sequences.

Stacked characters

Stacked characters are typed by typing the normal forms followed by the ` key - which is normally in the top left of your keyboard. eg:

Visible Myanmar Typed sequence
က u
ကက uu
က္က uu`

Shapping of ◌ျ ◌ြ ◌ွ ◌ှ

You always type the same key for each medial, it does not matter whether the consonant is wide or small or what goes above and below. Composite medials are typed as a sequence of the individual medials.

Note: the medial is always typed after the consonant, this is a change from before, when Yayit was typed before the consonant.

Visible Myanmar Typed sequence
က u
ကြ uj
ကြိ ujd
ကြို ujdk
​ေ a
နေ ae
နွေ aeG
နွေး aeG;
​ေ a
​ခေ ac
​ချေ acs
​ချွေ acsG
​ချွေး acsG;

Kinzi

Kinzi is just typed in the normal way.

Visible Myanmar Typed sequence
o
သခ oc
သင်္ခ ocF
သင်္ချ ocFs
သင်္ချိ ocFsd
သင်္ချို ocFsdk
သင်္ချိုင ocFsdki
သင်္ချိုင် ocFsdkif
သင်္ချိုင်း ocFsdkif;