Why IBus-Bamboo is a Must-Have on Fedora
After using Fedora as my primary coding machine for two years, I am extremely satisfied with its package update speed. However, a real “nightmare” occurs when typing Vietnamese in Electron apps like VS Code or Discord. Although Fedora comes with ibus-unikey, this input method often causes character loss when typing fast. For example, typing “tiếng” might turn into “tiêngs” or produce odd white spaces.
IBus-Bamboo is currently the best solution for the Wayland environment. It is not only stable but also provides a smooth typing experience, rivaling EVKey on Windows. If you frequently work with browsers and development tools, this engine is indispensable.
Understanding IBus and Wayland Mechanisms
Fedora Workstation uses GNOME on Wayland by default. Unlike the old X11, Wayland manages input strictly to enhance security. IBus (Intelligent Input Bus) acts as the framework, while IBus-Bamboo is the Vietnamese processing engine running on top of it. Bamboo’s standout feature is its compatibility with both native applications and those running through the XWayland translation layer.
Quick Steps to Install IBus-Bamboo
1. Install from the Official Repositories
Fortunately, since recent Fedora releases (like Fedora 39, 40), IBus-Bamboo has been available in the official repositories. You no longer need to worry about adding COPR as before. Open the Terminal and run:
sudo dnf install ibus-bamboo
Once the installation is complete, restart IBus to allow the system to update the new engine:
ibus restart
2. Activate in GNOME Settings
Installing the package is just the first step. To use it, follow these steps:
- Go to Settings -> Keyboard.
- In the Input Sources section, click the + button.
- Select Vietnamese and find the entry for Vietnamese (Bamboo).
A small tip: You should remove old Vietnamese input methods to avoid unwanted shortcut conflicts.
Optimization Tips for a Better Typing Experience
Installation is one thing, but to type smoothly across all applications, you need a few minor tweaks below.
Choosing the Right Typing Mode
IBus-Bamboo offers several typing modes. You can press Shift + ~ to quickly switch between them. Usually, Mode 4 (Forward Key Event) is the most stable for most modern applications. If you encounter an older app with tone mark issues, try switching to Mode 1.
Fixing Issues on Chrome, VS Code, and Discord
This is the most frustrating bug for developers: typing Vietnamese in the Chrome address bar or VS Code results in duplicated characters. This is usually because the application is running via XWayland instead of native Wayland.
To fix this on Chrome/Edge, navigate to chrome://flags, find Preferred Ozone platform, and change it from Default to Wayland. This reduces input latency and saves about 5-10% of CPU resources when processing the UI.
Next, declare the environment variables by adding the following lines to the /etc/environment file:
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus
Then, simply log out and log back in for the changes to take effect.
Disabling Underlining (Pre-edit)
If you find the underlines while typing annoying, you can disable them. Run the ibus-setup command in the terminal. In the Input Method tab, select Bamboo, click Preferences, and uncheck the option for displaying underlines.
Troubleshooting Common Issues
Despite its stability, IBus can sometimes “hang” after the computer wakes from Sleep. Instead of restarting your PC, create a custom shortcut in Settings with the command ibus restart. Whenever the input method acts up, a simple key combination will make everything smooth again.
Regarding the language switching shortcut, GNOME defaults to Super + Space. If you’re used to Ctrl + Space on Windows, go to Keyboard Shortcuts to change it to your preference.
Conclusion
Setting up IBus-Bamboo on Fedora isn’t difficult if you know how to configure environment variables correctly. I hope these tips help your Fedora setup become a highly efficient workstation, free from font errors or annoying character jumps.

