1 điểm bởi GN⁺ 2025-03-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • Vtm là một terminal multiplexer ảo được cung cấp dưới dạng một tệp thực thi duy nhất; nó bọc các ứng dụng CLI để tạo desktop dựa trên văn bản và nối kết giữa TUI và GUI
  • Chạy giống nhau trong cửa sổ native và console tiêu chuẩn, đồng thời hỗ trợ lồng nhau vô hạn, cho phép xếp chồng nhiều môi trường terminal
  • vtm chạy ở chế độ desktop, còn vtm --run term [<your_shell>] hoạt động như một terminal emulator độc lập
  • Với SSH, có thể kết nối bằng giao thức DirectVT theo dạng vtm ssh user@host vtm; tài liệu cho biết cách này có hiệu năng cao hơn kết nối cổ điển
  • Hỗ trợ Windows 8.1 trở lên và các nền tảng Unix-like như Linux, macOS, FreeBSD, NetBSD, OpenBSD, nhưng render cửa sổ GUI native hiện chỉ khả dụng trên Windows

Vtm làm gì

  • Vtm là một terminal multiplexer ảo, được cung cấp dưới dạng một tệp thực thi duy nhất
  • Chạy giống nhau trong cửa sổ native hoặc console tiêu chuẩn
  • Có thể bọc và chạy bất kỳ ứng dụng CLI nào
  • Hỗ trợ lồng nhau vô hạn để cấu thành môi trường desktop dựa trên văn bản
  • Mục tiêu là cung cấp một desktop dựa trên văn bản nhằm nối kết khoảng cách giữa TUI và GUI

Chế độ chạy

  • Chế độ desktop

    • Chạy vtm sẽ khởi động môi trường desktop
  • Chế độ terminal

    • Chạy vtm --run term [<your_shell>] cho phép dùng Vtm như một terminal emulator độc lập hoàn chỉnh
  • Kết nối nhị phân qua SSH

    • Ví dụ kết nối SSH dùng giao thức DirectVT như sau
    • vtm ssh user@host vtm
    • Tài liệu cho biết phương thức này có hiệu năng cao hơn kết nối cổ điển

Demo và ví dụ

  • Có cung cấp demo trên YouTube
  • Các demo AnyPlexVT2D power hiện chỉ chạy được trên Windows
    • vtm --run test
  • Ví dụ ứng dụng HybridTUI, tức HTUI, được cung cấp ở dạng khái niệm
    • vtm --run calc
    • vtm --run text
    • vtm --run gems

Nền tảng hỗ trợ và giới hạn

  • Windows

    • Hỗ trợ Windows 8.1 trở lên
    • Bao gồm Windows Server Core và Windows PE
  • Unix-like

    • Linux
    • macOS
    • FreeBSD
    • NetBSD
    • OpenBSD
    • Các họ hệ điều hành hướng POSIX
    • Có cung cấp riêng danh sách Tested Terminals
    • Hiện tại render cửa sổ GUI native chỉ khả dụng trên nền tảng Windows
    • Trên các nền tảng Unix-like cần có terminal emulator

Phân phối và tài liệu

Công nghệ sử dụng

1 bình luận

 
GN⁺ 2025-03-09
Ý kiến trên Hacker News
  • Đã có một thread lớn từ 5 năm trước: https://news.ycombinator.com/item?id=24243521

    • Liên kết chính của thread đó có vẻ đã rơi vào tay một bên có ý đồ xấu
  • Có lẽ tôi đang bỏ sót điều hiển nhiên, nhưng tôi thắc mắc không biết đây là terminal multiplexer (như tmux), hay là trình giả lập terminal xếp ô (như iTerm)

    • Không phải cả hai, mà gần với một thứ tự thân hơn. Nó giống tmux nhất, nhưng cách tương tác lại gần với việc dùng trình quản lý cửa sổ đồ họa hơn
    • Tiêu đề video YouTube nhúng trên GitHub là “Tiling Window Manager with Drag&Drop”, và xem video thì đúng là trông như một công cụ kiểu đó
      Không rõ vì sao lại bị giới hạn một cách gượng ép là chỉ mở được terminal
    • Gợi nhớ rất nhiều đến Apollo workstation
    • Tôi nghiêng về phía tiling hơn
  • Đúng là đi một vòng rồi quay lại. Người ta tạo GUI để thay thế TUI, rồi lại triển khai GUI bên trong TUI. Terminal muôn năm

    • Thực ra là làm hai lần. Nhiều terminal chạy trên Electron hoặc một giao diện kiểu trình duyệt tương tự, tức là cũng đang triển khai TUI bên trong GUI
    • Giống như sự báo thù của DESQview
    • Video demo gợi cảm giác rất mạnh của Turbo Vision từ Borland
    • Muốn làm cho đúng thì còn phải đi qua cả aalib nữa
    • Đúng vậy. Tôi không chắc liệu việc này có đang nghiêng quá nhiều về hướng có đầy đủ tính năng như GUI, đến mức làm mất đi điều vốn có được khi bắt đầu từ terminal hay không
  • Lý do tôi dùng terminal ngay từ đầu là vì không cần chuột. Tôi dùng nhiều công cụ TUI, nhưng có lẽ cái này sẽ không nằm trong số đó

    • Sẽ rất tuyệt nếu có cơ chế xếp ô và phím tắt kiểu i3/sway
  • Tôi luôn thắc mắc liệu có thể làm một trình quản lý cửa sổ kiểu TUI bên trong terminal hay không, và đây thực sự là một dự án rất ngầu. Người làm ra nó đã làm việc cực kỳ tốt

    • Tôi gọi môi trường desktop TUI của mình là Emacs với cả trình quản lý cửa sổ xếp ô %) Có lẽ Vim cũng có thể mang lại trải nghiệm tương tự
    • Demo trông ổn, nhưng tôi đã vài lần bị hớ nên vẫn thận trọng
      Chỉ đẹp thôi thì chưa đủ
    • Có giống dvtm không?
      https://www.brain-dump.org/projects/dvtm/
  • Trông rất mượt
    Tuy nhiên theo góc nhìn của tôi, nhu cầu kéo thả và chỉnh kích thước cửa sổ phần lớn giống một thói quen từ môi trường Windows hơn. Vì vậy, đây có thể là công cụ làm cho chuột những gì tmux và Neovim làm cho bàn phím
    Trong tmux, các bố cục cửa sổ tôi cần chỉ là vài bộ panel 2x2 cố định; thêm cách đổi kích thước được định sẵn và nút chuyển toàn màn hình là đủ. Khi có các công cụ hiệu quả như telescope và nvim, việc chuyển đổi nhanh đến mức không còn cần sắp mọi cửa sổ để nhìn thấy cùng lúc nữa, và người ta dựa vào mô hình trong đầu nhiều hơn là một bức tranh trực quan về những gì đang mở. Ví dụ, không cần cây thư mục ở bên trái như thường thấy trong hầu hết IDE

    • Trước đây tôi cũng nghĩ vậy. Dạo gần đây vì lý do nào đó tôi lại coi trọng mặc địnhgiảm tải nhận thức hơn, nên thích kiểu ít thao tác hơn để có thể nghĩ nhiều hơn. Giờ thì có lẽ tôi cũng dùng Eclipse khá ổn :P
  • Vài năm trước cũng có một thứ tương tự, hình như chạy trên kết nối ssh, và có cả kiểu giao diện có thể phóng to. Tôi không tìm lại được liên kết, không biết có ai nhớ ra đó là gì không

    • Tôi không hoàn toàn hiểu chính xác “phóng to” ở đây nghĩa là gì, nhưng kitty có làm kiểu đó: mở kết nối ssh bằng kitten ssh user@host, rồi nhấn phím thì một panel ssh khác sẽ mở trong cùng tab, và nếu nhớ không nhầm thì có thể “phóng to” tab đó ra toàn bộ cửa sổ
      https://sw.kovidgoyal.net/kitty/
    • Đúng là công cụ đó. Trước đây có thể truy cập qua ssh như thế này
      ssh vtm@netxs.online
      Giờ thì tên miền đó đã chết
  • Tôi ước một số web app sẽ áp dụng ngôn ngữ thiết kế thuần văn bản kiểu này

  • Tôi đang cố hiểu, nhưng nếu lấy tmux tôi đang dùng làm mốc so sánh, thì chuyển sang cái này có phải là sẽ có thêm quản lý cửa sổ/panel bằng chuột không?

  • Sẽ hay nếu một phần các ý tưởng kiểu này được đưa vào Zellij