Term.Everything นำแอปพลิเคชัน GUI เข้าสู่ Terminal ผ่าน Custom Wayland Compositor

ทีมชุมชน BigGo
Term.Everything นำแอปพลิเคชัน GUI เข้าสู่ Terminal ผ่าน Custom Wayland Compositor

โปรเจกต์โอเพนซอร์สใหม่ที่เรียกว่า Term.Everything ได้ดึงดูดความสนใจจากนักพัฒนาด้วยการทำให้แอปพลิเคชัน GUI สามารถทำงานได้โดยตรงภายในหน้าต่าง terminal สร้างขึ้นใหม่ทั้งหมดในรูปแบบ Wayland compositor ที่แสดงผลไปยัง terminal แทนที่จะเป็นจอภาพ เครื่องมือนี้ช่วยให้ผู้ใช้สามารถเรียกใช้ทุกอย่างตั้งแต่เว็บเบราว์เซอร์ไปจนถึงวิดีโอเกมผ่านการเชื่อมต่อ SSH

สถาปัตยกรรมทางเทคนิค:

  • เทคโนโลยีหลัก: Wayland compositor ที่สร้างขึ้นเอง
  • ภาษาโปรแกรม: TypeScript กับ Bun engine, C++ เพียงเล็กน้อย
  • วิธีการแสดงผล: อักขระแบบ ASCII (เทอร์มินัลพื้นฐาน), ภาพความละเอียดเต็ม ( Kitty , iTerm2 )
  • การพึ่งพา: ไม่จำเป็นต้องใช้ libwayland dependencies
  • สถานะปัจจุบัน: เวอร์ชันเบต้า (เวอร์ชัน 0.5.1 พร้อมใช้งาน)

แนวทางปฏิวัติสำหรับการคอมพิวติ้งระยะไกล

Term.Everything ใช้แนวทางที่แตกต่างโดยพื้นฐานเมื่อเปรียบเทียบกับโซลูชันรีโมทเดสก์ท็อปแบบดั้งเดิม แทนที่จะส่งต่อเซสชันเดสก์ท็อปทั้งหมด มันจะเรนเดอร์แอปพลิเคชัน GUI แต่ละตัวเป็นเอาต์พุต terminal โดยใช้วิธีการแสดงผลที่หลากหลาย สำหรับ terminal พื้นฐาน มันจะแปลงกราฟิกเป็นตัวอักษรแบบ ASCII ในขณะที่ terminal ขั้นสูงที่รองรับโปรโตคอลรูปภาพสามารถแสดงแอปพลิเคชันในความละเอียดเต็ม ความยืดหยุ่นนี้ทำให้มันมีคุณค่าอย่างยิ่งสำหรับการจัดการเซิร์ฟเวอร์ระยะไกลและสภาพแวดล้อมแบบ containerized ที่การส่งต่อ GUI แบบดั้งเดิมอาจไม่เหมาะสม

ชุมชนได้แสดงความกระตือรือร้นอย่างน่าทึ่งสำหรับการประยุกต์ใช้อย่างสร้างสรรค์ ผู้ใช้ได้สาธิตการเรียกใช้ Firefox, วิดีโอเพลเยอร์ และแม้แต่เกมคลาสสิกอย่าง Doom ภายในเซสชัน terminal สำเร็จแล้ว การสาธิตที่น่าประทับใจอย่างหนึ่งเกี่ยวข้องกับการเรียกใช้ toolchain ทั้งหมดผ่าน SSH ไปยัง iPad เปิดความเป็นไปได้ใหม่สำหรับเวิร์กโฟลว์การพัฒนาบนมือถือ

แอปพลิเคชันที่รองรับ:

  • เว็บเบราว์เซอร์ ( Firefox ที่ทำการสาธิต)
  • เครื่องเล่นวิดีโอและแอปพลิเคชันสื่อ
  • เกมคลาสสิก (ตอน shareware ของ Doom ยืนยันว่าใช้งานได้)
  • ตัวจัดการไฟล์และยูทิลิตี้ระบบ
  • เครื่องมือพัฒนา (ความเข้ากันได้กับ VS Code อยู่ระหว่างดำเนินการ)
  • แอปพลิเคชัน GUI ใดๆ ที่รองรับโปรโตคอล Wayland

นวัตกรรมทางเทคนิคและข้อพิจารณาด้านประสิทธิภาพ

รากฐานทางเทคนิคของโปรเจกต์ในฐานะ custom Wayland compositor ทำให้มันแตกต่างจากโซลูชันเฉพาะเบราว์เซอร์อย่าง Carbonyl หรือ Browsh ขอบเขตที่กว้างขึ้นนี้ช่วยให้แอปพลิเคชัน GUI เกือบทุกตัวสามารถทำงานได้ แม้ว่าจะมีข้อจำกัดบางประการ การจัดการอินพุตมีความท้าทายเฉพาะตัวเนื่องจาก terminal ให้เฉพาะเหตุการณ์ keydown โดยไม่มีสัญญาณ keyup ที่สอดคล้องกัน ต้องใช้วิธีแก้ปัญหาอย่างสร้างสรรค์สำหรับแอปพลิเคชันที่ต้องพึ่งพาการกดปุ่มอย่างต่อเนื่อง

ประสิทธิภาพขึ้นอยู่โดยตรงกับการตั้งค่าความละเอียดของ terminal ที่ความละเอียดต่ำอย่าง 640x480 ระบบทำงานได้อย่างราบรื่น แต่เอาต์พุต 4K สามารถส่งผลกระทบอย่างมีนัยสำคัญต่อทรัพยากรระบบ นักพัฒนาระบุว่าเสียงพัดลมจะเป็นที่สังเกตได้ที่ความละเอียดสูงขึ้น บ่งชี้ถึงการใช้ CPU อย่างมากสำหรับกระบวนการเรนเดอร์

ข้อมูลจำเพาะด้านประสิทธิภาพ:

  • ประสิทธิภาพที่เหมาะสม: ความละเอียด 640x480
  • การใช้ทรัพยากรสูง: ความละเอียด 4K (ทำให้เกิดเสียงพัดลมดังอย่างมาก)
  • การรองรับแพลตฟอร์ม: Linux พร้อมระบบโฮสต์ X11 และ Wayland
  • การเข้าถึงระยะไกล: ทำงานผ่านการเชื่อมต่อ SSH
  • ข้อจำกัดของการป้อนข้อมูล: ไม่มีเหตุการณ์ keyup ต้องใช้วิธีแก้ปัญหาสำหรับการกดปุ่มอย่างต่อเนื่อง

การประยุกต์ใช้งานจริงและการพัฒนาในอนาคต

นอกเหนือจากปัจจัยความแปลกใหม่แล้ว Term.Everything ยังจัดการกับสถานการณ์ในโลกแห่งความจริงที่โซลูชันรีโมทเดสก์ท็อปแบบดั้งเดิมไม่เพียงพอ ผู้ใช้ได้ระบุการประยุกต์ใช้ในการจัดการ Docker container, การดูแลเซิร์ฟเวอร์ระยะไกล และสถานการณ์ที่มีเฉพาะการเข้าถึง SSH เท่านั้น เครื่องมือนี้พิสูจน์แล้วว่ามีประโยชน์อย่างยิ่งสำหรับการเข้าถึงอินเทอร์เฟซการดูแลระบบแบบเว็บบนระบบระยะไกลโดยไม่ต้องมีการตั้งค่า VPN หรือ port forwarding ที่ซับซ้อน

ฉันเคยใช้ tunnel Netscape Navigator ผ่าน SSH ไปยังเดสก์ท็อป Commodore Amiga ของฉันผ่าน Xorg server ย้อนกลับไปในยุคอินเทอร์เน็ตโมเด็มโทรศัพท์ 56K

แผนงานโปรเจกต์บ่งชี้ถึงแผนการที่ทะเยอทะยาน ก้าวหน้าจาก Term some things ผ่าน Term most things ไปสู่การบรรลุ Term everything ในที่สุด การพัฒนาปัจจุบันมุ่งเน้นไปที่การขยายความเข้ากันได้ของแอปพลิเคชันและการใช้งานโปรโตคอล Wayland ที่ขาดหายไปอย่างการรองรับคลิปบอร์ด นักพัฒนาได้แสดงความสนใจในการสร้างเวอร์ชัน macOS แม้ว่านี่จะต้องใช้แนวทางที่แตกต่างโดยใช้ virtual display API หรือ accessibility framework

โปรเจกต์นี้แสดงถึงจุดตัดที่น่าสนใจระหว่างประโยชน์ใช้สอยจริงและศิลปะทางเทคนิค สาธิตว่าแนวทางสร้างสรรค์ต่อโปรโตคอลที่จัดตั้งขึ้นแล้วสามารถแก้ไขความท้าทายการคอมพิวติ้งสมัยใหม่ในขณะที่ให้ประสบการณ์ที่สนุกสนานอย่างปฏิเสธไม่ได้

อ้างอิง: Term.Everything