Repository navigation
ViFastKey v0.1.2
Kiến trúc
- Gom policy thử lại
Replacekhi surrounding cũ vàovfk-adapter-core
(plan_action_with_fallback/vfk_plan_action_with_fallback); IBus, Fcitx5,
Wayland và macOS IMK không còn tự gọi planner lần hai. Fallback không bỏ qua
selection hoặc caret giữa từ. - App profile/alias chuyển sang nguồn chung
python/vfk_engine/app_profiles.json;
Python đọc lúc import, Rustinclude_str!lúc compile. Thêm conformance cho
profile và terminal soft-reset. - Thêm helper C ABI
vfk_char_to_byte_offset/vfk_utf16_to_byte_offsetđể
Fcitx5 không lặp thuật toán UTF-8/UTF-16.
Core & engine
- Bỏ cơ chế dictionary auto-restore tiếng Anh (
auto_restore_english): từ Việt hợp lệ
luôn thắng (mix→mĩ,too→tô,this→thí); gõ tiếng Anh bằng escape Telex
(mixx→mix,thiss→this,lasst→last) hoặc chuyển chế độ Anh. Config cũ
còn khoá này vẫn đọc được, khoá đó bị bỏ qua. - Kiểm tra cuối từ chặt hơn: âm cuối tắc (
c,ch,p,t,k) phải có thanh sắc/nặng.
data/boot/meettrả raw thay vìdât/bôt/mêt;lastvẫn ralát. - Thêm
tôvào danh sách từ Việt thông dụng (dùng cho backspace/gợi ý). - Backspace sau khi gõ thừa ký tự vào từ Việt khôi phục lại từ đúng:
nhưng+l→nhuwngl, Backspace →nhưng(trước đây ranhuwng). - Giữ trạng thái soft-reset qua từ mới: gõ sai một từ rồi xoá hết từ đó + dấu cách
sẽ khôi phục từ trước để sửa tiếp (áp dụng cho cả Preedit và Replace). - Terminal Linux: tắt soft-reset sau dấu cách cho xterm/ptyxis/gnome-terminal/
konsole... vì terminal bỏ quadelete_surrounding_text; gõ sai rồi Backspace +
phím mới rahoafthay vì appendhoaà.
Desktop
- Windows tray: menu “Mở cấu hình” giờ khôi phục cửa sổ Settings đúng khi
cửa sổ đang thu nhỏ/ẩn. Trước đây đóng xuống tray dùngVisible(false)làm
event loop có thể ngừng render, nên thao tác từ tray không được xử lý. - Windows Settings: cửa sổ cấu hình không còn chiếm taskbar/Alt+Tab; mở từ
tray vẫn hiện bình thường. Tab Ứng dụng hiển thị danh sách app đã cấu hình và
picker app đang chạy (process + tiêu đề cửa sổ), chuẩn hoáexcluded_apps
để UI/engine khớp nhau. Sidebar có icon cho từng tab. - macOS Preferences: thêm chọn app đang chạy để đưa vào
excluded_apps,
thay vì chỉ nhập tay. - Linux Settings: tab Ứng dụng có picker tiến trình GUI (đối chiếu
.desktop),
cửa sổ dùng app_idvifastkey-settingsđể khớp icon dock với desktop entry.
Bấm X ẩn hẳn cửa sổ xuống tray (không còn kẹt trên dock/taskbar Ubuntu); nếu
tray không khả dụng thì app thoát bình thường. - Adapter Wayland standalone (
linux/wayland/):zwp_input_method_v2+
zwp_virtual_keyboard_v1, preedit/commit/delete surrounding, field policy
(password/URL/email/number/terminal), pass-through phím qua virtual keyboard,
config reload,--probe/--check, systemd user service. Test unit 8 case và
E2E Sway headless + GTK4 +wtypetrên Ubuntu 24.04 aarch64 và Ubuntu 26.04
x86_64 (Sway 1.11): telex, dấu, Escape, toggle, replace từ trước, pass-through. - Fcitx5/IBus fail-safe giữ từ: khi
Replacekhông có surrounding hoặc app
không nhậndelete_surrounding_text, adapter commit chữ đang soạn thay vì
reset làm mất từ; thêm test CTest và test_applyvới IBus giả lập. - Windows hook-only hoàn thiện: một binary UI + hook; HKL guard EN-US, VI/JP pass-through;
Full changelog: https://github.com/vifast-oss/ViFastKey/blob/main/CHANGELOG.md