1 điểm bởi seungchan1e 12 ngày trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Giới thiệu

KeyZen là một engine remap phím dựa trên layer, nhanh và sử dụng ít tài nguyên.

  • Sử dụng các layer bàn phím dựa trên stack.
  • Hỗ trợ chạy cực sớm ngay khi đăng nhập.
  • Có thể cấu hình cách remap thông qua tệp YAML.

Bạn có thể xem cách thiết lập chi tiết trong hướng dẫn cấu hình.

Khi nào nên dùng KeyZen

Nếu khi dùng bàn phím, bạn thấy các phím mũi tên nằm quá xa các phím gốc như F, J làm ngắt quãng thao tác, hãy thử map Capslock + H, J, K, L thành Left, Down, Up, Right.

Hãy thử map từ trước đó (Ctrl + Left), từ tiếp theo (Ctrl + Right), đầu câu (Home), cuối câu (End) lần lượt vào W, E, P, O. Khi đó số tình huống phải đưa tay sang chuột sẽ giảm đi.

Lý do tạo ra

Mọi người hẳn đều đồng ý rằng capslock ở một vị trí quá thuận tay so với tần suất sử dụng của nó. Vì vậy tôi đã tìm nhiều cách để kết hợp với phím capslock nhằm tạo hành vi tương tự vim. Ban đầu tôi dùng autohotkey cho việc này, nhưng có một vài vấn đề.

  • Có vấn đề là trạng thái của phím capslock không được đồng bộ đúng cách. Điều này có thể khác nhau tùy cách viết mã, nhưng trong trường hợp của tôi thì có nhiều lúc hệ thống nhận là capslock đang được nhấn dù thực tế tôi không nhấn, khiến tôi phải bấm capslock liên tục nhiều lần.
  • Tôi đã dùng cách đặt chương trình chạy khi đăng nhập vào thư mục Startup, nhưng với cách này phải sau vài phút kể từ khi bật máy thì nó mới chạy.

Tôi cũng đã tìm các dự án thay thế như kanata, nhưng với kanata thì tính năng quá đồ sộ, chiếm CPU nhiều hơn mong đợi, và không hỗ trợ chạy ngay khi đăng nhập. (Có thể đặt nó vào thư mục Startup giống cách của autohotkey, nhưng vẫn sẽ gặp cùng vấn đề.)

Ngoài ra, Keyboard Manager của PowerToys có vấn đề là trong tình huống Capslock + H = Left Arrow thì phải nhấn kèm Capslock ở mỗi lần nhập.

Vì vậy tôi đã tạo ra KeyZen với mục tiêu sử dụng ít tài nguyên, cấu hình đơn giản và chạy thật sớm khi đăng nhập.

Chuyện kỹ thuật

Phần lớn mã nguồn được viết bằng Codex. Sau khoảng 10 ngày khảo sát trước, tôi bắt đầu phát triển bằng Codex và khá bất ngờ khi nó hoàn thành chỉ trong một ngày.

Chương trình được triển khai bằng Rust và cài keyboard hook thông qua Windows API. Tôi đã cân nhắc giữa việc cài keyboard hook ở cấp người dùng hay triển khai qua driver, và cuối cùng đã chọn cách cài keyboard hook. Keyboard hook có nhược điểm là không hoạt động trong các chương trình như Task Manager, nhưng tôi nghĩ can thiệp vào phía driver có thể hơi rủi ro.

Chưa có bình luận nào.

Chưa có bình luận nào.