Ralla - a Sinhala Transliterated Input System for IBUS

Crashing large ocean wave - Image by Elias Sch. from Pixabay

For a long time I have been trying to type in Sinhala. On Windows 95 I used the transliterated typing system crated by Chrismal Panditharatne, and when I moved to Linux, I had to find a new system. Mainly because I was not used to touch-typing, I was also not used to typing on the Wijesekara Keyboard Layout. So, with all of that, I had to find another way.

It all started with discussions I used to have with Anuradha Ratnaweera about transliteration and typing systems, and his Sayura transliterated Input Method. It was an excellent input model, made for fast and simple Sinhala typing for people not used to the Wijesekara method. It is based on an intuitive method for people who are used to typing and thinking in "singlish", using an English/QWERTY keyboard to type Sinhala.

I found there were some changes that I felt would make it simpler to use. at least for me, and I implemented it on a variant system. I also wanted to create it into to be compatible with the Intelligent Input Bus (IBus) system.

In order to do that I used the si-trans input method created by Harshula Jayasuriya, and modified it to fit my system.

Anuradha and Harshula have been long-time contributors to the GNU/Linux scene, and I owe them my thanks.

I decided to name it "රැල්ල" (ralla) the Sinhala word for wave, because I based it on the "සයුර" (sayura - the Sinhala word for "ocean") method.

Input Layout

Input Sinhala Description
a 0x0d85 - ayanna (a)
aa 0x0d86 - aayanna (aa)
A 0x0d87 - aeyanna (ae)
AA 0x0d88 - aeeyanna (aee)
i 0x0d89 - iyanna (i)
ii 0x0d8a - iiyanna (ii)
u 0x0d8b - uyanna (u)
uu 0x0d8c - uuyanna (uu)
U 0x0d8d - iruyanna (iru)
UU 0x0d8e - iruuyanna (iruu)
lU 0x0d8f - iluyanna (ilu)
lUU 0x0d90 - iluuyanna (iluu)
e 0x0d91 - eyanna (e)
ee 0x0d92 - eeyanna (ee)
I 0x0d93 - aiyanna (ai)
o 0x0d94 - oyanna (o)
oo 0x0d95 - ooyanna (oo)
O 0x0d96 - auyanna (au)
au 0x0d96 - auyanna (au) - alternate
a 0x0dcf - aela-pilla (aa)
A 0x0dd0 - ketti aeda-pilla (ae)
AA 0x0dd1 - diga aeda-pilla (aae)
i 0x0dd2 - ketti is-pilla (i)
ii 0x0dd3 - diga is-pilla (ii)
u 0x0dd4 - ketti paa-pilla (u)
uu 0x0dd6 - diga paa-pilla (uu)
U 0x0dd8 - gaetta-pilla (r)
UU 0x0df2 - diga gaetta-pilla (rr)
w 0x0dca - al-lakuna (virama)
e 0x0dd9 - kombuva (e)
ee 0x0dda - diga kombuva (ee)
I 0x0ddb - kombu deka (ai)
o 0x0ddc - kombuva haa aela-pilla (o)
oo 0x0ddd - kombuva haa diga aela-pilla (oo)
O 0x0dde - kombuva haa gayanukitta (au)
au 0x0dde - kombuva haa gayanukitta (au) - alternate
k 0x0d9a - alpapraana kayanna (ka)
K 0x0d9b - mahaapraana kayanna (kha)
g 0x0d9c - alpapraana gayanna (ga)
G 0x0d9d - mahaapraana gayanna (gha)
Ng 0x0d9f - sanyaka gayanna (nnga)ර
c 0x0da0 - alpapraana cayanna (ca)
C 0x0da1 - mahaapraana cayanna (cha)
j 0x0da2 - alpapraana jayanna (ja)
Nj 0x0da6 - sanyaka jayanna (nyja)
J 0x0da3 - mahaapraana jayanna (jha)
T 0x0da7 - alpapraana ttayanna (tta)
TH 0x0da8 - mahaapraana ttayanna (ttha)
d 0x0daf - alpapraana dayanna (da)
Nd 0x0db3 - sanyaka dayanna (nda)
dH 0x0db0 - mahaapraana dayanna (dha)
D 0x0da9 - alpapraana ddayanna (dda)
DH 0x0daa - mahaapraana ddayanna (ddha)
ND 0x0dac - sanyaka ddayanna (nndda)
t 0x0dad - alpapraana tayanna (ta)
tH 0x0dae - mahaapraana tayanna (tha)
n 0x0db1 - dantaja nayanna (na)
N 0x0dab - muurdhaja nayanna (nna)
p 0x0db4 - alpapraana payanna (pa)
P 0x0db5 - mahaapraana payanna (pha)
b 0x0db6 - alpapraana bayanna (ba)
B 0x0db7 - mahaapraana bayanna (bha)
m 0x0db8 - mayanna (ma)
M 0x0db9 - amba bayanna (mba)
y 0x0dba - yayanna (ya)
r 0x0dbb - rayanna (ra)
l 0x0dbd - dantaja layanna (la)
L 0x0dc5 - muurdhaja layanna (lla)
v 0x0dc0 - vayanna (va)
s 0x0dc3 - dantaja sayanna (sa)
S 0x0dc1 - taaluja sayanna (sha)
Sh 0x0dc2 - muurdhaja sayanna (ssa)
h 0x0dc4 - hayanna (ha)
f 0x0dc6 - fayanna (fa)
x ක්‍ෂ‍ - xayanne (xa)
q 0x0da4 - taaluja naasikyaya (nya)
Q 0x0da5 - taaluja sanyooga naasikyaya (jnya)
z 0x0d9e - kantaja naasikyaya (nga)
Additions and Punctuation
X 0x0d82 - anusvaraya (anusvara)
H 0x0d83 - visargaya (visarga)
R ්‍ර 0x0dca,0x200d,0x0dbb - rakaaranshaya
Y ්‍ය 0x0dca,0x200d,0x0dba - yansaya
ALT-. 0x0df4 - kunddaliya (punctuation)
Z ්‍ 0x0dca,0x200d - join - conjunct letters cons 0DCA ZWJ cons
W ‍් 0x200d,0x0dca - touch - cons ZWJ 0DCA cons


  1. Download the file
  2. Install the ibus, ibus-m17n, and m17n-tables for your distribution
  3. Copy the file to /usr/share/m17n
  4. Change the ownership to root:root and usage to r--r--r--(111)
  5. Start or restart the IBUS daemon, and enable the Ralla writing system

Add new comment