OpenBangla Keyboard Installation

Install and configure OpenBangla Keyboard for Bangla input on an Ubuntu-based distro, including the Avro-compatible phonetic layout.

Beginner Verified Working Updated 16 min read Tested on Zorin OS 18.1 Pro (Ubuntu 24.04 Noble base) Hardware Lenovo ThinkPad L14 Gen 2

What This Guide Achieves

By the end of this guide you will have:

FeatureStatus
OpenBangla Keyboard installed with Avro Phonetic layoutDone
Bangla Unicode fonts (SolaimanLipi, Kalpurush, Siyam Rupali, etc.)Done
Microsoft core fonts (Arial, Times New Roman, Courier New, etc.)Done
LibreOffice correctly rendering mixed Bengali + English documentsDone
IBus keyboard surviving suspend/resume without manual restartDone

Prerequisites

  • Any Ubuntu 24.04-based distribution
  • An internet connection for downloading packages and fonts
  • Basic comfort with opening a terminal (Ctrl+Alt+T on most Linux desktops)
  • Before installing .deb files or running font scripts, review the clean installation and removal best practices

The Problem (Windows User Perspective)

If you are coming from Windows, here is what you are used to:

  1. Download Avro Keyboard
  2. Install it (double-click, Next, Next, Finish)
  3. Press Ctrl+Alt or click the tray icon to switch between English and Bangla
  4. Start typing. Done.

On Linux, the concept is the same but the pieces are different:

  • Avro Keyboard does not exist on Linux. The Linux equivalent is OpenBangla Keyboard — it is open source, actively maintained, and supports Avro Phonetic, Probhat, and other layouts.
  • Instead of its own input framework, OpenBangla plugs into IBus, the input method framework that Ubuntu-based already ships with. Think of IBus as the Linux version of Windows’ Text Services Framework — it is the system that lets you switch between keyboard layouts.
  • The keyboard shortcut to switch languages is Super+Space (the Super key is the Windows key on your keyboard), not Ctrl+Alt.
  • There is one manual step that Windows users would never expect: you must log out and log back in after installation before the keyboard appears in Settings.

If you try to skip the logout step, you will waste time wondering why OpenBangla does not show up. This guide walks through every step so you do not hit that wall.


Part 1 — Install OpenBangla Keyboard

Why Not the Official Install Script?

OpenBangla’s GitHub page suggests a one-liner bash install script. On the tested Zorin setup, that script failed because it did not recognize Zorin as a supported distribution. It checked for Ubuntu, Debian, Fedora, and Arch, so installing the .deb package directly was the more reliable path.

Step 1: Download and Install the .deb Package

Open a terminal (Ctrl+Alt+T) and run:

# Download the .deb from the official GitHub releases page
wget https://github.com/OpenBangla/OpenBangla-Keyboard/releases/download/2.0.0/OpenBangla-Keyboard_2.0.0-debian13.deb

# Install using apt (this handles dependencies automatically)
sudo apt install ./OpenBangla-Keyboard_2.0.0-debian13.deb

Why apt install instead of dpkg -i? The dpkg -i command installs a .deb file but does not install missing dependencies. If OpenBangla needs a library you do not already have, dpkg will leave you with a broken package and a cryptic error. Using apt install ./filename.deb does the same thing as dpkg -i but also pulls in any missing dependencies automatically. Always prefer apt install for local .deb files.

Step 2: Log Out and Log Back In

This is the step that trips up every Windows user. OpenBangla will not appear in Settings until you log out and log back in. This is because IBus needs to detect the newly installed input method, and it only scans for new methods during login.

  • Save any open work
  • Click the power icon in the top-right corner and select Log Out (not Restart, not Shut Down — just Log Out)
  • Log back in with your password

Step 3: Add Bangla as an Input Source

  1. Open Settings (click the gear icon in the system tray, or search “Settings” in the app menu)
  2. Navigate to Keyboard in the left sidebar
  3. Scroll down to Input Sources
  4. Click the + button to add a new input source
  5. Select Bangla from the language list
  6. Select “Bengali (OpenBangla Keyboard)” — do not select plain “Bengali” or “Bengali (Probhat)”, select the one that specifically says OpenBangla Keyboard
  7. Click Add

You should now see both “English” and “Bengali (OpenBangla Keyboard)” listed under Input Sources.

Step 4: Test It

  • Press Super+Space to switch to Bangla mode. You will see a small indicator change in the top panel.
  • Open any text editor, web browser, or document and start typing.
  • The default layout is Avro Phonetic, which means you type in English letters and they transliterate to Bangla. For example:
    • Type ami and you get আমি
    • Type bangladesh and you get বাংলাদেশ
    • Type tumi kemon acho and you get তুমি কেমন আছো
  • Press Super+Space again to switch back to English.

Tip for Windows Users: On Windows you probably used Ctrl+Alt to toggle Avro. On Linux, it is Super+Space. You can remap this in Settings > Keyboard > Keyboard Shortcuts if you prefer the old shortcut, but Super+Space is the Linux standard and works system-wide.


Part 2 — Install Bangla Fonts

Out of the box, Linux has limited Bangla font coverage. Documents from Bangladesh that use SolaimanLipi, Kalpurush, or Bijoy fonts will not render correctly. This section installs everything you need.

Step 1: Install Basic Bangla Fonts from the Repository

These are the fonts available directly from Ubuntu’s package repositories:

sudo apt install fonts-beng fonts-beng-extra fonts-lohit-beng-bengali fonts-lohit-beng-assamese fonts-indic

This gives you basic Bangla rendering — enough for web browsing and simple documents, but not enough for professional or academic work that uses specific named fonts.

Step 2: Install Microsoft Core Fonts

Many documents — especially those created in MS Word on Windows — use Arial, Times New Roman, Courier New, and other Microsoft fonts. Without these, LibreOffice will substitute them with open-source alternatives, which changes spacing, pagination, and overall layout.

sudo apt install ttf-mscorefonts-installer

During installation, a license agreement screen will appear in the terminal. This is the Microsoft EULA. Use Tab to highlight the OK button, then press Enter to accept.

Step 3: Install Comprehensive Bangla Fonts (SolaimanLipi, Kalpurush, and More)

This is the big one. The Linux Bangla Font Installer is a community script that downloads and installs a comprehensive collection of Bangla Unicode fonts — SolaimanLipi, Kalpurush, Sonar Bangla, Siyam Rupali, Adarsha Lipi, and many more.

# Download the installer script
wget --no-check-certificate https://raw.githubusercontent.com/fahadahammed/linux-bangla-fonts/master/dist/lbfi -O lbfi

# Make it executable
chmod +x lbfi

# Run it
./lbfi

Important: This script downloads many font files from the internet. Depending on your connection speed, it takes 5 to 15 minutes to complete. Let it run. Do not press Ctrl+C or close the terminal window while it is working. You will see progress messages as each font is downloaded and installed.

Step 4: Refresh the Font Cache

After installing fonts, tell the system to rescan and register them:

fc-cache -fv

This command rebuilds the font cache. The -f flag forces a rescan even if the cache looks up to date, and -v shows verbose output so you can see what it is doing.

Step 5: Verify the Fonts Are Installed

fc-list | grep -i "solaiman\|kalpurush\|siyam\|sonar\|rupali"

You should see multiple lines of output listing the installed Bangla fonts with their file paths. If you see nothing, the font installer did not complete successfully — run it again.

A Note on Bijoy Fonts

Bijoy fonts (SutonnyMJ, SutonnyOMJ, etc.) are proprietary. They are not included in the Linux Bangla Font Installer and cannot be legally distributed for free. If you legally own a Bijoy license and have the font files from your Windows installation, you can copy them to Linux:

# Create a local fonts directory (if it doesn't already exist)
mkdir -p ~/.local/share/fonts

# Copy your Bijoy font files
cp /path/to/bijoy-fonts/*.ttf ~/.local/share/fonts/

# Rebuild the font cache
fc-cache -fv

You might find your Bijoy fonts on a Windows partition or a backup. The .ttf files are typically located in C:\Windows\Fonts\ on Windows.


Part 3 — Fix LibreOffice Mixed-Language Font Rendering

The Problem

You open a document in LibreOffice Writer that contains both English and Bangla text. You select all the text (Ctrl+A) and set the font to SolaimanLipi because you want the Bangla text to look right. The result: all English text turns into empty boxes or rectangles.

This happens because SolaimanLipi is a Bengali-only font — it contains glyphs for Bengali Unicode characters but has no Latin alphabet characters at all. When LibreOffice tries to render the letter “A” using SolaimanLipi, it finds no glyph and shows a box.

Why This Doesn’t Happen in MS Word

Microsoft Word on Windows has aggressive font fallback. When you set the font to SolaimanLipi and Word encounters a Latin character, it silently substitutes a Western font (usually Times New Roman or Calibri) for that character. You never notice because Word does it automatically and invisibly.

LibreOffice does not do this automatic fallback. It respects your font choice literally. If you say SolaimanLipi, it uses SolaimanLipi for everything, even characters the font does not have.

The Fix (Per Document)

The solution is to set different fonts for different script categories. LibreOffice supports this through its Character formatting dialog:

  1. Select all text with Ctrl+A
  2. Go to Format > Character (or right-click and select Character)
  3. In the Fonts tab, you will see three separate font fields:
    • Western text font — used for Latin, Cyrillic, and other Western scripts
    • Asian text font — used for CJK (Chinese, Japanese, Korean) scripts
    • CTL font (Complex Text Layout) — used for Bengali, Hindi, Arabic, Thai, and other complex scripts
  4. Set the fonts as follows:
    • Western text font: Times New Roman (or Arial, or any font that has Latin characters)
    • CTL font: SolaimanLipi (or Kalpurush, or whatever Bangla font you want)
    • Asian text font: leave as default (this controls Chinese/Japanese/Korean text — irrelevant for Bengali documents)
  5. Click OK

Now your document will render English text in Times New Roman and Bangla text in SolaimanLipi, exactly like MS Word would.

Making This the Permanent Default (All New Documents)

If you do not want to repeat this for every new document:

  1. Go to Tools > Options (or LibreOffice > Preferences on some systems)
  2. Navigate to LibreOffice Writer > Basic Fonts (Western)
  3. Set the default font to Times New Roman (or your preferred English font)
  4. Navigate to LibreOffice Writer > Basic Fonts (CTL)
  5. Set the default font to SolaimanLipi (or your preferred Bangla font)
  6. Click OK

Every new Writer document will now use these defaults.


Part 4 — Fix IBus Not Working After Suspend/Resume

The Problem

You close your laptop lid (suspend) or lock your screen. When you open it again and log back in, the Bangla keyboard does not work. Pressing Super+Space does nothing, or it switches the indicator but no Bangla text appears. The only way to fix it is to log out and log back in — which closes all your open applications.

Why This Happens

The IBus daemon — the background process that manages input methods — sometimes crashes or freezes during the suspend/resume cycle. When the system wakes up, IBus is in a broken state. It is technically still running (so the system does not try to restart it) but it cannot process keyboard input properly.

This is a known bug that affects multiple Linux distributions, not just Zorin OS.

Quick Manual Fix (When It Happens)

If you have already hit this problem and need an immediate fix without logging out:

ibus-daemon -drx

This command restarts the IBus daemon:

  • -d runs it as a daemon (background process)
  • -r replaces any existing IBus daemon instance
  • -x tells it to reload the XIM (X Input Method) settings

Your Bangla keyboard should start working again within a second or two.

Permanent Fix (Automatic Recovery After Every Suspend)

To make this happen automatically every time you wake from suspend, create a systemd sleep hook:

Step 1: Create the hook script

sudo nano /lib/systemd/system-sleep/restart-ibus

Paste the following content into the file:

#!/bin/bash
if [ "$1" = "post" ]; then
    sleep 2
    sudo -u $(logname) DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $(logname))/bus ibus-daemon -drx
fi

Save the file (Ctrl+O, Enter) and exit nano (Ctrl+X).

How this script works:

  • systemd runs all scripts in /lib/systemd/system-sleep/ whenever the system suspends or resumes
  • The $1 variable is pre when suspending and post when resuming — we only act on post
  • The sleep 2 gives the system 2 seconds to fully wake up before restarting IBus
  • The sudo -u $(logname) runs the command as your user (not as root)
  • The DISPLAY=:0 and DBUS_SESSION_BUS_ADDRESS=... environment variables are needed because systemd scripts run without a desktop session context — these tell IBus where to find your display and session bus

Step 2: Make it executable

sudo chmod +x /lib/systemd/system-sleep/restart-ibus

That is it. The next time you suspend and resume, IBus will automatically restart and your Bangla keyboard will work without any manual intervention.


What Didn’t Work (and Why)

These are approaches that seemed reasonable but failed during testing. Documenting them here so you do not waste time on the same dead ends.

Approach TriedWhy It Failed
Official bash install script (bash -c "$(wget ...)")The script checks /etc/os-release for known distributions. Zorin OS identifies itself as “Zorin OS”, not “Ubuntu”, so the script exits with an unsupported distro error even though Zorin is fully Ubuntu-compatible.
Using dpkg -i instead of apt install for the .debdpkg -i does not resolve dependencies. If any library is missing, it leaves OpenBangla in a half-installed broken state. You then have to run sudo apt --fix-broken install to clean up, and even that does not always work cleanly.
Applying SolaimanLipi font to an entire mixed-language documentSolaimanLipi has zero Latin glyphs. Every English character renders as an empty box. This is not a bug — the font simply does not contain those characters.
Expecting LibreOffice to auto-fallback like MS WordLibreOffice does not silently substitute fonts for missing glyphs the way MS Word does. If you set the font to SolaimanLipi, LibreOffice uses SolaimanLipi for everything, including characters it cannot render. The fix is to explicitly set the CTL font separately from the Western font.

Verification

Run these commands to confirm everything is set up correctly:

# Verify OpenBangla Keyboard is installed
dpkg -l | grep openbangla

# Verify Bangla fonts are installed
fc-list | grep -i "solaiman\|kalpurush\|siyam\|sonar\|rupali"

# Verify Microsoft core fonts are installed
fc-list | grep -i "times new roman\|arial\|courier new"

# Verify IBus is running
pgrep -a ibus-daemon

Then test typing:

  1. Open any text editor or browser
  2. Press Super+Space to switch to Bangla
  3. Type bangladesh — you should see বাংলাদেশ
  4. Press Super+Space again to switch back to English
  5. Type hello — you should see hello in normal English

Troubleshooting

SymptomCauseFix
OpenBangla does not appear in Settings > Keyboard > Input SourcesYou did not log out and log back in after installing the .deb packageSave your work, log out, log back in. OpenBangla registers with IBus during the login process.
Super+Space does nothing / no language indicator in the top panelIBus daemon is not runningRun ibus-daemon -drx in a terminal. If that does not help, check that IBus is set as your input method: run im-config and select IBus.
Keyboard stops working after closing laptop lid / waking from suspendIBus daemon crashed during the suspend/resume cycleRun ibus-daemon -drx for an immediate fix. Install the systemd sleep hook from Part 4 for a permanent fix.
English text shows empty boxes in LibreOffice after setting font to SolaimanLipiSolaimanLipi is a Bengali-only font with no Latin character glyphsSet the Western font (Times New Roman) separately from the CTL font (SolaimanLipi) in Format > Character. See Part 3 for full instructions.
Font installer script (./lbfi) appears to hangThe script is downloading many font files. On slow connections this takes 5-15 minutes.Wait for it to finish. Do not press Ctrl+C. If it genuinely stalls for more than 20 minutes, check your internet connection and try again.
apt install of the .deb says “unable to locate package”You forgot the ./ prefix before the filenameUse sudo apt install ./OpenBangla-Keyboard_2.0.0-debian13.deb — the ./ tells apt it is a local file, not a package name to search for in the repositories.
Bangla text looks different from what you see on WindowsDifferent default font being usedSet SolaimanLipi or Kalpurush as your Bangla font explicitly. These are the most commonly used Bangla fonts in Bangladesh and will match what most Windows documents use.

Complete Removal

If you need to remove everything this guide installed:

# Remove OpenBangla Keyboard
sudo apt remove openbangla-keyboard

# Remove Bangla fonts installed via apt
sudo apt remove fonts-beng fonts-beng-extra fonts-lohit-beng-bengali fonts-lohit-beng-assamese fonts-indic

# Remove Microsoft core fonts
sudo apt remove ttf-mscorefonts-installer

# Remove Bangla fonts installed by the lbfi script
rm -rf ~/.local/share/fonts/bangla

# Remove any manually copied Bijoy fonts (if applicable)
# rm -rf ~/.local/share/fonts/*.ttf  # Be careful -- this removes ALL manually installed fonts

# Rebuild the font cache
fc-cache -fv

# Remove the IBus suspend/resume fix
sudo rm /lib/systemd/system-sleep/restart-ibus

# Remove the downloaded installer files (clean up your home directory)
rm -f ~/OpenBangla-Keyboard_2.0.0-debian13.deb
rm -f ~/lbfi

After removal, log out and log back in to ensure IBus deregisters the OpenBangla input method.


Discussion