VMK – Vietnamese Micro Key for Fcitx5 .Bringing the UniKey typing experience to Linux/Wayland #1490
Replies: 6 comments 13 replies
-
|
Thank you for your contribution! let me know if you need anything from our side. (e.g. wiki update, CI support, i18n, flatpak packaging or what ever) |
Beta Was this translation helpful? Give feedback.
-
|
@wengxt Sorry for the ping. The project https://github.com/thanhpy2009/VMK is a clone of your fcitx5-bamboo repo, with all 'bamboo' references renamed to 'vmk'. I’m sure this is a case of 'vibe coding'—mixing up ibus-bamboo with AI—and somehow the AI did a good enough job to make it usable. The idea is good, but the AI-generated mess in VMK (the bamboo-patched version) is significant. If you could gracefully take a look at the VMK repo to bring some patches back to fcitx5-bamboo, there are only three files worth checking: vmk.cpp, vmk.h, and vmkconfig.h. Those contain the only meaningful changes from your original code |
Beta Was this translation helpful? Give feedback.
-
|
To demonstrate the uniqueness of this project, I have a test video below. video I done for realse patch . The test is VMK1. (not using This is a huge milestone. My project is getting very close to the true UniKey experience on Windows. This has been my dream since youth—and the dream of the entire Vietnamese Linux community. I am not here for the drama; I am here to make the dream of a perfect Vietnamese typing experience on Linux a reality. |
Beta Was this translation helpful? Give feedback.
-
|
For short, I cut videos |
Beta Was this translation helpful? Give feedback.
-
|
I forget you can ask anything for sure about my project I am ready for answer any question. |
Beta Was this translation helpful? Give feedback.
-
|
@wengxt Sorry for the ping. I'm not going to disturb you with craps; you might not be interested reading anything below this line. Just ``drama'' according to thanhpy2009, the author of vmk. ======= uninteresting craps ================= An user of his project has recently discovered a serious security hole (which is the result of vibe coding), and fixed it in their fork. (it was having sockets in home directory and unsafe permissions). On facebook and github, thanhpy2009 is not friendly to these bugs report. He implied that this user who forked his repo are stealing his work, but when they try to talk with him, he denied his claims. We are on the progress of creating a CVE so that github could remove thanhpy2009's repo. Unhealthy behavior and being rude to contributions is enough; spreading security holes is simply unacceptable. If anyone wants to support the author:
|
Beta Was this translation helpful? Give feedback.





Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
VMK – Vietnamese Micro Key for Fcitx5
Bringing the UniKey typing experience to Linux/Wayland
Hello Fcitx5 community,
My name is Võ Ngô Hoàng Thành, and I’m one of the developers of VMK (Vietnamese Micro Key) — a Vietnamese input method built specifically on top of Fcitx5.
VMK is an experimental but practical attempt to solve a long-standing usability gap for Vietnamese users on Linux, especially on Wayland and Electron-based applications.
Why “UniKey-like” behavior is critical for Vietnamese users
For Vietnamese users, UniKey is not just another input method.
On Windows, nearly 100% of Vietnamese users type using UniKey or a UniKey-compatible behavior.
This typing model has existed for more than 20 years and has become deep muscle memory for an entire user base.
The defining characteristics of this model are:
No visible preedit buffer
Characters are modified in place
Backspace behaves like a real physical key
Text is committed directly to the application
When Vietnamese users move to Linux, the biggest friction is often not missing features, but that typing no longer “feels right”.
Even technically correct behaviors such as:
underlined preedit,
delayed commits,
or different backspace semantics
are immediately noticeable and are often perceived as bugs, simply because they differ from what users have relied on for decades.
VMK’s philosophy
VMK treats UniKey-like behavior as a first-class requirement, not an optional mode.
Instead of asking users to adapt to a new typing model, VMK adapts Linux input behavior to match established Vietnamese typing habits.
Linux should feel natural to Vietnamese users — not the other way around.
To achieve this, VMK focuses on:
Backspace-based reconstruction (sending physical-like Backspace events)
Carefully tuned delay and timing logic
Zero-preedit typing whenever possible
A minimal, practical configuration model
Typing mechanisms in VMK
VMK intentionally keeps the number of modes small and purpose-driven:
VMK1 – UniKey (Windows-like)
Uses virtual Backspace + delayed commit to recreate UniKey’s non-preedit behavior.
This is the primary mode and offers the best real-world compatibility.
VMK2 – Modern Surrounding Text
Uses Fcitx5 surrounding-text APIs combined with VMK’s optimization logic for high speed and smoothness.
VMK-Pre – Standard Preedit
Uses native Fcitx5 preedit as a fully compatible fallback for all applications.
Built on great open-source work
VMK would not exist without the outstanding open-source ecosystem behind it:
Fcitx5 Framework — by Weng Xuetian (wengxt)
Bamboo Vietnamese Engine — by Lâm Quang Lương
VMK itself mainly contributes:
Virtual Backspace logic
Delay calculation and timing control
Practical adjustments for Wayland-first environments
Why Fcitx5 matters here
Fcitx5 provides a modern, clean, and extensible architecture that makes it possible to experiment with non-traditional input behaviors like VMK.
VMK does not attempt to replace or redefine Fcitx5’s design principles.
Instead, it demonstrates that Fcitx5 is flexible enough to support region-specific, culturally important typing behaviors that have become de facto standards through decades of real-world use.
Special thanks
I would like to express my deep gratitude to Weng Xuetian (wengxt).
Fcitx5 is, in my opinion, the most modern and well-designed input method framework on Linux today.
Its Wayland support, clean APIs, and long-term vision made projects like VMK possible in the first place.
Thank you for making fcitx5-bamboo. One of the best preedit vietnamese typing on linux. VMK is based on that
Thank you for your continued work on Fcitx5 and for supporting a diverse global user base.
License & project status
VMK is released under GPL-3.0.
At the moment, the source code is distributed via release archives rather than direct git cloning.
We welcome feedback, discussion, and ideas — especially around delay logic, timing, and compatibility improvements for UniKey-like behavior.
The VMK project is currently community-driven and experimental.
Source code, installers, and documentation can be found at:
https://github.com/thanhpy2009/VMK
Beta Was this translation helpful? Give feedback.
All reactions