VMK và Viet+ – Gõ tiếng việt ko bị gạch dưới trên linux

Viet+: Bộ Gõ Tiếng Việt Trên Linux Viết Bằng Rust — Không Buffer, Không Gạch Dưới

1. Repository: github.com/vndangkhoa/vietc

Vấn Đề Với IME Truyền Thống

Hầu hết các bộ gõ tiếng Việt trên Linux (ibus-bamboo, fcitx5, v.v.) đều hoạt động theo cơ chế pre-edit buffer — bạn gõ vào một vùng đệm tạm, chữ chỉ thực sự xuất hiện khi bạn "commit" . Điều này gây ra hàng loạt vấn đề: chữ bị nhân đôi, gạch chân loạn, copy/paste hỏng, và đặc biệt khó chịu khi dùng trong terminal hay các ứng dụng không hỗ trợ IM protocol tốt .


Tính Năng Nổi Bật

Dự án được viết bằng Rust, hiện ở phiên bản 0.1.7 với 108 test đang pass . Một số điểm đáng chú ý:

  • Hỗ trợ cả VNI và Telex, chuyển đổi qua lại bằng Ctrl+LeftShift

  • Macro tự động: gõ kokhông, dcđược, hoàn toàn tùy chỉnh

  • Bộ nhớ theo app: mỗi ứng dụng có thể được cấu hình riêng — tự động bật tiếng Anh trong VSCode, tự động bật tiếng Việt trong Telegram

  • Tự phát hiện ô mật khẩu qua 4 lớp: AT-SPI2 → sudo process → window title → window class, tự động tắt IME khi bạn đang nhập password

  • Hot reload config: thay đổi file config.toml không cần restart daemon

  • Tray icon: hiển thị rõ trạng thái Red VN / Blue TLX / Gray EN

  • Ưu tiên CPU: ghim vào P-cores (0-3) với nice(-10) để đảm bảo độ trễ thấp nhất


Cài Đặt Siêu Nhanh

Viet+ hỗ trợ hầu hết các distro phổ biến với một lệnh duy nhất:

git clone https://github.com/vndangkhoa/vietc.git /tmp/vietc \ && cd /tmp/vietc && sudo ./install.sh

Script tự phát hiện package manager (apt, dnf, pacman), cài dependencies, compile từ source, cài lên /usr/bin/, và setup udev rules cho uinput . Sau khi cài, đăng xuất rồi đăng nhập lại và khởi động vietc-tray từ application menu .

==================================================

2. VMK (Vietnamese Micro Key) ra đời.


Vấn đề thực tế

Các bộ gõ hiện tại trên Linux — dù tốt — vẫn dùng cơ chế preedit (gạch chân ký tự đang nhập). Cơ chế này gây ra nhiều bất tiện, đặc biệt trên Electron apps như VS Code, Discord hay Chrome. Người dùng quen với UniKey trên Windows sẽ cảm thấy khác biệt ngay lập tức.

VMK làm gì khác?

VMK tái hiện đúng cơ chế của UniKey: gửi Backspace N lần → chờ (delay logic) → commit chuỗi ký tự. Không preedit, không gạch chân — gõ xong là ra chữ ngay, gần với cảm giác quen thuộc trên Windows.

Dự án xây dựng trên nền Fcitx5 và Bamboo Engine, đồng thời cung cấp 4 chế độ gõ tùy theo ứng dụng và mức tương thích.

Chế độ Phù hợp Tương thích
VMK1 Dùng chung hàng ngày > 90%
VMK1HC IDE như VS Code, IntelliJ Tối ưu nhất
VMK2 Gõ nhanh, hướng hiện đại ~ 50%
VMK-Pre Dự phòng 100%

Đặc biệt, VMK1HC lưu trạng thái vào /tmp để giảm tình trạng engine bị mất khi XIM gặp sự cố, giúp IDE hoạt động ổn định hơn.

Điểm nổi bật của bản 0.9.31

  • E-core Optimization – Fix race condition trên CPU hybrid thế hệ mới.
  • Chrome fix – Giảm lỗi double character trên thanh địa chỉ.
  • IDE fix – Cải thiện trải nghiệm gõ trên JetBrains và VS Code.

Cài đặt đơn giản

https://github.com/thanhpy2009/VMK?tab=readme-ov-file

VMK hướng đến cách cài đặt gọn: tải đúng script cho distro rồi chạy trực tiếp bằng quyền quản trị.

chmod +x ./install_vmk_debian_0.9.31.sh && sudo ./install_vmk_debian_0.9.31.sh

Script sẽ tự lo phần lớn công việc như cài Fcitx5, copy plugin, cấu hình service. Sau khi cài, khởi động lại phiên làm việc hoặc chạy lại fcitx5 rồi dùng Ctrl+Space để chuyển bộ gõ.


Comment