Giao diện VKey: Chế độ thu gọn (trái) và Cài đặt mở rộng (phải)
Giao diện đầy đủ VKey
Giao diện Classic (Win32 native) — nhẹ, tương thích cao
Giới thiệu | Tính năng | Cài đặt | Xác minh | Build | Kiến trúc | English | Credits
VKey là bộ gõ tiếng Việt mã nguồn mở cho Windows, được viết lại từ hoàn toàn NextKey (một fork của OpenKey của Mai Vũ Tuyên).
Engine mới, kiến trúc mới, C++20, hiệu năng cao, giao diện Glassmorphism.
Engine VKey được tối ưu dựa trên nghiên cứu ngữ âm học tiếng Việt, có tham khảo mã nguồn Unikey của bác Phạm Kim Long cho các quy tắc âm vị học (VCPair, consonant restrictions). Xin chân thành cảm ơn!
- Không ghi phím: VKey không thu thập, lưu trữ, hay gửi phím bạn gõ đi đâu.
- Không thu thập dữ liệu: Không có dữ liệu cá nhân nào được gửi lên server.
- Hoạt động offline: Phần mềm hoạt động hoàn toàn cục bộ trên máy bạn.
- Mã nguồn mở: Bạn có thể tự kiểm chứng bằng cách đọc mã nguồn.
Lưu ý: Dự án này được phát triển chủ yếu dựa trên nhu cầu và trải nghiệm cá nhân, vì vậy có thể vẫn tồn tại một số lỗi chưa được phát hiện hoặc khắc phục triệt để. Rất mong nhận được sự thông cảm và đóng góp ý kiến thông qua Issue để bộ gõ ngày càng hoàn thiện hơn.
-
Smart Switch per app Tự động nhớ chế độ Việt/Anh theo từng ứng dụng
-
App Exclusion (Hard / Soft) Linh hoạt kiểm soát bật/tắt tiếng Việt theo app (phù hợp game, tool đặc thù)
-
Advanced Macro & Typing Gõ tắt mở rộng (lên đến 20.000 ký tự, hỗ trợ xuống hàng), hoạt động cả trong English mode, hỗ trợ phụ âm nhanh
-
Telex + VNI Combined Hỗ trợ gõ song song cả Telex và VNI mà không cần chuyển đổi
-
Spell Check + Free Typing Kiểm tra chính tả tiếng Việt + cho phép override khi cần gõ tự do
-
Powerful Convert Tool Bôi đen → chuyển mã nhanh, hỗ trợ nhiều kiểu chuyển đổi (HOA, thường, bỏ dấu…)
-
Per-App Configuration Tùy chỉnh bảng mã & kiểu gõ riêng cho từng ứng dụng
-
Context-Aware Input Tự tắt khi dùng CJK, phát hiện tiếng Anh để tránh lỗi gõ
-
Modern UI Glassmorphism, auto Light/Dark, tùy biến icon, hỗ trợ song ngữ
-
High Performance Engine Độ trễ thấp, hỗ trợ song song Hook Engine & TSF (Context-Aware) để bắt ngữ cảnh tốt nhất, auto update, tối ưu bảo mật
-
Game-Friendly Telex Chơi game với Telex bình thường — WASD di chuyển mượt, không cần chuyển Simple Telex hay tắt tiếng Việt
-
Float icon in FullScreen Hỗ trợ hiển thị icon status V/E nổi trên màn hình - thích hợp các app FullScreen
- Tải phiên bản mới nhất tại Releases.
- Giải nén và chạy
VKey.exe. - (Khuyến nghị) Tắt các bộ gõ khác (Unikey, EVKey) để tránh xung đột.
Ký số (Code signing): Dịch vụ ký số (Authenticode) trên Windows cho VKey được cung cấp miễn phí bởi SignPath.io, chứng chỉ ký số bởi SignPath Foundation.
Mỗi bản phát hành đều được ký bằng Sigstore và đính kèm build attestation từ GitHub Actions — chứng minh file được build từ mã nguồn trong repo này.
# Xác minh bằng GitHub CLI
gh attestation verify VKey.zip --repo PhatMT97/VKey
# Xác minh bằng cosign
cosign verify-blob VKey.zip \
--bundle VKey.zip.sigstore.json \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-identity-regexp="https://github.com/phatMT97/VKey/"Lưu ý: Đây không phải code signing truyền thống (Authenticode). Windows SmartScreen vẫn có thể cảnh báo khi chạy lần đầu — đây là hành vi bình thường với phần mềm mã nguồn mở chưa có chứng chỉ ký số.
- Windows 10/11
- Visual Studio 2022 (workload "Desktop development with C++" + ATL)
- CMake 3.20+
Các thư viện phụ thuộc (Sciter SDK, Google Test, toml++) đã có sẵn trong extern/.
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release --target VKeyAppcmake --build build --config Release --target VKeyTests
ctest --test-dir build --build-config Release --output-on-failureVKey gồm ba lớp:
| Lớp | Target | Mô tả |
|---|---|---|
| VKeyEngine | Static lib | Engine gõ tiếng Việt thuần C++20 (Telex, VNI), kiểm tra chính tả, chuyển bảng mã. Không phụ thuộc platform. |
| VKeyCore | Static lib | Lớp platform — shared memory IPC, quản lý config, smart switch. |
| VKeyApp | Win32 EXE | Ứng dụng GUI với Sciter.JS, hook engine, tray icon, tự cập nhật. |
| VKeyTSF | DLL | Tích hợp Text Services Framework — đăng ký như Windows input method. |
VKey được thiết kế với kiến trúc gọn nhẹ, không phụ thuộc runtime nặng, nên bản thân chương trình đã rất tiết kiệm tài nguyên — khởi chạy chỉ chiếm khoảng 1.6 ~ 2 MB RAM. Nhờ footprint nhỏ, hệ điều hành có thể dễ dàng trim working set xuống còn khoảng 0.3 MB sau một thời gian idle:
VKey chỉ chiếm 0.3 MB RAM — kiến trúc nhẹ, OS dễ dàng tối ưu
Click to expand English version
VKey is an open-source Vietnamese Input Method Editor (IME) for Windows, completely rewritten from NextKey (based on OpenKey by Mai Vu Tuyen).
New engine, new architecture, C++20, high performance, Glassmorphism UI. Engine phonology rules reference Unikey by Pham Kim Long.
- No Keylogging: VKey does not collect, store, or transmit your keystrokes.
- No Data Collection: No personal data is sent to any server.
- Offline First: The software operates entirely locally on your machine.
- Open Source: You can verify this behavior by reviewing our source code.
Input Methods & Code Tables
- Input methods: Telex, VNI, Simple Telex, Combined (Telex + VNI)
- Code tables: Unicode, TCVN3, VNI Windows, Unicode Compound, Vietnamese Locale
- Tone placement: Modern (oà, uý) and classic (òa, úy) options
Spell Check & English Detection
- Spell checker — Vietnamese word validation, reduces accidental tone placement on English words
- Free typing mode — Bypass English detection, allows free tone placement (e.g.,
yes→ýe) - Quick-disable shortcuts — Solo Ctrl temporarily disables spell check; Double-Alt temporarily disables Vietnamese for current word
Smart Switching
- Smart Switch — Automatically remembers V/E mode per application
- Exclude Apps (Hard) — Force English and block toggle completely for specified apps
- Exclude Apps (Soft) — Always reset to English when opening/switching to an app, but still allows toggling to Vietnamese via hotkey — ideal for fullscreen games
- Auto-disable on CJK — Disables Vietnamese input when keyboard layout is CJK (Chinese, Japanese, Korean)
- Per-app configuration — Code table and input method overrides per application
- Import/Export — Import and export excluded apps lists from file
Macros & Quick Typing
- Macros — Text expansion shortcuts (e.g.,
addr→ full address), supports up to 20,000 characters and newlines - Macros in English mode — Allows macro expansion while in English mode
- Quick consonants — cc→ch, gg→gi, nn→ng, plus quick start/end consonant shortcuts
- Auto-capitalize — Automatically capitalizes first letter after sentence-ending punctuation, including macro output and TSF context-aware support
Convert Tool
- Quick convert via selection — Select text and press hotkey to convert instantly
- Sequential conversion — Automatically cycles through conversion options (UPPERCASE, lowercase, Title Case, Remove accents...) then returns to original. Only active when "Auto paste + select" is enabled
- Multi-encoding support — Convert between Unicode, TCVN3, VNI Windows
User Interface
- Glassmorphism UI — Transparent, backdrop blur, rounded corners in Windows 11 style
- Auto Theme Sync — Automatically switches Light/Dark in real-time with Windows, no restart needed
- Icon Color — Customizable V/E icon colors on the system tray
- Bilingual — UI supports both Vietnamese and English
System
- Parallel Engine — Parallel Hook Engine and TSF (Context-Aware) support for superior tracking and document awareness
- TSF Engine — Text Services Framework integration for modern applications, with per-app TSF selection
- Auto-update — Built-in update checker and installer
- Security hardened — Code optimized to minimize security vulnerabilities
- High performance — Optimized system processing
- Download the latest version from Releases.
- Extract and run
VKey.exe. - (Recommended) Disable other IMEs (Unikey, EVKey) to avoid conflicts.
Code signing: Free Authenticode code signing on Windows for VKey is provided by SignPath.io, with the certificate issued by SignPath Foundation.
Prerequisites: Windows 10/11, Visual Studio 2022 (Desktop C++ + ATL), CMake 3.20+
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release --target VKeyApp| Layer | Target | Description |
|---|---|---|
| VKeyEngine | Static lib | Pure C++20 Vietnamese input engines (Telex, VNI), spell checker, code table converter. Zero platform dependencies. |
| VKeyCore | Static lib | Platform layer — shared memory IPC, configuration management, smart switch. |
| VKeyApp | Win32 EXE | GUI application with Sciter.JS UI, hook engine, tray icon, auto-update. |
| VKeyTSF | DLL | Text Services Framework integration — registers as a Windows input method. |
VKey is built with a lean architecture and no heavy runtime dependencies, keeping resource usage minimal — starting at only ~1.6–2 MB RAM. Thanks to its small footprint, the OS can easily trim the working set down to as low as 0.3 MB after idle:
VKey at 0.3 MB RAM — lightweight architecture, easily optimized by the OS
- Kế thừa từ NextKey, lấy cảm hứng từ OpenKey của Mai Vũ Tuyên
- Quy tắc âm vị học tham khảo từ Unikey của Phạm Kim Long
- Giao diện bởi Sciter.JS
- Đọc config bởi toml++
- Testing bởi Google Test
- Tham khảo rule -ing cho spell check của Gonhanh.org
- Tham khảo config TSF từ VietType
- Tham khảo cách xử lý clipboard input từ SigmaLib của Phạm Hoàng Nhật
- Tham khảo quy tắt tiếng việt từ dotnetkey
- Dịch vụ ký số (Authenticode) trên Windows cung cấp miễn phí bởi SignPath.io, chứng chỉ ký số bởi SignPath Foundation
Cảm ơn các thành viên cộng đồng đã test và góp ý:
Dự án sử dụng dual license:
| Thành phần | License |
|---|---|
Engine (src/core/engine/*) |
GPL-3.0 hoặc Commercial |
| Tất cả phần còn lại | GPL-3.0 |
- Sử dụng open-source (GPL-3.0): Bạn có thể sử dụng, sửa đổi, phân phối lại toàn bộ mã nguồn với điều kiện giữ nguyên license GPL-3.0 cho derivative works.
- Sử dụng thương mại/closed-source: Nếu muốn dùng engine VKey trong sản phẩm proprietary, vui lòng liên hệ tác giả để lấy commercial license. Xem LICENSE-COMMERCIAL.




