Sinhala Phonetic Dynamic Keyboard Layout


`


~
`
1


!
1
2


@
2
3


#
3
4


$
4
5


%
5
6


^
6
7


&
7
8


*
8
9


(
9
0


)
0
-


_
-
=


+
=










q


ඎ (‌ෲ)
ඍ (‌ෘ)
w


ඈ (‌ෑ)
ඇ (‌ැ)
e

ඓ (‌ෛ)
ඒ (‌ේ)
එ (‌ෙ)
r

rep
rak

t




y


yan

u


ඌ (‌ූ)
උ (‌ු)
i


ඊ (‌ී)
ඉ (‌ි)
o

ඖ (‌ෞ)
ඕ (‌ෝ)
ඔ (‌ො)
p




[


{
[
]


}
]
\


|
\





a


ආ (‌ා)
අ (al)
s




d




f




g




h


‌ඃ

j




k




l
ඐ (‌ෳ)
ඏ (‌ෟ)


;


:
;
'


"
'










z




x




c




v




b




n

‌ං


m




,

JOIN
<
,
.


>
.
/

TOUCH
?
/





Space

ZWNJ
No-break-space
Space

Key:
1st Row - QWERTY layout
2nd Row - with SHIFT and ALT-GR
3nd Row - with ALT-GR
4rd Row - with SHIFT
5th Row - no modifiers

al - al-lakuna
rep - repaya
rak - rakaaranshaya
yan - yansaya
m-lu - muurdhaja lu
JOIN - join previous letter with the next
TOUCH - touch previous letter with the next
ZWJ - zero width joiner
ZWNJ - zero width non-joiner
ALT-GR - right-ALT

Objective

Create a keyboard layout where each keystroke corresponds to one or more Unicode codepoints. Awareness of surrounding letters are required, thus complicating the keyboard driver.

Place Sinhala letters only on keys corresponding to the letters of the Latin alphabet. Place Sinhala punctuation only on keys corresponding to Latin punctuation.

The same key combination will be utilised to create independent vowels and dependent vowels. The presence of a preceding 'consonant' will determine whether an independent or dependent vowel is created. This requires the keyboard driver to be more complex.

Try to avoid using shift plus ALT-GR.

Have the sanyaka letters in the ALT position of the respective "normal" letter.

Implementations

Revision History

Revision Log

started: 2004/03/08, last updated: 2007/06/30