18P by neo 21일전 | ★ favorite | 댓글 3개
  • 빠르고 다양한 기능을 갖춘 크로스 플랫폼 터미널 에뮬레이터. 맥/리눅스에서 네이티브 UI를 지원하며 GPU 가속을 사용
  • 유연한 키바인딩, 다양한 컬러 테마, 수많은 설정 옵션 제공

주요 특징

1. 네이티브 바이너리

  • macOS와 Linux에서 네이티브 애플리케이션으로 작동
    • macOS: GUI는 Swift로 작성되었으며 AppKit과 SwiftUI를 사용
    • Linux: GUI는 Zig로 작성되었으며 GTK4 C API를 사용
  • 플랫폼 고유의 UI 구성 요소를 사용하여 탭, 분할창, 오류 메시지 등의 기능을 구현
  • 표준 키보드 및 마우스 단축키를 플랫폼 관례에 맞게 지원
  • 플랫폼별 고유 기능 통합
    • macOS: Quick Look, Force Touch, 안전한 입력 API, 재시작 시 창 상태 복구 등

2. 다양한 터미널 및 애플리케이션 기능

  • 터미널 기능:
    • Kitty 그래픽 프로토콜, 라이트/다크 모드 알림, 하이퍼링크 등을 지원
    • Neovim, Zellij 등 터미널 애플리케이션에서 더 많은 기능 활용 가능
  • 애플리케이션 기능:
    • 네이티브 탭, 분할창, macOS용 드롭다운 터미널, 라이트/다크 모드 전환 등

3. 성능

  • Ghostty는 가장 빠른 터미널 에뮬레이터들과 동등한 수준의 성능을 목표로 설계
  • 다양한 성능 지표에서 경쟁력을 갖추며, 느리게 느껴지지 않도록 최적화
    • 예: 시작 속도, 스크롤 속도, IO 처리량, 프레임 속도 등
  • 초기 사용자는 Ghostty의 성능 개선이 일상적인 사용에서 눈에 띄게 향상된다고 평가

아키텍처

  • Ghostty의 핵심은 크로스 플랫폼 C-ABI 호환 라이브러리libghostty
    • 터미널 에뮬레이션, 폰트 처리, 렌더링 기능 제공
  • GUI 애플리케이션은 libghostty를 기반으로 작동
    • macOS 앱: Swift로 작성, AppKit과 SwiftUI 사용
    • Linux 앱: Zig로 작성, GTK4 C API 사용
  • 터미널 에뮬레이션과 GUI 간의 명확한 분리를 통해 다양한 터미널 에뮬레이터 프로젝트가 libghostty를 활용할 수 있는 생태계 조성 가능
  • 향후 목표:
    • libghostty의 API를 안정화하고 독립형 라이브러리로 출시

써볼까 생각 중인데 리눅스 기준으로 Wezterm에 비해 특출난 장점이 있나요?

Wezterm 처럼 한글 타이핑이 잘 되더군요. 특히 맥에서 NFC 조합에 에 따라 한글 폰트가 달리 보이는 것도 좋네요. Wez 업데이트가 정체된 듯

Hacker News 의견
  • Ghostty는 지난 2년간의 열정적인 작업의 결과물이며, 많은 사람들이 이를 사용하면서 그 안에 담긴 사랑과 노력을 느끼길 바람. Ghostty는 다른 터미널들과 비교하여 우월하다고 주장하지 않으며, 각기 다른 설계 목표와 절충점을 가지고 있음. Kitty, WezTerm, Foot, iTerm2, Rio 등 다양한 훌륭한 터미널들이 존재함.

  • Ghostty는 빠르고 성능이 뛰어나며, 특히 많은 디버깅 정보를 출력할 때 터미널이 병목이 되지 않음. 개발 시스템에서 큰 차이를 만들어 줌.

  • Ghostty는 텍스트 렌더링이 정확하고 필요한 모든 기능을 갖춘 매우 잘 작성된 Zig 코드로 이루어져 있음. Bun의 Bun.stringWidth에서 일부 코드를 사용함.

  • Ghostty에 Session/Workspace 개념이 있는지 궁금하며, Alacritty와 tmux의 통합 방식에서 배울 점이 있을 것 같음.

  • Ghostty에는 "quake mode"라는 숨겨진 기능이 있으며, macOS에서 특정 키 바인딩으로 설정 가능함. "quick terminal" 창의 기본 높이를 설정할 수 있는 옵션은 없지만 창을 드래그하여 조정할 수 있음.

  • 여러 터미널 에뮬레이터 도구를 시도한 후 wave terminal을 선택했으며, MacOS와 Linux에서 사용할 수 있는 도구 목록을 제공함. Warp는 VC 제품이라서 사용하지 않음.

  • Ghostty 설정을 생성하는 데 도움이 되는 커뮤니티 사이트가 유용함.

  • Ghostty는 최근에 출시된 고품질 오픈 소스 소프트웨어로, 구독 없는 미래에 대한 희망을 줌. Mitchell에게 감사함.

  • "platform-native UI"라는 표현에 처음에는 회의적이었으나, Linux에서는 GTK, MacOS에서는 SwiftUI를 사용한다는 점에서 흥미로웠음. 새로운 터미널 에뮬레이터를 시도하는 것은 항상 재미있음. Bitmap 폰트를 지원하지 않는 점은 아쉬움.

  • Ghostty의 일부 마법을 설명하는 블로그 포스트가 흥미로움.