https://github.com/runlevel5/ibus-bambusa
A simple Vietnamese Input Method for GNOME / Bộ gõ tiếng Việt cho GNOME
https://github.com/runlevel5/ibus-bambusa
gnome ibus ime rust vietnamese
Last synced: about 1 month ago
JSON representation
A simple Vietnamese Input Method for GNOME / Bộ gõ tiếng Việt cho GNOME
- Host: GitHub
- URL: https://github.com/runlevel5/ibus-bambusa
- Owner: runlevel5
- License: gpl-3.0
- Created: 2026-06-05T16:03:15.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-14T14:10:13.000Z (about 1 month ago)
- Last Synced: 2026-06-14T16:38:02.536Z (about 1 month ago)
- Topics: gnome, ibus, ime, rust, vietnamese
- Language: Rust
- Homepage:
- Size: 375 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ibus-bambusa
A simple, opinionated Vietnamese input method for **GNOME 50 or newer**.
`ibus-bambusa` is an [IBus](https://github.com/ibus/ibus) engine that turns
keystrokes into Vietnamese text — Telex, VNI, VIQR and the usual variants.
## Opinions
This project deliberately keeps a narrow scope. It does only what GNOME on
Wayland supports well, and nothing else:
- **Wayland only**, targeting what GNOME 50 (or newer) actually supports. No X11, no
`XTest` key faking, no X11 clipboard or window introspection. If GNOME decides
to re-introduce support X11, so will this app.
- **Native GNOME input switching**, adhering strictly to GNOME. Both global and
per window switching method are provided.
- **Full charset output**: Unicode plus the legacy Vietnamese encodings
(TCVN3, VNI-Win, VIQR, VISCII, VPS, BK HCM, Vietware, NCR, …).
- **Native libadwaita GUI.** Configuration lives in GSettings/dconf exposed
via native gnome-control-center.
- **GNOME lifecycle**, providing support to active GNOME releases only. No plan
to support releases that has reached EOL.
If you need the features that the app does not offer, please consider alternatives:
* [goxkey](https://github.com/huytd/goxkey)
* [ibus-typing-booster](https://github.com/mike-fabian/ibus-typing-booster)
* [ibus-m17n](https://github.com/ibus/ibus-m17n)
* [ibus-bamboo](https://github.com/BambooEngine/ibus-bamboo)
* [ibus-unikey](https://github.com/vn-input/ibus-unikey)
* [ibus-bogo](https://github.com/BoGoEngine/ibus-bogo)
## Credits
The Vietnamese composition logic is a direct port of the excellent
[BambooEngine](https://github.com/BambooEngine) projects:
- [`bamboo-core`](https://github.com/BambooEngine/bamboo-core) — the
composition algorithm (tone/mark placement, spelling rules, input methods).
- [`ibus-bamboo`](https://github.com/BambooEngine/ibus-bamboo) — the IBus
engine behaviour this project follows.
The port aims to match their behaviour closely; the upstream test corpus is
re-run against this implementation.
## Screenshots

## Layout
This is a Cargo workspace:
| Crate | What it is |
|-------|------------|
| `bambusa-core` | The composition engine: keystrokes → Vietnamese text. Pure, no I/O. |
| `ibus-zbus` | Engine-side IBus binding on zbus. |
| `ibus-bambusa` | The IBus engine binary. |
## Installation
For Fedora 44 or newer:
```sh
sudo dnf copr enable tle/vietnam
sudo dnf update
sudo dnf install ibus-bambusa
```
## Building from source
Requires Rust 1.96.0 (pinned via `rust-toolchain.toml`) and IBus. Installing
additionally needs Meson and Ninja.
### Develop
```sh
cargo build
cargo test
```
### Install
The engine is built and installed with Meson, which wraps Cargo:
```sh
meson setup builddir --buildtype=release --prefix=/usr
meson compile -C builddir
sudo meson install -C builddir
ibus restart
```
## License
GPLv3