1 คะแนน โดย GN⁺ 2025-03-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Vtm เป็น virtual terminal multiplexer ที่มาในรูปแบบไฟล์ปฏิบัติการเดี่ยว ใช้ห่อหุ้มแอป CLI เพื่อสร้างเดสก์ท็อปแบบข้อความ และเชื่อมช่องว่างระหว่าง TUI กับ GUI
  • รันได้เหมือนกันทั้งในหน้าต่าง native และคอนโซลมาตรฐาน พร้อมรองรับ การซ้อนแบบไม่จำกัด ทำให้ใช้งานสภาพแวดล้อมเทอร์มินัลหลายชั้นซ้อนกันได้
  • vtm จะรันในโหมดเดสก์ท็อป ส่วน vtm --run term [<your_shell>] จะทำงานเป็น terminal emulator แบบสแตนด์อโลน
  • เมื่อใช้ SSH สามารถเชื่อมต่อด้วย DirectVT protocol ในรูปแบบ vtm ssh user@host vtm และระบุว่าวิธีนี้มีประสิทธิภาพสูงกว่าการเชื่อมต่อแบบดั้งเดิม
  • รองรับ Windows 8.1 ขึ้นไป รวมถึงแพลตฟอร์ม Unix-like เช่น Linux, macOS, FreeBSD, NetBSD, OpenBSD แต่ปัจจุบัน การเรนเดอร์หน้าต่าง GUI แบบ native ทำได้เฉพาะบน Windows เท่านั้น

Vtm ทำอะไรได้บ้าง

  • Vtm เป็น virtual terminal multiplexer ที่ให้มาในรูปแบบไฟล์ปฏิบัติการเดี่ยว
  • รันได้เหมือนกันทั้งในหน้าต่าง native หรือคอนโซลมาตรฐาน
  • สามารถห่อหุ้มและรัน แอป CLI ใด ๆ ก็ได้
  • รองรับการซ้อนแบบไม่จำกัด เพื่อประกอบเป็นสภาพแวดล้อมเดสก์ท็อปแบบข้อความ
  • เป้าหมายคือการมอบเดสก์ท็อปแบบข้อความที่เชื่อม ช่องว่างระหว่าง TUI กับ GUI

โหมดการรัน

  • โหมดเดสก์ท็อป

    • เมื่อรัน vtm จะเริ่มสภาพแวดล้อมเดสก์ท็อป
  • โหมดเทอร์มินัล

    • เมื่อรัน vtm --run term [<your_shell>] จะสามารถใช้ Vtm เป็น terminal emulator แบบสแตนด์อโลนเต็มรูปแบบได้
  • การเชื่อมต่อไบนารีผ่าน SSH

    • ตัวอย่างการเชื่อมต่อ SSH โดยใช้ DirectVT protocol มีดังนี้
    • vtm ssh user@host vtm
    • ระบุว่าวิธีนี้มีประสิทธิภาพสูงกว่าการเชื่อมต่อแบบดั้งเดิม

เดโมและตัวอย่าง

  • มีเดโมบน YouTube ให้ดู
  • เดโม AnyPlex และ VT2D power ปัจจุบันรันได้เฉพาะบน Windows
    • vtm --run test
  • ตัวอย่างแอป HybridTUI หรือ HTUI มีให้ในรูปแบบแนวคิด
    • vtm --run calc
    • vtm --run text
    • vtm --run gems

แพลตฟอร์มที่รองรับและข้อจำกัด

  • Windows

    • รองรับ Windows 8.1 ขึ้นไป
    • รวมถึง Windows Server Core และ Windows PE
  • Unix-like

    • Linux
    • macOS
    • FreeBSD
    • NetBSD
    • OpenBSD
    • กลุ่มระบบปฏิบัติการที่มุ่งตาม POSIX
    • มีรายการ Tested Terminals แยกไว้ต่างหาก
    • ปัจจุบัน การเรนเดอร์หน้าต่าง GUI แบบ native ทำได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น
    • บนแพลตฟอร์ม Unix-like จำเป็นต้องมี terminal emulator

การเผยแพร่และเอกสาร

เทคโนโลยีที่ใช้

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

 
GN⁺ 2025-03-09
ความคิดเห็นใน Hacker News
  • เคยมีเธรดใหญ่เมื่อ 5 ปีก่อน: https://news.ycombinator.com/item?id=24243521

    • ลิงก์หลัก ในเธรดนั้นดูเหมือนจะตกไปอยู่ในมือของผู้ไม่ประสงค์ดีแล้ว
  • อาจจะพลาดอะไรที่ชัดเจนไป แต่สงสัยว่านี่เป็น terminal multiplexer (แบบ tmux) หรือเป็น tiling terminal emulator (แบบ iTerm)

    • ไม่ใช่ทั้งสองอย่าง แต่ใกล้เคียงกับอะไรที่เป็นของตัวเองมากกว่า คล้าย tmux ที่สุด แต่รูปแบบการโต้ตอบใกล้กับการใช้งาน window manager แบบกราฟิกมากกว่า
    • ชื่อวิดีโอ YouTube ที่ฝังไว้ใน GitHub คือ “Tiling Window Manager with Drag&Drop” และดูจากวิดีโอแล้วก็เหมือนเครื่องมือแบบนั้นจริง ๆ
      ไม่รู้ว่าทำไมถึงจำกัดแบบจงใจให้เปิดได้แค่เทอร์มินัล
    • ทำให้นึกถึง Apollo workstation มาก
    • มองว่าเป็นฝั่ง tiling
  • เหมือนวนกลับมาครบรอบ สร้าง GUI เพื่อแทนที่ TUI แล้วก็กลับมาทำ GUI ไว้ใน TUI อีกที เทอร์มินัลจงเจริญ

    • เรียกว่าทำสองรอบมากกว่า เทอร์มินัลจำนวนมากรันอยู่บน Electron หรืออินเทอร์เฟซเบราว์เซอร์คล้าย ๆ กัน ดังนั้นก็เท่ากับทำ TUI ไว้ใน GUI ด้วย
    • เหมือน การแก้แค้นของ DESQview
    • ในวิดีโอเดโมให้ความรู้สึกแบบ Turbo Vision ของ Borland มาก
    • ถ้าจะให้ครบจริง ๆ ต้องผ่าน aalib สักรอบด้วย
    • ใช่ พอมันเอียงไปทางมีฟีเจอร์ครบเหมือน GUI มากเกินไป ก็ไม่แน่ใจว่าเรากำลังเสียอะไรบางอย่างที่ได้จากการเริ่มต้นบนเทอร์มินัลตั้งแต่แรกหรือเปล่า
  • เหตุผลที่ใช้เทอร์มินัลตั้งแต่แรกคือ ไม่ต้องใช้เมาส์ ใช้เครื่องมือ TUI อยู่เยอะ แต่ตัวนี้คงไม่กลายเป็นหนึ่งในนั้น

    • ถ้ามีพฤติกรรม tiling และคีย์ไบนดิงแบบ i3/sway ก็น่าจะยอดเยี่ยม
  • เคยสงสัยมาตลอดว่า window manager สไตล์ TUI ในเทอร์มินัลเป็นไปได้ไหม นี่เป็นโปรเจกต์ที่เจ๋งจริง ๆ คนทำทำงานได้ดีมาก

    • เดสก์ท็อป TUI ของผมเรียกว่า Emacs ซึ่งมีถึงขั้น tiling window manager ด้วย %) Vim ก็น่าจะให้ประสบการณ์คล้ายกันได้
    • เดโมดูดี แต่หลังจากเคยเจ็บมาหลายครั้งแล้วเลยระวังตัว
      แค่สวยอย่างเดียวไม่พอ
    • คล้าย dvtm หรือเปล่า?
      https://www.brain-dump.org/projects/dvtm/
  • ดูลื่นมาก
    แต่ในมุมมองของผม ความจำเป็นที่ต้องลากหน้าต่างไปวางและปรับขนาดนั้นค่อนข้างเป็น นิสัยจากสภาพแวดล้อม Windows ดังนั้นนี่อาจเป็นเครื่องมือที่ทำหน้าที่ต่อเมาส์ เหมือนที่ tmux และ Neovim ทำหน้าที่ต่อคีย์บอร์ด
    ใน tmux เลย์เอาต์หน้าต่างที่ต้องใช้ก็มีแค่ชุดพาเนล 2x2 แบบคงที่ไม่กี่ชุด และมีวิธีปรับขนาดที่กำหนดไว้ล่วงหน้ากับการสลับเต็มหน้าจอก็พอแล้ว พอมีเครื่องมือที่มีประสิทธิภาพอย่าง telescope และ nvim การสลับทำได้เร็วมากจนไม่จำเป็นต้องจัดทุกหน้าต่างให้มองเห็นพร้อมกัน และจะใช้โมเดลในหัวเกี่ยวกับว่ามีอะไรอยู่ มากกว่าภาพเชิงสายตา เช่น file tree ที่มักอยู่ทางซ้ายของ IDE ส่วนใหญ่ก็ไม่จำเป็น

    • เมื่อก่อนผมก็คิดแบบนั้น ตอนนี้ไม่รู้ทำไมถึงให้ความสำคัญกับ ค่าเริ่มต้น และ การลดภาระทางความคิด มากขึ้น เลยชอบแบบที่ต้องควบคุมน้อยลงและคิดได้มากขึ้น ตอนนี้อาจใช้ Eclipse ได้แบบโอเคแล้วก็ได้ :P
  • เมื่อไม่กี่ปีก่อนเคยมีอะไรคล้าย ๆ กัน และเหมือนจะมี UI ที่ซูมได้บางอย่างซึ่งทำงานบน การเชื่อมต่อ ssh ด้วย หา लिंकไม่เจอ แต่สงสัยว่ามีใครนึกออกไหม

    • ยังไม่เข้าใจเต็มที่ว่า “ซูม” หมายถึงอะไรกันแน่ แต่ kitty ทำอะไรแบบนั้นได้: เปิดการเชื่อมต่อ ssh ด้วย kitten ssh user@host แล้วกดคีย์ ก็จะเปิดพาเนล ssh อีกอันในแท็บเดียวกัน และเท่าที่จำได้สามารถ “ซูม” แท็บให้เต็มหน้าต่างได้
      https://sw.kovidgoyal.net/kitty/
    • เป็นเครื่องมือนี้แหละ เมื่อก่อนสามารถเชื่อมต่อผ่าน ssh แบบนี้ได้
      ssh vtm@netxs.online
      ตอนนี้โดเมนนั้นตายไปแล้ว
  • อยากให้เว็บแอปบางตัวนำ ภาษาการออกแบบแบบข้อความล้วน แบบนี้ไปใช้

    • http://www.coboloncogs.org/INDEX.HTM
    • สิ่งหนึ่งที่ชอบใน Windows Phone คือการ เน้นข้อความอย่างหนัก ใน UI
  • กำลังพยายามทำความเข้าใจ ถ้าใช้ tmux อยู่เป็นเกณฑ์เทียบ การเปลี่ยนมาใช้อะไรแบบนี้จะเพิ่ม การจัดการหน้าต่าง/พาเนลด้วยเมาส์ ใช่ไหม?

  • อยากให้ไอเดียบางส่วนแบบนี้เข้าไปอยู่ใน Zellij