18 คะแนน โดย GN⁺ 2024-12-27 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • เทอร์มินัลอีมูเลเตอร์ข้ามแพลตฟอร์มที่รวดเร็วและมีฟีเจอร์หลากหลาย รองรับ Native UI บน Mac/Linux และใช้การเร่งความเร็วด้วย GPU
  • มีคีย์ไบน์ที่ยืดหยุ่น ธีมสีหลากหลาย และตัวเลือกการตั้งค่าจำนวนมาก

คุณสมบัติเด่น

1. ไบนารีแบบเนทีฟ

  • ทำงานเป็นแอปพลิเคชันเนทีฟบน macOS และ Linux
    • macOS: GUI เขียนด้วย Swift และใช้ AppKit กับ SwiftUI
    • Linux: GUI เขียนด้วย Zig และใช้ GTK4 C API
  • ใช้องค์ประกอบ UI เฉพาะของแต่ละแพลตฟอร์มเพื่อรองรับฟีเจอร์ต่าง ๆ เช่น แท็บ หน้าต่างแบบแบ่ง และข้อความแสดงข้อผิดพลาด
  • รองรับคีย์ลัดคีย์บอร์ดและเมาส์มาตรฐานตามธรรมเนียมของแต่ละแพลตฟอร์ม
  • ผสานรวมฟีเจอร์เฉพาะแพลตฟอร์ม
    • macOS: Quick Look, Force Touch, API สำหรับ secure input, การกู้คืนสถานะหน้าต่างเมื่อรีสตาร์ต เป็นต้น
โฆษณา

2. ฟีเจอร์เทอร์มินัลและแอปพลิเคชันที่หลากหลาย

  • ฟีเจอร์ของเทอร์มินัล:
    • รองรับ Kitty graphics protocol, การแจ้งเตือนโหมดสว่าง/มืด, ไฮเปอร์ลิงก์ เป็นต้น
    • ช่วยให้แอปพลิเคชันเทอร์มินัลอย่าง Neovim, Zellij และอื่น ๆ ใช้งานฟีเจอร์ได้มากขึ้น
  • ฟีเจอร์ของแอปพลิเคชัน:
    • แท็บแบบเนทีฟ หน้าต่างแบบแบ่ง ดรอปดาวน์เทอร์มินัลสำหรับ macOS การสลับโหมดสว่าง/มืด เป็นต้น

3. ประสิทธิภาพ

  • Ghostty ถูกออกแบบโดยตั้งเป้าให้มีประสิทธิภาพทัดเทียมกับเทอร์มินัลอีมูเลเตอร์ที่เร็วที่สุด
  • มีความสามารถในการแข่งขันในตัวชี้วัดประสิทธิภาพหลายด้าน และปรับแต่งให้ไม่รู้สึกช้า
    • ตัวอย่าง: ความเร็วในการเริ่มต้น ความเร็วในการเลื่อน ปริมาณงาน IO อัตราเฟรม เป็นต้น
  • ผู้ใช้กลุ่มแรกประเมินว่าการปรับปรุงประสิทธิภาพของ Ghostty ทำให้การใช้งานประจำวันดีขึ้นอย่างเห็นได้ชัด
โฆษณา

สถาปัตยกรรม

  • แกนหลักของ Ghostty คือ libghostty ซึ่งเป็น ไลบรารีที่เข้ากันได้กับ C-ABI แบบข้ามแพลตฟอร์ม
    • ให้ความสามารถด้านการจำลองเทอร์มินัล การจัดการฟอนต์ และการเรนเดอร์
  • แอปพลิเคชัน GUI ทำงานบนพื้นฐานของ libghostty
    • แอป macOS: เขียนด้วย Swift ใช้ AppKit และ SwiftUI
    • แอป Linux: เขียนด้วย Zig ใช้ GTK4 C API
  • การแยกส่วนระหว่างการจำลองเทอร์มินัลกับ GUI อย่างชัดเจน ช่วยสร้างระบบนิเวศที่โปรเจกต์เทอร์มินัลอีมูเลเตอร์ต่าง ๆ สามารถนำ libghostty ไปใช้ได้
  • เป้าหมายในอนาคต:
    • ทำให้ API ของ libghostty เสถียรและเปิดตัวเป็นไลบรารีแบบสแตนด์อโลน

4 ความคิดเห็น

 
ahwjdekf 2025-02-03

ในสภาพแวดล้อมของผม wezterm มีอาการหน่วงระหว่างใช้งาน แต่พอเปลี่ยนมาใช้ ghostty ก็ใช้งานได้ดีขึ้น แม้ว่าอาจเป็นเพราะ mb pro ของผมค่อนข้างเก่าแล้วด้วย แต่ ghostty ให้ความรู้สึกที่ลื่นและเบากว่ามากครับ

 
ndrgrd 2024-12-28

กำลังคิดว่าจะลองใช้ดู แต่ถ้าอิงตาม Linux แล้ว มันมีข้อดีที่โดดเด่นกว่า Wezterm ไหม?

 
redreamer 2024-12-28

พิมพ์ภาษาเกาหลีได้ดีเหมือน Wezterm เลยครับ โดยเฉพาะบน Mac ที่แม้จะเป็นการประกอบแบบ NFC แต่ฟอนต์เกาหลีก็ดูต่างกันออกไป ตรงนี้ดีมากด้วย เหมือนการอัปเดตของ Wez จะหยุดชะงักไปแล้ว

 
GN⁺ 2024-12-27
ความคิดเห็นจาก Hacker News
  • Ghostty คือผลลัพธ์จากการทำงานอย่างทุ่มเทตลอด 2 ปีที่ผ่านมา และหวังว่าผู้คนจำนวนมากจะได้ใช้มันและสัมผัสได้ถึงความรักกับความพยายามที่ใส่ลงไปในนั้น Ghostty ไม่ได้อ้างว่าดีกว่าเทอร์มินัลอื่น ๆ เพราะแต่ละตัวมีเป้าหมายในการออกแบบและจุดแลกเปลี่ยนที่ต่างกัน มีเทอร์มินัลยอดเยี่ยมมากมาย เช่น Kitty, WezTerm, Foot, iTerm2, Rio เป็นต้น

  • Ghostty เร็วและมีประสิทธิภาพสูง โดยเฉพาะเวลาที่ต้องแสดงข้อมูลดีบักจำนวนมาก เทอร์มินัลจะไม่กลายเป็นคอขวด ซึ่งสร้างความแตกต่างได้มากบนระบบสำหรับพัฒนา

  • Ghostty เขียนด้วย Zig ได้อย่างยอดเยี่ยมมาก มีการเรนเดอร์ข้อความที่แม่นยำและมีฟีเจอร์ทุกอย่างที่จำเป็น โดยมีการนำโค้ดบางส่วนจาก Bun.stringWidth ของ Bun มาใช้

  • สงสัยว่า 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 นั้นน่าสนใจ