Vtm - Môi trường desktop dựa trên văn bản
(github.com/directvt)- 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
vtmchạy ở chế độ desktop, cònvtm --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
vtmsẽ khởi động môi trường desktop
- Chạy
-
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
- Chạy
-
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 AnyPlex và VT2D 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 calcvtm --run textvtm --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ó cung cấp tải xuống binary cho Linux, Windows, macOS
- Linux: x86_64, arm64, x86, arm32
- Windows: x86_64, arm64, x86
- macOS: x86_64, arm64
- Các mục tài liệu
1 bình luận
Ý 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
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 rõ vì sao lại bị giới hạn một cách gượng ép là chỉ mở được terminal
Đú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
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ố đó
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
Chỉ đẹp thôi thì chưa đủ
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
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
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/
ssh vtm@netxs.onlineGiờ 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