Kasane: Front-end mới cho Kakoune với GPU rendering và hệ thống plugin WASM

21 tháng 4, 2026·3 phút đọc

Kasane là một giao diện thay thế cho trình soạn thảo Kakoune, mang lại khả năng hiển thị GPU mượt mà, hỗ trợ plugin WASM sandbox và tính năng multi-pane tích hợp mà không cần tmux. Công cụ này giải quyết các vấn đề về hiển thị Unicode, clipboard và cho phép mở rộng UI mạnh mẽ chỉ với vài dòng mã Rust.

Kasane: Front-end mới cho Kakoune với GPU rendering và hệ thống plugin WASM

Kasane là một dự án mới đầy thú vị dành cho những lập trình viên yêu thích trình soạn thảo Kakoune. Về bản chất, Kakoune vẫn chịu trách nhiệm xử lý việc chỉnh sửa văn bản, nhưng Kasane sẽ xây dựng lại toàn bộ pipeline hiển thị — dù là trên terminal hay thông qua GPU — và mở rộng toàn bộ giao diện người dùng (UI) để có thể tùy biến thông qua các plugin.

Điểm đặc biệt nhất của Kasane là nó cho phép bạn mở rộng tính năng bằng các plugin WASM (WebAssembly) được sandbox hóa an toàn. Một plugin hoàn chỉnh có thể được viết chỉ với 15 dòng mã Rust. Đặc biệt, file cấu hình kakrc hiện tại của bạn vẫn hoạt động bình thường mà không cần thay đổi.

Demo KasaneDemo Kasane

Những cải tiến nổi bật

Khi bạn thay thế alias kak bằng kasane, những cải tiến sau sẽ được áp dụng tự động:

  • Hiển thị không bị nhấp nháy (Flicker-free): Không còn hiện tượng tearing khi vẽ lại màn hình, mang lại trải nghiệm mượt mà hơn.
  • Multi-pane tích hợp: Không cần phụ thuộc vào tmux nữa, Kasane hỗ trợ chia khung (splits) có sẵn với thanh trạng thái riêng cho từng khung.
  • Clipboard hoạt động trơn tru: Hỗ trợ tốt trên Wayland, X11, macOS và cả SSH mà không cần cài đặt thêm công cụ như xclip.
  • Unicode chuẩn xác: Các ký tự CJK và emoji được hiển thị đúng cách bất kể terminal bạn đang sử dụng.

Ngoài ra, nếu bạn thêm cờ --ui gui, Kasane sẽ kích hoạt backend GPU với khả năng hiển thị font hệ thống, hoạt ảnh mượt mà và hiển thị hình ảnh trực tiếp trong văn bản.

Hệ thống Plugin mạnh mẽ

Các plugin trong Kasane có thể thêm vào các lớp phủ nổi (floating overlays), chú thích dòng, ảo văn bản, gộp code (code folding), trang trí gutter và nhiều hơn nữa. Một số plugin mẫu đi kèm mà bạn có thể thử ngay bao gồm:

  • fuzzy-finder: Bộ chọn file dạng nổi sử dụng fzf.
  • color-preview: Hiển thị màu sắc trực tiếp ngay cạnh mã hex.
  • pane-manager: Quản lý chia khung kiểu tmux với phím tắt Ctrl+W.
  • image-preview: Hiển thị hình ảnh trong cửa sổ nổi neo tại vị trí con trỏ.
  • smooth-scroll: Cuộn trang có hoạt ảnh.

Mỗi plugin được biên dịch thành một gói .kpk duy nhất — sandbox hóa, có thể kết hợp và sẵn sàng cài đặt. Dưới đây là ví dụ về toàn bộ mã nguồn của plugin sel-badge (hiển thị số lượng lựa chọn trong thanh trạng thái):

kasane_plugin_sdk::define_plugin! {
manifest: "kasane-plugin.toml",
state {
#[bind(host_state::get_cursor_count(), on: dirty::BUFFER)]
cursor_count: u32 = 0,
},
slots {
STATUS_RIGHT(dirty::BUFFER) => |_ctx| {
(state.cursor_count > 1).then(|| {
auto_contribution(text(&format!(" {} sel ", state.cursor_count), default_face()))
})
},
},
}

Cài đặt và Sử dụng

Kasane yêu cầu Kakoune phiên bản 2024.12.09 hoặc mới hơn. Các gói binary giúp bạn bỏ qua việc cài đặt Rust toolchain.

Bạn có thể cài đặt Kasane thông qua các lệnh sau:

  • Arch Linux: yay -S kasane-bin
  • macOS: brew install Yus314/kasane/kasane
  • Nix: nix run github:Yus314/kasane
  • Từ nguồn: cargo install --path kasane

Sau khi cài đặt, bạn có thể chạy trực tiếp:

kasane file.txt               # Cấu hình Kakoune của bạn vẫn hoạt động
alias kak=kasane              # Thêm vào .bashrc / .zshrc

Để sử dụng backend GPU, bạn cần cài đặt với tính năng gui: cargo install --path kasane --features gui, sau đó chạy lệnh kasane --ui gui.

Hiện tại, Kasane đã ổn định như một front-end cho Kakoune và sẵn sàng sử dụng hàng ngày, trong khi API cho plugin đang tiếp tục được phát triển.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗