kmfl-keyboards-mywin-2.3.3/0000755000175000017500000000000011457245231014570 5ustar keithkeithkmfl-keyboards-mywin-2.3.3/myWin.bmp0000644000175000017500000000147011457245231016375 0ustar keithkeithBM86(â.â.ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&µ!ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ã=¬9mã=ÿ&ÿ&ÿ&µ!¡"9¬9mã=ÿ&ÿ&ÿ&ÿ&ÿ&¬9m£ü£ü£ü¬9mÿ&ÿ&zCj£ü£ü£üu\œÿ&ÿ&ÿ&ã=£üu\œÿ&u\œ£üã=ã=£üu\œÿ&K„u\œÿ&ÿ&ÿ&¬9m£üÿ&ÿ&ÿ&£üzCj¬9m£üÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ã=£ü¬9mÿ&¬9m£üµ!Ž2Q£ü¬9mÿ&¬9mK„ÿ&ÿ&ÿ&ÿ&Yn´£ü£ü£ü@s³µ!µ!Yn´£ü£ü£üYn´ÿ&ÿ&ÿ&ÿ&ÿ&È'T¬9mŽ2Qµ!µ!µ!µ!È'T¬9mÈ'Tÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&µ!µ!µ!µ!µ!µ!È'Tã=ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&µ!µ!µ!µ!µ!¬9m"‘ãÈ'Tÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&µ!µ!µ!µ!"‘ãÈ'Tÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&µ!µ!ÿ&=ÌK„ÿ&È'Tÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&µ!µ!µ!ã="‘ã£üYn´ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&µ!ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&ÿ&kmfl-keyboards-mywin-2.3.3/myWin.jpg0000644000175000017500000000072611457245231016402 0ustar keithkeithÿØÿàJFIF00ÿÛC  !"$"$ÿÛCÿÀ"ÿÄÿÄ$!"1QqÿÄÿÄ"1!"AQÑÿÚ ?Ï>› ‹Bæ` W€º]ãn_Å’qÌÇNaÏa`šä%à@Ðbcú »ú¡§ö¾YÅUƒ7î0’pŸ‰-½`v¹2a:fìõþqçSòI‰¸ñ¸b§qÝ•.Ý öΘö‹+ƒwò«¡l›$j€—PÕ³:œjùvH–J°Ì‘ÕKÌCïÃÙKÝŒ$C!!Á$mCï¯=ëÿÙkmfl-keyboards-mywin-2.3.3/myWin.png0000644000175000017500000000066011457245231016403 0ustar keithkeith‰PNG  IHDR‘h6sRGB®Îé pHYs.â.âpðhtIMEÙ¢Í%BIDAT(ÏcTcýÏ@ `Â%ñ›o  ªóm|²·GùÚ<ö¾Ì(ˆ ÛY?yõWÙ-Ü•·hW¾žÒIœ6Àó›o›¸ÐÓ w,.Ý3Ç®Íé]+ºú³¢àÆ3000¢…¦_E„_¾—~ù^ÝzJ'%…ž<ùùèÂCudÕ’BOÐ5ôeFy˜®…°·_°Ê[PÊÀÀ09z \pÇéà¢éËÔXÿÛŠ=þ³˜-×rëÿ\Ë5³) o 4êClñž Æú_õ? ƒòI†g‚ᤧÁQæoFh‚ˆPºpל¡,¼ N^¾œ‰,ç6€: î‚8Cõ–s\pNL)D¬â‚O ”O^¸kß|Û$øß˜ˆs# 2âI­¿ù¶±~òBd$5y c“©vy¾ IEND®B`‚kmfl-keyboards-mywin-2.3.3/myWin.kmn0000644000175000017500000004466511457245231016421 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,2008, 2009 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 c 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 c composite c KRS 2.1.1 12-Dec-2007 Change references to Unicode 5.1 c Change filler to 200C, since 200B causes c problems in OOo c KRS 2.2 23-Apr-2008 Add extra rules to correct 0478 when used as c consonants c Additional rules to correct common typos c Change hot key to Ctrl+Alt+M for Windows c KRS 2.2.1 21-May-2008 Add full syllable context for medial c substitutions c KRS 2.2.2 Fix medial regressions c KRS 2.2.3 19-Jul-2008 More corrections for when numbers are used c and out of sequence upper/lower dot c KRS 2.2.4 30-Jul-2008 Fixed 078 cons cons bug c KRS 2.2.5 15-Nov-2008 Kinzi with 104e c KRS 2.2.6 28-Aug-2009 Fix typing U+100B U+1039 U+100C U+1031 c KRS 2.2.7 26-Sep-2009 Fix backspace with medial + 1031 c KRS 2.3.0 21-Oct-2009 Change to use normalized order. c Improve Kinzi handling. c KRS 2.3.1 07-Dec-2009 Allow Asat with u103C c KRS 2.3.2 09-Feb-2010 Fix U+102F U+1032 c KRS 2.3.3 19-Oct-2010 Allow 102d, 102b, 1032, kinzi after non-zero c number or 2 digits NAME "my-Win 2.3.3 Unicode 5.2" VERSION 5.0 store(&Copyright) "© 2004-2009 SIL & ThanLwinSoft.org (License: LGPL)" store( &Message ) "Myanmar keyboard for typing Burmese with Unicode 5.2.0. "\ ". "\ "This keyboard is freely redistributable under the terms of the GNU Lesser General Public License." LANGUAGE 55,4 BITMAP myWin.bmp HOTKEY "^+M" 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(num1to9U) U+1041 U+1042 U+1043 U+1044 U+1045 U+1046 U+1047 U+1048 U+1049 c Some numbers can be used incorrectly as letters store(numOrLetK) '078' store(numOrLetU) U+1040 U+1047 U+1048 store(numAsLetU) U+101D U+101B U+1002 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) 'dDKL' store(udiaU) U+102D U+102E U+102F U+1030 store(anusvaraK) 'JH' store(anusvaraU) U+1032 U+1036 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(consK) 'uc*CpqZ' \ 'NUn#X!@P' \ "wx'" \ '"eyzAbr,&vWo[' \ 'Vt' 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(yrDiaU) U+103B U+103C store(yrwDiaU) U+103B U+103C U+103D store(yDiaK) 's' store(rDiaK) 'j' store(hDiaK) 'S' store(wDiaK) 'G' store(yrDiaK) outs(yDiaK) outs(rDiaK) 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, but Padauk now removes 200C/D, c so it doesn't have correct effect store(filler) U+200B c store(filler) U+200A c store(filler) U+2060 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 store(secondDiaU) U+102F U+1032 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 U+1025 any(consU) + any(stackK) > U+1009 outs(stackU) index(consU, 2) U+1025 any(numOrLetU) + any(stackK) > U+1009 outs(stackU) index(numOrLetU, 2) any(consU) + any(stackK) > outs(stackU) index(consU, 1) any(numOrLetU) + any(stackK) > outs(stackU) index(numAsLetU, 1) any(numOrLetU) any(consU) + any(stackK) > index(numAsLetU, 1) outs(stackU) index(consU, 2) any(numOrLetU) any(numOrLetU) + any(stackK) > index(numAsLetU, 1) outs(stackU) index(numAsLetU, 2) c rearrange vowel E to behind consonant in stacking situation c 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 U+1005 U+1031 + any(yDiaK) > U+1008 U+1031 c Asat and 103c Not for Myanmar any(consU) U+103A + any(rDiaK) > index(consU, 1) U+103A index(rDiaU, 3) any(consU) U+103C + any(aftereDK) > index(consU, 1) index(aftereDU, 3) U+103C any(consU) U+1031 + any(aftereDK) > index(consU, 1) index(aftereDU, 3) U+1031 any(consU) U+103C U+1031 + any(aftereDK) > index(consU, 1) index(aftereDU, 4) U+103C U+1031 c modify space keys c + [SHIFT K_SPACE] > U+200B c duplicate quotes goto double quotes U+2018 + ']' > U+201C U+2019 + '}' > U+201D 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 U+1025 + 'm' > U+1009 U+102C U+1025 U+1037 + 'f' > U+1009 U+1037 U+103A U+1009 U+103A + any(lDotK) > U+1009 index(lDotU, 3) U+103A any(numU) any(numU) + 'd' > index(numU, 1) index(numU, 2) U+102d any(numU) any(numU) + 'g' > index(numU, 1) index(numU, 2) U+102b any(numU) any(numU) + 'J' > index(numU, 1) index(numU, 2) U+1032 any(num1to9U) + 'g' > index(num1to9U, 1) U+102B any(num1to9U) + 'J' > index(num1to9U, 1) U+1032 any(numOrLetU) + 'm' > index(numAsLetU, 1) U+102C U+1040 + 'g' > U+101d U+102B any(numOrLetU) + 'f' > index(numAsLetU, 1) U+103A any(numOrLetU) + any(anusvaraK) > index(numAsLetU, 1) index(anusvaraU, 2) U+1044 U+1004 U+103A + ';' > U+104E U+1004 U+103A U+1038 any(numOrLetU) U+1004 + 'f' > index(numAsLetU, 1) U+1004 U+103A any(numOrLetU) any(consU) + 'f' > index(numAsLetU, 1) index(consU, 2) U+103A any(numOrLetU) any(numOrLetU) + 'f' > index(numAsLetU, 1) index(numAsLetU, 2) U+103A + any(numK) > index(numU, 1) + any(baseK) > index(baseU, 1) + any(aftereK) > index(aftereU, 1) any(filler) U+1031 + any(numOrLetK) > index(numAsLetU, 3) U+1031 any(filler) U+1031 + any(baseK) > index(baseU, 3) U+1031 any(filler) U+1031 + any(ttatthaK) > U+100B U+1039 U+100C 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 any(udiaU) U+1037 + any(ldiaK) > index(udiaU, 1) index(ldiaU, 3) U+1037 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 + any(anusvaraK) > index(anusvaraU, 1) any(anusvaraU) + any(udiaK) > index(udiaU, 2) context any(ldiaU) any(anusvaraU) + any(udiaK) > index(udiaU, 3) context any(anusvaraU) + 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 U+103A U+1038 + any(lDotK) > index(lDotU, 3) context U+1037 + any(anusvaraK) > index(anusvaraU, 2) U+1037 c any(udiaU) + any(ldiaK) > index(ldiaU, 2) context any(ldiaU) + any(udiaK) > index(udiaU, 2) context any(num1to9U) + 'd' > index(num1to9U, 1) U+102D any(numOrLetU) + any(ldiaK) > index(numAsLetU, 1) index(ldiaU, 2) any(numOrLetU) + any(udiaK) > index(numAsLetU, 1) index(udiaU, 2) + 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 c expand full context of syllable any(consU) any(wDiaU) any(hDiaU) any(firstDiaU) any(secondDiaU) + any(m2DiaK) >\ index(consU, 1) index(mDia, 6) index(wDiaU, 2) index(hDiaU, 3) index(firstDiaU, 4) index(secondDiaU, 5) any(consU) any(wDiaU) any(hDiaU) any(firstDiaU) + any(m2DiaK) > \ index(consU, 1) index(mDia, 5) index(wDiaU, 2) index(hDiaU, 3) index(firstDiaU, 4) any(consU) any(wDiaU) any(hDiaU) + any(m2DiaK) > \ index(consU, 1) index(mDia, 4) index(wDiaU, 2) index(hDiaU, 3) any(consU) any(wDiaU) any(firstDiaU) any(secondDiaU) + any(m2DiaK) >\ index(consU, 1) index(mDia, 5) index(wDiaU, 2) index(firstDiaU, 3) index(secondDiaU, 4) any(consU) any(wDiaU) any(firstDiaU) + any(m2DiaK) > \ index(consU, 1) index(mDia, 4) index(wDiaU, 2) index(firstDiaU, 3) any(consU) any(yrwDiaU) any(firstDiaU) any(secondDiaU) + any(hDiaK) > \ index(consU, 1) index(yrwDiaU, 2) index(hDiaU, 5) index(firstDiaU, 3) index(secondDiaU, 4) any(consU) any(yrwDiaU) any(firstDiaU) + any(hDiaK) > \ index(consU, 1) index(yrwDiaU, 2) index(hDiaU, 4) index(firstDiaU, 3) any(consU) any(wDiaU) + any(yrDiaK) > index(consU, 1) index(yrDiaU,3) index(wDiaU,2) any(consU) any(hDiaU) + any(yrDiaK) > index(consU, 1) index(yrDiaU,3) index(hDiaU,2) any(consU) any(hDiaU) + any(wDiaK) > index(consU, 1) index(wDiaU,3) index(hDiaU,2) any(consU) any(wDiaU) any(hDiaU) + any(yrDiaK) > index(consU, 1) index(yrDiaU,4) index(wDiaU,2) index(hDiaU,3) any(consU) any(yrDiaU) any(hDiaU) + any(wDiaK) > index(consU, 1) index(yrDiaU,2) index(wDiaU,4) index(hDiaU,3) any(consU) any(yrDiaU) any(firstDiaU) any(secondDiaU) + any(wDiaK) > \ index(consU, 1) index(yrDiaU, 2) index(wDiaU, 5) index(firstDiaU, 3) index(secondDiaU, 4) any(consU) any(yrDiaU) any(firstDiaU) + any(wDiaK) > \ index(consU, 1) index(yrDiaU, 2) index(wDiaU, 4) index(firstDiaU, 3) any(consU) any(hDiaU) any(firstDiaU) any(secondDiaU) + any(m4DiaK) > \ index(consU, 1) index(mDia, 5) index(hDiaU, 2) index(firstDiaU, 3) index(secondDiaU, 4) any(consU) any(hDiaU) any(firstDiaU) + any(m4DiaK) > \ index(consU, 1) index(mDia, 4) index(hDiaU, 2) index(firstDiaU, 3) any(consU) any(hDiaU) + any(m4DiaK) > \ index(consU, 1) index(mDia, 3) any(consU) any(firstDiaU) any(secondDiaU) + any(m5DiaK) > index(consU, 1) index(mDia, 4) index(firstDiaU, 2) index(secondDiaU, 3) any(consU) any(firstDiaU) + any(m5DiaK) > index(consU, 1) index(mDia, 3) index(firstDiaU, 2) any(firstDiaU) any(secondDiaU) + any(m5DiaK) > index(mDia, 3) context any(firstDiaU) + any(m5DiaK) > index(mDia, 2) context + any(m5DiaK) > index(mDia, 1) context c contractions any(consU) any(mDia) + any(aftereDK) > index(consU, 1) index(aftereDU,3) index(mDia,2) any(firstDiaU) any(secondDiaU) + any(sdiaK) > index(sdiaU, 3) context any(allDiaU) + any(sdiaK) > index(sdiaU, 2) context any(numOrLetU) + any(sdiaK) > index(numAsLetU, 1) index(sdiaU, 2) any(numOrLetU) any(allDiaU) + any(sdiaK) > index(numAsLetU, 1) index(sdiaU, 3) index(allDiaU, 2) U+1005 + 's' > U+1008 + any(sdiaK) > index(sdiaU, 1) + any(aftereDK) > index(aftereDU, 1) c Normalization of 1037 and 103a any(aftereDU) + any(lDotK) > index(lDotU, 2) index(aftereDU, 1) U+1038 + any(aftereDK) > index(aftereDU, 2) context + any(kinziK) > index(kinziU, 1) U+103A U+1039 c The above line doesn't seem to work reliably U+0020 + any(kinziK) > U+0020 index(kinziU, 2) U+103A U+1039 any(consU) + any(kinziK) > index(kinziU, 2) U+103A U+1039 index(consU, 1) U+104E + any(kinziK) > index(kinziU, 2) U+103A U+1039 U+104E any(consU) any(numOrLetU) + any(kinziK) > index(consU, 1) index(kinziU, 3) U+103A U+1039 index(numAsLetU, 2) U+101E U+102D any(numOrLetU) + any(kinziK) > U+101E U+102D index(kinziU, 4) U+103A U+1039 index(numAsLetU, 3) any(numU) any(numU) + any(kinziK) > index(numU, 1) index(kinziU, 3) U+103A U+1039 index(numU, 2) any(num1to9U) + any(kinziK) > index(kinziU, 2) U+103A U+1039 index(num1to9U, 1) U+1040 + any(kinziK) > index(kinziU, 2) U+103A U+1039 U+101D c allow number abbreviations if it looks like a real number 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(mDia) + any(kinziK) > index(kinziU, 3) U+103A U+1039 index(consU, 1) index(mDia, 2) any(consU) any(diaU) + any(kinziK) > index(kinziU, 3) U+103A U+1039 index(consU, 1) index(diaU, 2) any(consU) any(diaU) any(diaU) + any(kinziK) > index(kinziU, 4) U+103A U+1039 index(consU, 1) index(diaU, 2) index(diaU, 3) any(consU) any(diaU) any(diaU) any(diaU) + any(kinziK) > index(kinziU, 5) U+103A U+1039 index(consU, 1) index(diaU, 2) index(diaU, 3) index(diaU, 4) any(consU) any(diaU) any(diaU) any(diaU) any(diaU) + any(kinziK) > index(kinziU, 6) U+103A U+1039 index(consU, 1) index(diaU, 2) index(diaU, 3) index(diaU, 4) index(diaU, 5) any(filler) U+1031 + [K_BKSP] > nul any(baseU) U+1031 + [K_BKSP] > outs(filler) U+1031 any(mDia) U+1031 + [K_BKSP] > U+1031 U+1004 U+103A U+1039 any(consU) + [K_BKSP] > index(consU, 4) U+1004 U+103A U+1039 any(consU) U+1031 + [K_BKSP] > index(consU, 4) U+1031 U+1039 any(consU) U+1031 + [K_BKSP] > U+1031 U+1039 any(consU) + [K_BKSP] > nul U+1037 U+103A + [K_BKSP] > U+103A kmfl-keyboards-mywin-2.3.3/changelog0000644000175000017500000000350111457245231016441 0ustar keithkeithKRS 2.3.3 19-Oct-2010 Allow 102d, 102b, 1032, kinzi after non-zero number or 2 digits KRS 2.3.2 09-Feb-2010 Fix U+102F U+1032 KRS 2.3.1 07-Dec-2009 Allow Asat with u103C KRS 2.3.0 21-Oct-2009 Change to use normalized order. Improve Kinzi handling. KRS 2.2.7 26-Sep-2009 Fix backspace with medial + 1031 KRS 2.2.6 28-Aug-2009 Fix typing U+100B U+1039 U+100C U+1031 KRS 2.2.5 15-Nov-2008 Kinzi with 104e KRS 2.2.4 30-Jul-2008 Fixed 078 cons cons bug KRS 2.2.3 19-Jul-2008 More corrections for when numbers are used and out of sequence upper/lower dot KRS 2.2.2 Fix medial regressions KRS 2.2.1 21-May-2008 Add full syllable context for medial substitutions KRS 2.2 23-Apr-2008 Add extra rules to correct 0478 when used as consonants Additional rules to correct common typos Change hot key to Ctrl+Alt+M for Windows KRS 2.1.1 12-Dec-2007 Change references to Unicode 5.1 Change filler to 200C, since 200B causes problems in OOo KRS 2.1 22-Jul-2006 Correct handling of u102A when types as composite MJPH 1.1 21-APR-2006 Convert to proposed new Unicode 5.1 model n3043 KRS 1.03 04-Sep-2004 Now uses U+200D with YRWH medials following U+1004 KRS 1.02 01-Jul-2004 Improved behaviour when deleting 1031 Added option to type 1031 + stack key for Kinzi Shift+Space = ZNSP and ~ = WJ KRS 1.01 31-May-2004 Added 25CC to consU KRS 1.00 28-May-2004 Initial version kmfl-keyboards-mywin-2.3.3/myWin.html0000644000175000017500000004465211457245231016574 0ustar keithkeith Keyboard layout for myWin

myWin

Myanmar Keyboard Layout for Unicode 5.2

This keyboard provides a smart keyboard layout for typing Myanmar for use with fonts conforming to the Unicode standard version 5.2.0. For example, you can use the font Padauk.ttf.

This Keyboard requires either Tavultesoft Keyman (Windows), Ekaya (Windows) or SCIM with KMFL support (Linux). You can then click on the keyboard icon on the task bar and select the myWin Keyboard icon. To type again in English, click on the Keyman icon again and select “English” or “No Keyman Keyboard”.

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;
kmfl-keyboards-mywin-2.3.3/myWin_my.html0000644000175000017500000005324611457245231017300 0ustar keithkeith myWin အá€á€½á€€á€º ကီးဘုá€á€ºá€¡á€•ြင်အဆင်

myWin

ယူနီကုá€á€º á….Ⴀအá€á€½á€€á€º မြန်မာကီးဘုá€á€ºá€¡á€•ြင်အဆင်

ယူနီကုá€á€ºá€…နစ် á….Ⴀစံသá€á€ºá€™á€¾á€á€ºá€á€»á€€á€º ကိုလိုက်နာသော ဖောင့်ကိုသုံးပြီး မြန်မာစာရိုက်နှိပ်á€á€¼á€„်းအá€á€½á€€á€º ဤကီးဘုá€á€ºá€žá€Šá€º ကောင်းမွန်သောကီးဘုá€á€º အပြင်အဆင်á€á€…်á€á€¯á€€á€­á€¯ လုပ်ဆောင်ပေးပါသည်ዠဥပမာ Padauk.ttf ဖောင့်ကို သုံးနိုင်သည်á‹

ဤကီးဘုá€á€ºá€žá€Šá€º Tavultesoft Keyman (Windows), Ekaya (Windows) or SCIM with KMFL support (Linux) လိုအပ်သည်ዠá€á€€á€ºá€…်á€á€ºá€˜á€¬á€¸á€•ေါ်ရှိ ကီးဘုá€á€ºá€¡á€­á€¯á€„်ကွန်ကို နှိပ်ပြီး myWin Keyboard iconကို ရွေးá€á€»á€šá€ºá€•ါዠအင်္ဂလိပ်လိုရိုက်နှိပ်ရန် Keyman အိုင်ကွန်ကို ထပ်နှိပ်ပြီး “English” သို့ “No Keyman Keyboard” ကို ရွေးá€á€»á€šá€ºá€•ါá‹

ကီးဘုá€á€ºá€¡á€•ြင်အဆင်

Shift မနှိပ်ထားသော

္` á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

Shift နှိပ်ထားသော

~ á€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

ရှင်းပြá€á€»á€€á€º

မြန်မာဖောင့်အဟောင်းသည် အက္á€á€›á€¬á€á€á€»á€­á€¯á€·á ကွဲပြားသောပုံစံအမျိုးမျိုးနှင့် အá€á€¼á€¬á€¸á€žá€±á€¬ သင်္ကေá€á€á€­á€¯á€· လိုအပ်လေ့ရှိသည်ዠယá€á€¯á€¡á€á€« á€á€±á€¬á€ºá€á€±á€¬á€ºá€™á€»á€¬á€¸á€™á€»á€¬á€¸á€™á€¾á€¬ ထိုကဲ့သို့ မလိုအပ်á€á€±á€¬á€·á€•ါዠအဘယ်ကြောင့်ဆိုသော် ဤဖောင့်သည် အက္á€á€›á€¬á€á€…်လုံးစီအá€á€½á€€á€º သင့်á€á€±á€¬á€ºá€žá€±á€¬ မှန်ကန်သော ပုံစံကို ရွေးá€á€»á€šá€ºá€‘ားသည်ዠဆိုလိုသည်မှာ control (သို့) alt á€á€­á€¯á€·á€”ှင့်á€á€½á€²á€•ြီးရိုက်နှိပ်á€á€¼á€„်းများ မလိုအပ်á€á€±á€¬á€·á€•ါá‹

နှစ်လုံထပ်အက္á€á€›á€¬á€™á€»á€¬á€¸ ပါဌ်ဆင့်

နှစ်လုံးထပ်အက္á€á€›á€¬á€™á€»á€¬á€¸á€€á€­á€¯ ရိုက်နှိပ်သောအá€á€« အက္á€á€›á€¬á€€á€­á€¯ ပုံမှန်ပုံစံအá€á€­á€¯á€„်းရိုက်နှိပ်ပြီး ကီးဘုá€á€ºá ဒုá€á€­á€šá€¡á€á€”်း ဘယ်ဘက်ထိပ်ရှိ (` key) ကိုနှိပ်လျှင် အက္á€á€›á€¬á€”ှစ်လုံးထပ်ကို ရမည်á‹á€¥á€•မာ-

မြင်နိုင်သော မြန်မာစာ ရိုက်နှိပ်ပုံအဆင့်ဆင့်
က u
ကက uu
က္က uu`

ျ ြ ွ ှ áပုံစံ

ျáŠá€¼áŠá€½áŠá€¾ á€á€…်á€á€¯á€…ီအá€á€½á€€á€º ျáŠá€¼áŠá€½áŠá€¾ ကီး á€á€…်á€á€¯á€á€Šá€ºá€¸á€€á€­á€¯á€žá€¬ အမြဲá€á€™á€ºá€¸á€žá€¯á€¶á€¸á€”ိုင်သည်ዠ‘ပ’အá€á€½á€€á€º ြ နှင့် ‘က’အá€á€½á€€á€º ြ ကို ြ ကီးá€á€…်á€á€¯á€á€Šá€ºá€¸á€–ြင့်သာသုံးနိုင်ပါသည်ዠá€á€…်á€á€¯á€…ီအá€á€½á€€á€º ကီးထပ်မံရွေးစရာမလိုအပ်ပါዠ‘ြှု’ ရိုက်ရန်အá€á€½á€€á€º á€á€…်á€á€¯á€á€¼á€„်း အစီစဉ်အá€á€­á€¯á€„်းသာ ရိုက်နှိပ်သွားရုံဖြစ်သည်á‹

မှá€á€ºá€á€»á€€á€º- ျáŠá€¼áŠá€½áŠá€¾ ကို ဗျည်းရိုက်နှိပ်ပြီးမှသာ ရိုက်နှိပ်ရမည်ဖြစ်သည်ዠဤအရာသည် ယá€á€„်နှင့်မá€á€°á€žá€±á€¬á€•ြောင်းလဲမှုဖြစ်သည်ዠယá€á€„်က ‘ြ’ ရိုက်နှိပ်သည့်အá€á€« ဗျည်း မရိုက်နှိပ်မှီ ဦးစွာ ရိုက်နှိပ်ရပါသည်á‹

မြင်နိုင်သော မြန်မာစာ ရိုက်နှိပ်ပုံအဆင့်ဆင့်
က u
ကြ uj
ကြိ ujd
ကြို ujdk
​ေ a
နေ ae
နွေ aeG
နွေး aeG;
​ေ a
​á€á€± ac
​á€á€»á€± acs
​á€á€»á€½á€± acsG
​á€á€»á€½á€±á€¸ acsG;

ကင်းစီး ( င်္)

ကင်းစီးရိုက်နှိပ်ရန်အá€á€½á€€á€º ပုံမှန်နည်းလမ်းအá€á€­á€¯á€„်းသာဖြစ်ပါသည်á‹

မြင်နိုင်သော မြန်မာစာ ရိုက်နှိပ်ပုံအဆင့်ဆင့်
သ o
သဠoc
သင်္ဠocF
သင်္á€á€» ocFs
သင်္á€á€»á€­ ocFsd
သင်္á€á€»á€­á€¯ ocFsdk
သင်္á€á€»á€­á€¯á€„ ocFsdki
သင်္á€á€»á€­á€¯á€„် ocFsdkif
သင်္á€á€»á€­á€¯á€„်း ocFsdkif;