OpenBangla Keyboard Installation
Install and configure OpenBangla Keyboard for Bangla input on an Ubuntu-based distro, including the Avro-compatible phonetic layout.
What This Guide Achieves
By the end of this guide you will have:
| Feature | Status |
|---|---|
| OpenBangla Keyboard installed with Avro Phonetic layout | Done |
| 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 documents | Done |
| IBus keyboard surviving suspend/resume without manual restart | Done |
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
.debfiles 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:
- Download Avro Keyboard
- Install it (double-click, Next, Next, Finish)
- Press Ctrl+Alt or click the tray icon to switch between English and Bangla
- 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
- Open Settings (click the gear icon in the system tray, or search “Settings” in the app menu)
- Navigate to Keyboard in the left sidebar
- Scroll down to Input Sources
- Click the + button to add a new input source
- Select Bangla from the language list
- Select “Bengali (OpenBangla Keyboard)” — do not select plain “Bengali” or “Bengali (Probhat)”, select the one that specifically says OpenBangla Keyboard
- 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
amiand you get আমি - Type
bangladeshand you get বাংলাদেশ - Type
tumi kemon achoand you get তুমি কেমন আছো
- Type
- 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:
- Select all text with Ctrl+A
- Go to Format > Character (or right-click and select Character)
- 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
- 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)
- 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:
- Go to Tools > Options (or LibreOffice > Preferences on some systems)
- Navigate to LibreOffice Writer > Basic Fonts (Western)
- Set the default font to Times New Roman (or your preferred English font)
- Navigate to LibreOffice Writer > Basic Fonts (CTL)
- Set the default font to SolaimanLipi (or your preferred Bangla font)
- 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:
-druns it as a daemon (background process)-rreplaces any existing IBus daemon instance-xtells 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
$1variable isprewhen suspending andpostwhen resuming — we only act onpost - The
sleep 2gives 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=:0andDBUS_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 Tried | Why 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 .deb | dpkg -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 document | SolaimanLipi 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 Word | LibreOffice 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:
- Open any text editor or browser
- Press Super+Space to switch to Bangla
- Type
bangladesh— you should see বাংলাদেশ - Press Super+Space again to switch back to English
- Type
hello— you should see hello in normal English
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| OpenBangla does not appear in Settings > Keyboard > Input Sources | You did not log out and log back in after installing the .deb package | Save 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 panel | IBus daemon is not running | Run 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 suspend | IBus daemon crashed during the suspend/resume cycle | Run 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 SolaimanLipi | SolaimanLipi is a Bengali-only font with no Latin character glyphs | Set 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 hang | The 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 filename | Use 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 Windows | Different default font being used | Set 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.
Related Guides
- First Boot Checklist — Post-install setup steps
- Package Management Basics — Clean
.deb, script, package, and uninstall practices - Software Recommendations — Windows app to Linux alternative mapping
- Common Issues — FAQ including suspend/resume fixes
Discussion