Gõ tiếng Việt trên Linux lâu nay xoay quanh vài lựa chọn quen thuộc, và mỗi cái đều có chỗ vướng riêng: mất dấu khi gõ nhanh, gạch chân khó chịu ở ô địa chỉ trình duyệt, hoặc bộ gõ chết kéo theo cả phiên làm việc.
Onikey là một bộ gõ tiếng Việt mã nguồn mở giải quyết đúng những chỗ đó. Nó kế thừa cách gõ từ BambooEngine nhưng viết lại lõi bằng Rust, hỗ trợ cả IBus (GNOME, Ubuntu) lẫn Fcitx5 (KDE), và phát hành theo giấy phép GPLv3.

Cài đặt trên Ubuntu và Debian
Cách gọn nhất là thêm kho phần mềm, sau đó các bản cập nhật về cùng với apt upgrade như mọi gói khác:
curl -fsSL https://crust92.github.io/Onikey/onikey-archive-keyring.gpg \
| sudo tee /usr/share/keyrings/onikey-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/onikey-archive-keyring.gpg] https://crust92.github.io/Onikey stable main" \
| sudo tee /etc/apt/sources.list.d/onikey.list
sudo apt update
sudo apt install onikey # cho IBus (GNOME)
sudo apt install fcitx5-onikey # cho Fcitx5 (KDE)Cài xong bấm Super + Space là gõ được ngay. Gói tự đánh thức IBus và tự thêm nguồn nhập, không phải đăng xuất hay vào phần cài đặt hệ thống.
Cài từ mã nguồn
sudo apt install -y golang cargo gcc make pkg-config \
libgtk-3-dev libxtst-dev libx11-dev
git clone https://github.com/Crust92/Onikey.git
cd Onikey && make && sudo make install PREFIX=/usr && ibus restartSau đó vào Settings → Keyboard → Input Sources → + → Vietnamese → Onikey. Gỡ ra bằng sudo make uninstall. Trên Fedora cần truyền thêm LIBEXECDIR=/usr/libexec/onikey.
Chức năng đáng chú ý
Kiểu gõ và bảng mã. Có đủ Telex, Telex 2, Telex W, VNI, VIQR và vài tổ hợp; mặc định là Telex 2. Bảng mã ngoài Unicode còn giữ các bảng cũ như TCVN3, VNI Windows, VISCII cho ai còn phải làm việc với tài liệu cũ.
Hai chế độ hiển thị. Mặc định là pre-edit — từ đang gõ có gạch chân và chốt lại khi gõ dấu cách, tin cậy trong mọi hoàn cảnh. Chế độ bỏ gạch chân cho chữ đi thẳng vào ứng dụng, nhìn tự nhiên hơn; ứng dụng nào không hỗ trợ thì engine tự quay về pre-edit thay vì nuốt phím.
Bỏ gạch chân riêng cho trình duyệt. Đây là chi tiết nhỏ mà dùng hằng ngày mới thấy giá trị: ô địa chỉ gõ không gạch chân nên gợi ý địa chỉ hoạt động bình thường, còn các ô nhập khác vẫn giữ pre-edit.
Khôi phục từ ngoại ngữ. Gõ những từ như password hay expression giữa câu tiếng Việt không bị bẻ dấu — khi chuỗi không còn là vần tiếng Việt hợp lệ, engine trả lại đúng chuỗi phím đã bấm.
Gõ tắt. Khai báo trong ~/.config/onikey/onikey.macro.text theo dạng khoá:văn bản. Bật tự động viết hoa thì bản mở rộng theo cách gõ khoá: vn ra Việt Nam, VN ra VIỆT NAM.
Dùng hằng ngày
Mọi thứ nằm trong menu của biểu tượng vi trên thanh hệ thống: bảng mã, kiểu gõ, gõ tắt, kiểm tra chính tả, và hộp thoại cấu hình để gán phím tắt. Thay đổi áp dụng ngay, không cần khởi động lại; sửa tệp cấu hình bằng tay engine cũng tự nạp lại.

Vài điểm kỹ thuật đáng nói
- Lõi được kiểm chứng khớp hành vi BambooEngine bằng bộ ca kiểm hơn 126 nghìn ca, đối chiếu chuỗi kết quả sau từng phím chứ không chỉ kết quả cuối
- Ở chế độ bỏ gạch chân, engine chờ ứng dụng xác nhận xoá xong mới ghi tiếp — đây là cách xử lý gốc rễ hiện tượng gõ nhanh bị đảo chữ
- Hộp thoại cấu hình chạy như tiến trình riêng, nên lỗi giao diện không kéo engine chết theo
Khi gặp trục trặc
Engine do ibus-daemon khởi chạy nên không in ra màn hình. Bật nhật ký để xem chuyện gì xảy ra:
touch ~/.config/onikey/onikey-debug && ibus restartNhật ký ghi vào ~/.config/onikey/onikey-rust-debug.log, gồm cấu hình nạp được và hành động engine chọn cho từng phím. Xoá tệp cờ rồi khởi động lại IBus là tắt.
Trên GNOME Wayland có hai hạn chế đến từ nền tảng chứ không phải bộ gõ: không nhận diện được ứng dụng đang focus, và không bơm được phím giả như trên X11. Với KDE dùng Fcitx5, nếu gõ được ở ứng dụng này mà không được ở ứng dụng kia, thử đặt ShareInputState=All trong phần cấu hình nâng cao của Fcitx5.
Thảo luận