Bornika is a lightweight, secure, pure-Rust background Input Method Editor (IME) for Linux. Designed natively for modern desktop systems (like Fedora running Wayland and GNOME), it allows typing Bangla phonetically using a standard QWERTY layout.
By connecting directly to the IBus (Intelligent Input Bus) framework over the system's private D-Bus socket, Bornika runs entirely in user space without requiring root privileges or installing heavy C development libraries.
-
Complete Avro Phonetic Support: Fully supports all standard phonetic combinations (e.g.,
kotha$\rightarrow$ কথা,kOtha$\rightarrow$ কোথা,rri$\rightarrow$ ঋ,S$\rightarrow$ শ,Sh$\rightarrow$ ষ,borrd$\rightarrow$ বর্ড). - Wayland & X11 Native: Native compatibility across all window servers by leveraging the IBus system service.
-
Pure Rust Architecture: Built using
tokioandzbusto connect directly over D-Bus. No dynamic link bindings (libibus-devel,glib2-devel) are required to compile. -
On-the-Fly Toggle: Press
Super + Spacewithin any active text input to toggle between English and Bangla phonetic modes. - Real-time Composition Styling: Displays uncommitted text inline with a composition underline, guaranteeing native visual feedback in modern editors (like VS Code, Chrome, Firefox, and GTK text fields).
-
Shortcut & Control Pass-through: Standard layout operations (like
Ctrl + C,Ctrl + V,Ctrl + A,Space,Enter) bypass phonetic interception automatically.
Bornika follows the standard Avro phonetic transliteration guidelines:
| Key | Independent | Dependent | Example |
|---|---|---|---|
o |
অ |
kotha কথা
|
|
O |
ও | ো |
kOtha কোথা
|
a |
আ | া |
amar আমার
|
i |
ই | ি |
iti ইতি
|
I / ee
|
ঈ | ী |
kee কী
|
u / oo
|
উ | ু |
kuku কুকু / koo কু
|
U |
ঊ | ূ |
dUro দূর
|
e |
এ | ে |
keno কেন
|
oi / OI
|
ঐ | ৈ |
kOI কৈ
|
ou / OU
|
ঔ | ৌ |
kOU কৌ
|
rri |
ঋ | ৃ |
krriho গৃহ
|
| Key | Bengali | Key | Bengali | Key | Bengali |
|---|---|---|---|---|---|
k / ko |
ক | kh |
খ | g |
গ |
gh |
ঘ | c |
চ | ch |
ছ |
j |
জ | jh |
ঝ | T |
ট |
Th |
ঠ | D |
ড | Dh |
ঢ |
N |
ণ | t |
ত | th |
থ |
d |
দ | dh |
ধ | n |
ন |
p |
প | ph / f |
ফ | b |
ব |
bh / v |
ভ | m |
ম | z |
য |
r |
র | l |
ল | S / sh |
শ |
Sh |
ষ | s |
স | h |
হ |
R |
ড় | Rh |
ঢ় | y / Y |
য় / য-ফলা |
Ng / NG |
ঙ / ঞ | ng |
ং | : |
ঃ |
^ |
ঁ | x / kx |
ক্স / ক্ষ | J |
জ় |
t`` |
ৎ | $ |
৳ |
- Fedora (or any Linux distribution running IBus).
To download and install the latest pre-built release of Bornika directly on your system, run:
curl -fsSL https://raw.githubusercontent.com/itsfuad/Bornika/main/install.sh | shThis script automatically:
- Downloads the latest pre-built
bornika-daemonbinary from GitHub Releases. - Deploys the background binary to
~/.local/bin/bornika-daemon. - Registers the Bornika engine template at
/usr/share/ibus/component/bornika.xml(requires one-timesudoauthentication to copy to the system directory). - Restarts the active IBus daemon session to load the engine.
If you prefer to compile and install Bornika from source, you will need the Rust toolchain (Cargo & Rustc) installed. Clone the repository and run:
./build.shOnce installed, register Bornika as an active Input Source in your desktop environment:
- Open your system's Settings (e.g. GNOME Settings).
- Navigate to Keyboard
$\rightarrow$ Input Sources. - Click the
+(Add) button. - Select Bengali
$\rightarrow$ Bengali (Bornika) and click Add. - Switch to the Bornika input source from your top-bar menu or press
Super + Space.
Bornika is open-source software. Feel free to use, modify, and distribute it under the terms of the project's license.