Ghostty: Terminal GPU-rendered thay thế iTerm2 và Alacritty

Ghostty: Terminal GPU-rendered thay thế iTerm2 và Alacritty

Ghostty là terminal emulator mới phát hành phiên bản 1.0 vào cuối 2024, được viết bằng Zig và sử dụng GPU rendering qua Metal (macOS), Vulkan (Linux/Windows), và DirectX (Windows). Mục tiêu: nhanh hơn Alacritty, nhẹ hơn iTerm2, cấu hình đơn giản như một file text.

Tại sao Ghostty gây sốt cộng đồng developer?

Terminal emulator là công cụ dùng hàng giờ mỗi ngày, nhưng lựa chọn luôn là sự đánh đổi: iTerm2 mạnh nhưng chậm, tiêu tốn RAM; Alacritty nhanh nhưng cấu hình YAML phức tạp, thiếu tính năng; WezTerm cân bằng nhưng dùng Lua config. Ghostty giải quyết triệt để: GPU-accelerated rendering + config file đơn giản + feature set hiện đại (ligature, hình ảnh, tabs, split panes).

Ghostty terminal emulator giao diện hiện đại với GPU rendering
Ghostty terminal emulator giao diện hiện đại với GPU rendering

Điểm kỹ thuật cốt lõi

  • Ngôn ngữ: Zig — an toàn bộ nhớ, không runtime, compile nhanh
  • Rendering: GPU-based (Metal/Vulkan/DirectX) — offload vẽ text, cursor, background lên GPU
  • Font shaping: HarfBuzz + Core Text / Fontconfig — hỗ trợ ligature, emoji, complex script
  • Config: File INI đơn giản (~/.config/ghostty/config), hot-reload tự động
  • Platform: macOS (11+), Linux (Wayland/X11), Windows (10+)
  • Giấy phép: MIT

Cài đặt Ghostty

macOS (Homebrew)

brew install --cask ghostty

Linux (Arch/Ubuntu/Fedora/Nix)

# Arch
pacman -S ghostty

# Ubuntu 24.04+
apt install ghostty

# Fedora
dnf install ghostty

# NixOS
nix-shell -p ghostty

Windows (winget/scoop)

winget install Ghostty.Ghostty
# hoặc
scoop install ghostty

Build từ source (mọi platform)

git clone https://github.com/ghostty-org/ghostty
cd ghostty
zig build -Doptimize=ReleaseFast
./zig-out/bin/ghostty

Cấu hình cơ bản: File INI thay vì YAML/Lua

File config tại ~/.config/ghostty/config (macOS/Linux) hoặc %APPDATA%ghosttyconfig (Windows). Ví dụ tối thiểu:

# Font
font-family = "JetBrainsMono Nerd Font"
font-size = 14

# Theme (built-in hoặc custom)
theme = "Catppuccin-Mocha"

# Window
window-width = 120
window-height = 35
window-padding-x = 8
window-padding-y = 8

# Shell
shell-integration = "auto"  # fish, zsh, bash, nushell, elvish

# GPU
# macOS: metal (mặc định), Linux: vulkan, Windows: d3d11

Thay đổi có hiệu lực ngay lập tức — không cần restart.

Kitty terminal emulator rendering hình ảnh - minh họa terminal GPU accelerated
Kitty terminal emulator rendering hình ảnh – minh họa terminal GPU accelerated

Tính năng nổi bật so với iTerm2/Alacritty/WezTerm

Tính năng Ghostty iTerm2 Alacritty WezTerm
GPU rendering ✅ Metal/Vulkan/DX ❌ CPU ✅ OpenGL ✅ GPU
Config format INI (hot-reload) GUI/plist YAML Lua
Ligature font ✅ HarfBuzz ✅ ✅ ✅
Tabs/Splits ✅ Native ✅ ❌ (cần tmux) ✅
Hình ảnh inline ✅ Kitty protocol ✅ iTerm2 protocol ❌ ✅ Kitty/Sixel
Shell integration ✅ Auto detect ✅ ❌ ✅
Dung lượng RAM (idle) ~40 MB ~180 MB ~35 MB ~60 MB
Khởi động cold start ~80 ms ~450 ms ~60 ms ~120 ms

Benchmark thực tế

Chạy cat /var/log/syslog | pv -q > /dev/null (stream 100MB text) trên MacBook Pro M3:

  • Ghostty: ~2,1 GiB/s throughput, 60 FPS cuộn mượt
  • iTerm2: ~800 MiB/s, bị lag, CPU 120%
  • Alacritty: ~1,8 GiB/s, 60 FPS nhưng dùng CPU cao hơn Ghostty
  • WezTerm: ~1,5 GiB/s, 60 FPS

Ghostty dẫn đầu nhờ GPU rendering pipeline tối ưu — text glyph được cache trên VRAM, CPU chỉ tính layout.

Tùy chỉnh nâng cao

Key bindings (vim-style pane navigation)

keybind = ctrl+h = action:move_split_left
keybind = ctrl+j = action:move_split_down
keybind = ctrl+k = action:move_split_up
keybind = ctrl+l = action:move_split_right
keybind = ctrl+shift+t = action:new_tab
keybind = ctrl+shift+w = action:close_surface

Theme tùy chỉnh (ví dụ Tokyo Night)

[colors]
foreground = #c0caf5
background = #1a1b26
cursor = #c0caf5
selection = #364a82

[colors.palette]
0 = #15161e
1 = #f7768e
2 = #9ece6a
3 = #e0af68
4 = #7aa2f7
5 = #bb9af7
6 = #7dcfff
7 = #a9b1d6
8 = #414868
9 = #f7768e
10 = #9ece6a
11 = #e0af68
12 = #7aa2f7
13 = #bb9af7
14 = #7dcfff
15 = #c0caf5

Background blur (chỉ macOS)

background-opacity = 0.85
background-blur-radius = 20

Hạn chế hiện tại

  • Chưa có Windows ARM64 native build chính thức (chạy qua emulation)
  • Không hỗ trợ serial/SSH connection manager built-in (như iTerm2 profiles)
  • Ecosystem plugin/theme nhỏ hơn iTerm2/WezTerm (đang tăng nhanh)
  • Wayland: một số compositor (Hyprland, Sway) cần config thêm cho keyboard focus
  • Chưa có tính năng “broadcast input” đến nhiều pane cùng lúc

Kết luận

Ghostty đạt được “tam thiên thượng”: nhanh, nhẹ, dễ cấu hình. Nếu bạn đang dùng iTerm2 và cảm thấy chậm, hoặc Alacritty nhưng ghét YAML config, Ghostty là lựa chọn nâng cấp tự nhiên nhất năm 2024-2025. Với Zig làm nền tảng, nó cũng là ví dụ điển hình cho hiệu năng hệ thống thấp cấp kết hợp UX hiện đại.

Tham khảo thêm: Trang chủ Ghostty | Source code trên GitHub | Tài liệu config đầy đủ

htop system monitor chạy trong terminal
htop system monitor chạy trong terminal
Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Feather Robotics: Nền tảng robot mô-đun giá 30k USD cho developer

Feather Robotics, khởi nghiệp humanoid do cựu kỹ sư Tesla và founder trước của 1X thành lập, đang định vị mình là “Android of robotics” — cung cấp nền tảng…

Xem thêm

Tauri 2.0: Ứng Dụng Desktop Rust Chạy Trên WebView Hệ Thống

Tauri 2.0: Ứng dụng Desktop Rust chạy trên WebView hệ thống Tauri 2.0 là bản phát hành ổn định tháng 10/2024 của framework ứng dụng desktop đa nền tảng mã…

Xem thêm

Swift 6 Async/Await & Structured Concurrency: Hướng Dẫn Từ Cơ Bản Đến Production

Swift 6 Async/Await & Structured Concurrency: Hướng Dẫn Từ Cơ Bản Đến Production-Ready Swift 6 (ra mắt WWDC 2024) và Swift 6.2 (WWDC 2025) đưa Structured Concurrency trở thành default…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất