Skip to content

FiorenMas/NexusKey

 
 

Repository files navigation

NexusKey - Bộ gõ tiếng Việt hiện đại cho Windows

Build License: GPL v3 Engine: Dual License Release

NexusKey Compact View NexusKey Expanded View

Giao diện NexusKey: Chế độ thu gọn (trái) và Cài đặt mở rộng (phải)

NexusKey Full UI

Giao diện đầy đủ NexusKey

NexusKey Classic UI

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


Giới thiệu

NexusKey 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 NexusKey đượ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!

Chính sách bảo mật

  • Không ghi phím: NexusKey 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.


🚀 Key Features

  • 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


Cài đặt

  1. Tải phiên bản mới nhất tại Releases.
  2. Giải nén và chạy NexusKey.exe.
  3. (Khuyến nghị) Tắt các bộ gõ khác (Unikey, EVKey) để tránh xung đột.

Xác minh bản tải (Verify Release)

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 NexusKey.zip --repo PhatMT97/NexusKey

# Xác minh bằng cosign
cosign verify-blob NexusKey.zip \
  --bundle NexusKey.zip.sigstore.json \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com \
  --certificate-identity-regexp="https://github.com/phatMT97/NexusKey/"

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ố.


Build từ mã nguồn

Yêu cầu

  • 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/.

Build

cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release --target NextKeyApp

Chạy test

cmake --build build --config Release --target NextKeyTests
ctest --test-dir build --build-config Release --output-on-failure

Kiến trúc

NexusKey gồm ba lớp:

Lớp Target Mô tả
NextKeyEngine 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.
NextKeyCore Static lib Lớp platform — shared memory IPC, quản lý config, smart switch.
NextKeyApp Win32 EXE Ứng dụng GUI với Sciter.JS, hook engine, tray icon, tự cập nhật.
NextKeyTSF DLL Tích hợp Text Services Framework — đăng ký như Windows input method.

Tối ưu bộ nhớ

NexusKey đượ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:

NexusKey RAM Usage - 0.3 MB

NexusKey chỉ chiếm 0.3 MB RAM — kiến trúc nhẹ, OS dễ dàng tối ưu


English Version

Click to expand English version

About

NexusKey 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.

Privacy Policy

  • No Keylogging: NexusKey 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.

Features

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

Installation

  1. Download the latest version from Releases.
  2. Extract and run NexusKey.exe.
  3. (Recommended) Disable other IMEs (Unikey, EVKey) to avoid conflicts.

Building

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 NextKeyApp

Architecture

Layer Target Description
NextKeyEngine Static lib Pure C++20 Vietnamese input engines (Telex, VNI), spell checker, code table converter. Zero platform dependencies.
NextKeyCore Static lib Platform layer — shared memory IPC, configuration management, smart switch.
NextKeyApp Win32 EXE GUI application with Sciter.JS UI, hook engine, tray icon, auto-update.
NextKeyTSF DLL Text Services Framework integration — registers as a Windows input method.

Memory Optimization

NexusKey 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:

NexusKey RAM Usage - 0.3 MB

NexusKey at 0.3 MB RAM — lightweight architecture, easily optimized by the OS


Credits

  • 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

Top Testers

Cảm ơn các thành viên cộng đồng đã test và góp ý:

License

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 NexusKey trong sản phẩm proprietary, vui lòng liên hệ tác giả để lấy commercial license. Xem LICENSE-COMMERCIAL.

Star History

Star History Chart

About

Vietnamese Input for Windows - Bộ gõ Tiếng Việt nguồn mở

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 84.4%
  • HTML 5.1%
  • JavaScript 4.1%
  • CSS 3.4%
  • PowerShell 1.4%
  • CMake 0.8%
  • Other 0.8%