18 điểm bởi GN⁺ 2024-12-27 | 4 bình luận | Chia sẻ qua WhatsApp
  • Trình giả lập terminal đa nền tảng nhanh và giàu tính năng. Hỗ trợ UI native trên macOS/Linux và sử dụng tăng tốc GPU
  • Cung cấp keybinding linh hoạt, nhiều chủ đề màu sắc và rất nhiều tùy chọn cấu hình

Tính năng chính

1. Binary native

  • Hoạt động như ứng dụng native trên macOS và Linux
    • macOS: GUI được viết bằng Swift và sử dụng AppKit cùng SwiftUI
    • Linux: GUI được viết bằng Zig và sử dụng GTK4 C API
  • Sử dụng các thành phần UI đặc trưng của từng nền tảng để triển khai các tính năng như tab, cửa sổ chia đôi, thông báo lỗi, v.v.
  • Hỗ trợ các phím tắt bàn phím và chuột tiêu chuẩn theo đúng quy ước của từng nền tảng
  • Tích hợp các tính năng riêng theo từng nền tảng
    • macOS: Quick Look, Force Touch, API nhập liệu an toàn, khôi phục trạng thái cửa sổ sau khi khởi động lại, v.v.
Quảng cáo

2. Nhiều tính năng cho terminal và ứng dụng

  • Tính năng terminal:
    • Hỗ trợ Kitty graphics protocol, thông báo chế độ sáng/tối, hyperlink, v.v.
    • Cho phép tận dụng thêm nhiều khả năng trong các ứng dụng terminal như Neovim, Zellij, v.v.
  • Tính năng ứng dụng:
    • Tab native, cửa sổ chia đôi, terminal thả xuống cho macOS, chuyển đổi chế độ sáng/tối, v.v.

3. Hiệu năng

  • Ghostty được thiết kế với mục tiêu đạt hiệu năng ngang hàng với những trình giả lập terminal nhanh nhất
  • Có sức cạnh tranh trên nhiều chỉ số hiệu năng và được tối ưu để không tạo cảm giác chậm
    • Ví dụ: tốc độ khởi động, tốc độ cuộn, thông lượng IO, tốc độ khung hình, v.v.
  • Những người dùng đầu tiên đánh giá rằng các cải thiện hiệu năng của Ghostty tạo ra khác biệt rõ rệt trong sử dụng hằng ngày
Quảng cáo

Kiến trúc

  • Cốt lõi của Ghostty là libghostty, một thư viện tương thích C-ABI đa nền tảng
    • Cung cấp các chức năng giả lập terminal, xử lý phông chữ và render
  • Ứng dụng GUI hoạt động dựa trên libghostty
    • Ứng dụng macOS: viết bằng Swift, sử dụng AppKit và SwiftUI
    • Ứng dụng Linux: viết bằng Zig, sử dụng GTK4 C API
  • Việc tách bạch rõ ràng giữa giả lập terminal và GUI giúp hình thành một hệ sinh thái nơi nhiều dự án trình giả lập terminal khác nhau có thể tận dụng libghostty
  • Mục tiêu trong tương lai:
    • Ổn định hóa API của libghostty và phát hành như một thư viện độc lập

4 bình luận

 
ahwjdekf 2025-02-03

wezterm thì trong môi trường của tôi có hiện tượng bị lag khi đang dùng, nhưng đổi sang ghostty thì thấy dùng ổn hơn hẳn. Có thể là vì chiếc MB Pro của tôi đã khá cũ, nhưng ghostty cho cảm giác mượt mà và nhẹ hơn rất nhiều.

 
ndrgrd 2024-12-28

Tôi đang nghĩ đến việc thử, nhưng xét trên Linux thì nó có ưu điểm nổi bật nào so với Wezterm không?

 
redreamer 2024-12-28

Giống như Wezterm, nó hỗ trợ gõ tiếng Hàn khá tốt. Đặc biệt trên Mac, việc font tiếng Hàn hiển thị khác nhau tùy theo tổ hợp NFC cũng khá hay. Có vẻ như việc cập nhật của Wez đang bị chững lại.

 
GN⁺ 2024-12-27
Ý kiến trên Hacker News
  • Ghostty là thành quả của 2 năm làm việc đầy tâm huyết, và hy vọng nhiều người khi sử dụng sẽ cảm nhận được tình yêu cùng công sức đặt vào đó. Ghostty không cho rằng mình vượt trội hơn các terminal khác; mỗi terminal đều có mục tiêu thiết kế và những đánh đổi riêng. Có rất nhiều terminal tuyệt vời như Kitty, WezTerm, Foot, iTerm2, Rio, v.v.

  • Ghostty nhanh và có hiệu năng rất tốt, đặc biệt khi xuất ra nhiều thông tin debug thì terminal không trở thành nút thắt cổ chai. Điều này tạo ra khác biệt lớn trên hệ thống phát triển.

  • Ghostty được viết bằng mã Zig rất chỉn chu, có khả năng render văn bản chính xác và đầy đủ mọi tính năng cần thiết. Nó dùng một phần mã từ Bun.stringWidth của Bun.

  • Có người thắc mắc liệu Ghostty có khái niệm Session/Workspace hay không, và dường như có thể học hỏi từ cách tích hợp giữa Alacritty và tmux.

  • Ghostty có một tính năng ẩn gọi là "quake mode", có thể thiết lập bằng một key binding cụ thể trên macOS. Không có tùy chọn đặt chiều cao mặc định cho cửa sổ "quick terminal", nhưng có thể kéo cửa sổ để điều chỉnh.

  • Sau khi thử nhiều công cụ terminal emulator khác nhau, có người đã chọn wave terminal và đưa ra danh sách các công cụ có thể dùng trên macOS và Linux. Họ không dùng Warp vì đó là một sản phẩm VC.

  • Một trang cộng đồng hỗ trợ tạo cấu hình cho Ghostty rất hữu ích.

  • Ghostty là phần mềm mã nguồn mở chất lượng cao mới ra mắt gần đây, mang lại hy vọng về một tương lai không cần đăng ký thuê bao. Cảm ơn Mitchell.

  • Ban đầu có người hoài nghi về cụm từ "platform-native UI", nhưng thấy thú vị khi trên Linux nó dùng GTK, còn trên macOS dùng SwiftUI. Việc thử một terminal emulator mới lúc nào cũng vui. Hơi tiếc là nó không hỗ trợ font bitmap.

  • Một bài viết trên blog giải thích một phần phép màu của Ghostty khá thú vị.