Mã nguồn mở cho Windows

Bộ gõ tiếng Việt cho Windows.

Hỗ trợ Telex, VNI, cấu hình theo ứng dụng và xử lý phím gõ ngay trên máy.

winget install PhatMT97.VKey
Nhớ chế độ theo ứng dụng

Gõ tiếng Việt theo cách bạn chọn

tieengs Vieetj tiếng Việt
Telex, VNI và kiểu gõ tùy chỉnh
Engine C++20, Rust tùy chọn
Cấu hình theo từng ứng dụng
Xử lý cục bộ, không ghi phím
Cấu hình riêng cho game
Không thu thập hoặc gửi phím gõ Telex, VNI và kiểu gõ tùy chỉnh Chế độ game cấu hình theo ứng dụng Engine C++20, Rust nâng cao tùy chọn Hỗ trợ Hook và Windows TSF

Bản phát hành

Thay đổi mới nhất

21 tháng 10, 2026

v4.3.0

Xem trên GitHub
Cả Sciter và Classic v4.3 đều phát hành chưa ký Authenticode - cần tải và cập nhật thủ công
1. Lý do chưa ký: SignPath không chấp thuận ký bản tiêu chuẩn vì giao diện Sciter là thành phần mã nguồn đóng (closed-source). Đợt phát hành này không gửi package tới SignPath.
2. Classic phát hành chưa ký trong lúc chờ phê duyệt lại: Phương án chỉ ký ba binary GPL-3.0 của Classic (VKeyClassic.exe, VKeyTSF.dll, VKeyWatchdog.exe), build riêng với Rust tắt hoàn toàn và không có Sciter, đang được xét duyệt lại. Đợt này phát hành cả Sciter lẫn Classic chưa ký, không chờ phê duyệt ký số để phát hành Classic.
3. Windows/antivirus có thể chặn: Do thiếu chữ ký Authenticode, Windows SmartScreen hoặc phần mềm diệt virus có thể cảnh báo, chặn chạy, cách ly hoặc xóa file. Hãy xác minh nguồn gốc bản tải trước khi xử lý cảnh báo; xem [hướng dẫn antivirus](docs/ANTIVIRUS.md). Sigstore attestation không thay thế Authenticode và không gỡ cảnh báo SmartScreen.
4. Cập nhật tự động không cài được bản chưa ký: Trình cập nhật vẫn yêu cầu chữ ký Authenticode hợp lệ của SignPath Foundation, nên sẽ từ chối gói v4.3 chưa ký, kể cả khi nâng cấp từ v4.2. Vui lòng cập nhật thủ công theo hướng dẫn bên dưới.
Cách cập nhật thủ công lên v4.3
  1. Tải VKey.zip / VKey-x64.zip (Sciter) hoặc VKeyClassic.zip / VKeyClassic-x64.zip (Classic) từ Releases chính thức và xác minh attestation theo README.
  2. Thoát VKey đang chạy, giải nén gói mới vào thư mục riêng, rồi chạy VKey.exe (Sciter) hoặc VKeyClassic.exe (Classic). Không trộn file của hai bản vào cùng thư mục.

English: Both Sciter and Classic v4.3 are released without Authenticode signatures. SignPath declined signing the standard edition because Sciter is closed-source, and no package is being submitted for this release. Classic-only signing is awaiting renewed approval; Classic is released unsigned alongside Sciter. Windows SmartScreen or antivirus software may warn, block, or quarantine the files. Automatic installation of unsigned updates (including v4.2 → v4.3) fails the updater's SignPath signature check: download the ZIP for your edition from the official release, verify its attestation, exit VKey, extract to a separate folder, and run the new executable. Keep the two editions in separate folders.

Kết quả VirusTotal (v4.3.0)

Các ZIP và DLL được tải từ chính release này và xác minh SHA-256 trước khi gửi quét; EXE được giải nén từ ZIP tương ứng. Mỗi liên kết trỏ tới báo cáo của đúng hash file; ZIP và EXE bên trong có kết quả riêng. Số liệu có thể thay đổi khi các hãng antivirus cập nhật.

Tệp / báo cáo VirusTotalEngine báo độc hạiĐáng ngờQuét lúc (UTC)
VKey.zip002026-10-21 10:25:04
VKey.exe202026-10-21 10:25:36
VKeyClassic.zip102026-10-21 10:25:20
VKeyClassic.exe302026-10-21 10:25:52
vkey_engine.dll002026-10-21 10:26:08

Tên phát hiện được các engine trả về:

  • VKey.exe: Microsoft (Trojan:Win32/Wacatac.C!ml), APEX (Malicious).
  • VKeyClassic.zip: Bkav (W32.Malware.AD871EEE).
  • VKeyClassic.exe: Bkav (W32.Malware.AD871EEE), Microsoft (Trojan:Win32/Wacatac.C!ml), APEX (Malicious).
Vì sao có thể bị antivirus nhận nhầm?
  • VKey cần xử lý bàn phím để gõ tiếng Việt: hook bàn phím, gửi phím tổng hợp (SendInput) và tích hợp TSF là các cơ chế của bộ gõ. Tùy chọn khởi động cùng Windows và watchdog cũng có thể làm tăng tín hiệu heuristic. Một số cơ chế tương tự xuất hiện trong phần mềm độc hại, nên bộ quét heuristic/ML có thể phân loại nhầm phần mềm hợp lệ. Đây là một khả năng giải thích cảnh báo, chưa phải nguyên nhân đã được các hãng xác nhận riêng cho những hash trên.
  • v4.3 chưa có chữ ký Authenticode: cả Sciter và Classic thiếu thông tin publisher đã được xác thực và reputation từ chứng chỉ ký số. Điều này góp phần làm bản tải mới khó được tin cậy hơn. Cảnh báo SmartScreen về độ phổ biến/publisher và verdict antivirus là hai cơ chế khác nhau; thiếu chữ ký không tự chứng minh file có virus, và có chữ ký cũng không bảo đảm antivirus sẽ không cảnh báo.
  • Chưa có kết luận gỡ cảnh báo từ hãng antivirus: các tên Wacatac.C!ml, Malicious và W32.Malware.AD871EEE ở trên là nhãn mà từng engine trả về. Chỉ nhãn đó hoặc việc ít engine cảnh báo chưa đủ để khẳng định chắc chắn đây là false positive. Dự án giữ nguyên kết quả và liên kết theo SHA-256 để đối chiếu minh bạch.

Microsoft giải thích rằng bộ phân loại ML/heuristic có thể tạo false positive và chữ ký số giúp tăng độ tin cậy. Nếu cần yêu cầu Microsoft xem xét lại một file, hãy gửi mẫu để phân tích; chưa có kết quả xử lý từ hãng được công bố ở đây. Trước khi xử lý cảnh báo, đối chiếu nguồn tải và build attestation theo README; xem thêm [hướng dẫn antivirus](docs/ANTIVIRUS.md).

VKey.zip có 1 engine lỗi; vkey_engine.dll có 3 engine timeout. Các báo cáo cũng liệt kê những engine không hỗ trợ định dạng file. Số cảnh báo của ZIP không thay thế kết quả quét EXE bên trong.

English: The table links to VirusTotal reports for the exact released file hashes, with UTC scan times and malicious/suspicious engine counts. Some engines flag the executables and Classic ZIP as listed above. Archive and executable results differ; check the individual reports. The Sciter ZIP has one engine error and the engine DLL has three timeouts.

Bản cập nhật này mang đến cải tiến đột phá về khả năng tự động sửa lỗi chính tả cùng các sửa lỗi quan trọng giúp nâng cao độ ổn định.

✨ Tính năng mới & Cải tiến nổi bật
  • 🧪 VKey Browser - tự chuyển chế độ theo website (thử nghiệm)
  • Thêm extension đồng hành VKey-Browser và VKeyBrowserHost.exe để áp dụng Theo VKey, English hoặc TSF tương thích theo từng tên miền.
  • Chuyển tab hoặc chuyển cửa sổ sẽ tự cập nhật chế độ. Ví dụ có thể dùng V trên google.com và tự chuyển E trên facebook.com mà không làm thay đổi trạng thái V/E gốc.
  • Có công tắc bật/tắt toàn cục: tắt sẽ tạm dừng mọi rule nhưng vẫn giữ nguyên cấu hình để bật lại sau.
  • Popup hiển thị trạng thái kết nối native host và dùng icon VKey; gói Chromium/Firefox có manifest riêng để tương thích Manifest V3.
  • Chế độ TSF theo tên miền hỗ trợ các editor/forum Firefox bị dính chữ sau emoji/inline image; composition được đặt kiểu hiển thị không gạch chân.
  • Extension chỉ gửi hostname, browser, trạng thái focus và route cục bộ; không gửi URL đầy đủ, nội dung trang hoặc phím gõ.
  • Hiện cài bằng Developer mode/Load unpacked và chưa phát hành trên Chrome Web Store hoặc Firefox AMO. Extension không thể đọc nội dung đang gõ trong address bar trước khi navigation.
  • Hướng dẫn cài đặt: [docs/BROWSER_EXTENSION.md](docs/BROWSER_EXTENSION.md).
  • 🌐 Ra mắt trang thông tin chính thức: Chính thức ra mắt website tại www.vkey.qd.je giúp người dùng dễ dàng tra cứu thông tin tính năng, hướng dẫn sử dụng và tải về các bản phát hành.
  • Tinh chỉnh UI (chỉ ở giao diện hiện đại)
  • Tab "Hệ thống": Gom nhóm tuỳ chọn icon để giúp UI gọn hơn
  • Tab "Macro": Tách riêng các nút hành động (Lưu, Test, Xóa, Nhập) và cải thiện bố cục danh sách macro để dễ sử dụng hơn.
  • Xóa nhiều gõ tắt cùng lúc: Thêm ô chọn ở bảng Macro để chọn và xóa nhiều từ gõ tắt trong một lần.
  • Quản lý "Từ điển & Loại trừ chính tả": Bổ sung hộp thoại đồ họa trực quan để quản lý Từ điển cá nhân (user_dictionary.txt) và Ngoại lệ viết tắt; hỗ trợ thêm, sửa, xóa, nạp/xuất file .txt và lưu áp dụng tức thì. Tab được thiết kế chia đều 50/50, phân tách rõ hàng thao tác tệp và hàng nút hành động.
  • Chế độ "Kiểm tra chính tả nâng cao"
  • Engine Rust hiệu năng cao: Bổ sung engine kiểm tra chính tả mới được viết bằng Rust, tập trung vào hiệu năng và khả năng nhận diện lỗi.
  • Tự sửa lỗi gõ nhanh: Phát hiện và sửa các lỗi gõ nhanh, đảo ký tự hoặc nhầm ký tự (ví dụ: hcaof → chào, xywr → xử).
  • Gõ từ tiếng Anh & thương hiệu mượt mà: Có thể viết các từ như asus mà không cần gõ 3 chữ s (assus) hay thao tác phục hồi phức tạp - chỉ cần gõ đúng thứ tự a-s-u-s là engine tự nhận diện và xuất đúng từ.
  • Hoạt động theo lựa chọn của người dùng: Tính năng mặc định được tắt và chỉ được kích hoạt khi bạn chủ động bật trong cài đặt.
  • Tương thích với engine mã nguồn mở: Nếu engine nâng cao không có hoặc bị gỡ bỏ, VKey sẽ tự động sử dụng engine C++ mã nguồn mở đi kèm mà không ảnh hưởng đến các chức năng gõ tiếng Việt thông thường.
  • 🎬 Xem demo tính năng tự sửa lỗi gõ
ℹ️ Tìm hiểu thêm
Để biết thêm chi tiết về kiến trúc engine nâng cao, cơ chế phân phối, lý do thiết kế cũng như các vấn đề về mã nguồn & giấy phép (license), vui lòng tham khảo:
- [Kiến trúc kỹ thuật Engine nâng cao](docs/ENGINE_ARCHITECTURE.md)
- [Giải đáp FAQ về kiến trúc, giấy phép & nguồn gốc VKey](docs/ENGINE_FAQ.md)
  • 🎮 Chế độ game (thay đổi hành vi mặc định - game thủ vui lòng đọc)
  • Trước đây: cơ chế giữ phím cho game được bật ngầm cho mọi ứng dụng Win32 thông thường (Notepad, Word, Windows Terminal…). Mỗi lần bỏ dấu, VKey nhả ký tự gốc ra màn hình rồi mới xoá đi. Việc này gây nháy chữ và tình trạng đôi lúc không đặt được dấu đúng mong đợi.
  • Từ bản này: mặc định mọi ứng dụng dùng cách gõ thông thường (xoá rồi thay). Cơ chế giữ phím cho game trở thành tuỳ chọn, bật riêng cho từng ứng dụng.
  • Cách bật: chọn Chế độ game trong mục "Cách gửi" ở Cấu hình từng ứng dụng, hoặc gán một phím tắt cho Bật / tắt chế độ game cho app đang mở trong Quản lý phím tắt rồi nhấn ngay khi đang ở trong game - ứng dụng đó sẽ được thêm vào danh sách, nhấn lần nữa để gỡ.
  • Phím tắt này không có tổ hợp mặc định: bất cứ tổ hợp nào chọn sẵn cũng sẽ đụng phím đã gán trong game, nên bạn tự chọn.
  • Ứng dụng nào đã cấu hình sẵn "Cách gửi" khác (Clipboard, Firefox, Cloud/Remote…) không bị ảnh hưởng.

🛠 Các lỗi đã được khắc phục
  • Sửa lỗi bỏ dấu từ ghép: Khắc phục lỗi gõ từ ruouwj không bỏ dấu đúng cách để tạo thành từ rượu.
  • Sửa lỗi gõ từ tiếng Anh: Khắc phục hiện tượng gõ từ view bị chuyển nhầm thành vieư.
  • Sửa lỗi nạp từ điển cá nhân (User Dictionary): Khắc phục lỗi engine chính tả Rust từ chối file user_dictionary.txt do xung đột cú pháp ghi chú header (; thay vì #), khiến các từ bảo vệ đã lưu (như soà, khưm...) vẫn bị tự sửa thành từ khác khi bật Kiểm tra chính tả nâng cao.
  • Tối ưu hóa trạng thái hoạt động: Sửa lỗi ứng dụng chuyển sang trạng thái chờ (idle) quá nhanh gây ảnh hưởng đến trải nghiệm người dùng.
  • Cải tiến giao diện: Tối ưu hóa hiệu năng hiển thị và chuyển đổi của các bộ giao diện (theme).
  • Sửa lỗi excel online: Khắc phục lỗi mất từ trước đó khi dùng shift để viết hoa từ tiếng Việt.
  • Sửa lỗi macro TSF: Macro đã hoạt động với TSF
  • Sửa lỗi mất dấu không hồi phục được: Khắc phục lỗi thỉnh thoảng gõ khoong ra thẳng khoong thay vì không, và sau đó xoá đi gõ lại vẫn không tạo được dấu.

Sponsors

Free code signing for past releases v4.0-v4.2 was provided by SignPath.io, certificate by SignPath Foundation. Classic-only signing for v4.3 is awaiting renewed approval.


*Cảm ơn bạn đã tin tưởng và lựa chọn VKey! Mọi đóng góp của bạn đều là nguồn động lực lớn giúp bộ gõ ngày càng hoàn thiện hơn.* ❤️

Các chức năng chính

Telex, VNI, cấu hình theo ứng dụng hoặc website, macro, chuyển mã và hai cơ chế tích hợp với Windows.

Engine C++20 và Rust tùy chọn

Engine C++20 được tích hợp sẵn. Engine Rust cho kiểm tra chính tả nâng cao là tùy chọn và mặc định tắt. Xem demo

Telex, VNI và kiểu gõ tùy chỉnh

Hỗ trợ Telex, VNI, Simple Telex, chế độ kết hợp và các bảng mã Unicode, TCVN3, VNI Windows.

Nhớ chế độ theo ứng dụng

Ghi nhớ trạng thái Việt hoặc Anh, cho phép đặt quy tắc riêng và tự tắt khi dùng bố cục bàn phím CJK.

Chế độ Game (WASD)

Cho phép chọn cách gửi phím riêng cho từng game để giảm xung đột giữa Telex và các phím di chuyển.

Macro và chuyển mã

Macro hỗ trợ nội dung dài và xuống dòng. Công cụ chuyển mã làm việc trên phần văn bản đang chọn.

Xử lý cục bộ

VKey không thu thập, lưu trữ hoặc gửi phím gõ. Mã nguồn được công khai để người dùng kiểm tra.

Demo

Tự sửa lỗi gõ

Engine Rust phát hiện đảo ký tự, gõ nhanh và từ tiếng Anh — không cần gõ lại từ đầu.

  • hcaof → chào
  • xywr → xử
  • asus → nhận diện đúng, không cần assus

Cài đặt theo cách bạn muốn

Tải tệp ZIP từ GitHub Releases hoặc cài đặt bằng WinGet.

GitHub Release

Tải tệp ZIP từ GitHub, giải nén và chạy ứng dụng:

  • Bản Tiêu chuẩn: Giao diện Sciter, tự đổi giao diện sáng hoặc tối theo Windows.
  • Bản Classic: Giao diện Win32 native, không nạp engine Rust. SignPath Foundation chỉ ký các tệp VKeyClassic.exe, VKeyTSF.dll và VKeyWatchdog.exe trong artifact Classic riêng.

Cài đặt qua WinGet

Mở Terminal hoặc PowerShell và chạy một trong hai lệnh bên dưới:

Bản Tiêu chuẩn (Sciter UI)
winget install PhatMT97.VKey
Bản Classic (Win32 Native)
winget install PhatMT97.VKey.Classic

Câu hỏi thường gặp

Thông tin về dữ liệu phím gõ, các phiên bản và cách cấu hình VKey.

VKey xử lý dữ liệu phím gõ như thế nào?
  • Xử lý cục bộ: Theo chính sách của dự án, VKey không thu thập, lưu trữ hoặc gửi phím gõ.
  • Mã nguồn công khai: Phần mã nguồn mở được phát hành trên GitHub theo GPL-3.0 để cộng đồng kiểm tra.
  • Xác minh bản tải: Dự án cung cấp Sigstore và build attestation cho các bản phát hành.
Windows hoặc phần mềm diệt virus cảnh báo VKey, tôi nên làm gì?
  • Kiểm tra nguồn tải: Chỉ tải từ GitHub Releases chính thức và xác minh Sigstore attestation trước khi tạo ngoại lệ.
  • Cảnh báo theo hành vi: Bộ gõ cần đọc và gửi lại phím để đặt dấu nên có thể bị nhận diện nhầm. Trạng thái ký số tùy từng phiên bản.
  • Xem cách xác minh, khôi phục và xử lý cảnh báo.
Có ESET và không gõ được tiếng Việt trên Edge/Chrome, tôi nên làm gì?
  • Kiểm tra tiện ích: Mở edge://extensions, chrome://extensions hoặc about:addons trên Firefox và tìm tiện ích ESET. Dù không thấy, hãy kiểm tra Browser protection / Safe Banking & Browsing trong ứng dụng ESET.
  • Thêm ngoại lệ: Trong ESET, mở Advanced setup (F5) → Protections → Browser protection → Browser protection allowlist → Edit → Add. Chọn đúng đường dẫn VKey.exe hoặc VKeyClassic.exe đang chạy; nếu dùng TSF, thêm cả VKeyTSF.dll. Chỉ thêm DLL chưa đủ cho Hook mặc định.
  • Áp dụng: Lưu thiết lập, thoát hoàn toàn trình duyệt rồi mở lại. Có thể giữ Secure all browsers bật sau khi thêm ngoại lệ.
  • Xem hướng dẫn ESET chi tiết và cách xử lý nếu vẫn lỗi.
VKey có mấy phiên bản? Khác nhau như thế nào?
  • Bản Tiêu chuẩn (Sciter UI): Tự đổi giao diện sáng hoặc tối theo Windows và có thể nạp engine Rust tùy chọn.
  • Bản Classic: Giao diện Win32 native. Bản phát hành chính thức không nạp engine Rust.
SignPath Foundation áp dụng cho những tệp nào?
  • Hiện trạng v4.3: Cả Sciter và Classic đều chưa ký Authenticode; Windows hoặc antivirus có thể cảnh báo và cần cập nhật thủ công.
  • Đang chờ phê duyệt lại: Phương án chỉ ký Classic chưa được SignPath chấp thuận lại.
  • Phạm vi đề xuất: Chỉ gồm VKeyClassic.exe, VKeyTSF.dll và VKeyWatchdog.exe được build từ mã nguồn GPL-3.0 công khai.
  • Cấu hình riêng: Artifact Classic được build với Rust engine bị compile-out hoàn toàn và không chứa hoặc nạp Sciter.
  • Ngoài phạm vi: VKeyApp, installer dùng Sciter, Rust engine và thành phần proprietary không được gửi Foundation ký. VKeyBrowserHost.exe là mã nguồn mở GPL-3.0 nhưng không nằm trong request ba tệp hiện tại.
Engine Rust Nâng cao là gì và có bắt buộc dùng không?
  • Không bắt buộc: VKey mặc định dùng engine C++20 có sẵn cho các chức năng gõ tiếng Việt thông thường.
  • Tính năng mở rộng: Engine Rust bổ sung tự sửa một số lỗi đảo phím và nhận diện từ tiếng Anh. Tính năng này mặc định tắt.
Chơi game có bị dính phím di chuyển (WASD) không?
  • Cấu hình theo game: Chọn Chế độ Game (WASD) cho ứng dụng cần dùng hoặc gán một phím tắt để chuyển nhanh.
  • Lưu ý tương thích: Cách gửi phím có thể cần điều chỉnh theo từng game và các phần mềm đang chạy cùng lúc.
Làm sao để tự động đổi chế độ tiếng Anh/Việt theo từng app?
  • Lưu chế độ theo app: VKey tự động ghi nhớ trạng thái V hoặc E cho từng cửa sổ làm việc.
  • Khoá chế độ: Cố định luôn là E (cho IDE/Game) hoặc V (cho app Chat) để tránh đổi nhầm.
Làm sao đặt lại “Khởi động cùng Windows” khi autostart không hoạt động?
  • Thử đăng ký lại: Trong Settings, tắt “Khởi động cùng Windows”, sau đó bật lại để cập nhật đường dẫn hiện tại.
  • Nếu vẫn lỗi: Tắt VKey, gỡ cấu hình cũ trong Registry và Task Scheduler, rồi mở VKey và bật lại autostart.
  • Xem hướng dẫn đặt lại autostart bằng Command Line.
Tôi có thể dùng VKey cho công việc và doanh nghiệp không?
  • Có thể dùng miễn phí: VKey được phát hành theo giấy phép GPL-3.0.
  • Cá nhân và doanh nghiệp có thể sử dụng phần mềm. Khi phân phối lại hoặc sửa đổi, cần tuân thủ các điều khoản GPL-3.0.