Skip to content

Releases

ViFastKey v0.1.2

Choose a tag to compare

@vifastoss vifastoss released this 08 Nov 11:21

ViFastKey v0.1.2

Kiến trúc

  • Gom policy thử lại Replace khi surrounding cũ vào vfk-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, Rust include_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/meet trả raw thay vì dât/bôt/mêt; last vẫn ra lá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 ra nhuwng).
  • 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ỏ qua delete_surrounding_text; gõ sai rồi Backspace +
    phím mới ra hoaf thay vì append hoaà.

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ùng Visible(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_id vifastkey-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 + wtype trê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 Replace không có surrounding hoặc app
    không nhận delete_surrounding_text, adapter commit chữ đang soạn thay vì
    reset làm mất từ; thêm test CTest và test _apply vớ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