1P by GN⁺ | ★ favorite | 댓글 1개
  • Vtm은 단일 실행 파일로 제공되는 가상 터미널 멀티플렉서이며, CLI 앱을 감싸 텍스트 기반 데스크톱을 만들고 TUI와 GUI 사이를 연결함
  • 네이티브 창과 표준 콘솔에서 동일하게 실행되며, 무한 중첩을 지원해 여러 터미널 환경을 겹쳐 사용할 수 있음
  • vtm은 데스크톱 모드로 실행되고, vtm --run term [<your_shell>]은 독립형 터미널 에뮬레이터로 동작함
  • SSH에서는 vtm ssh user@host vtm 형태로 DirectVT 프로토콜을 사용해 접속할 수 있으며, 고전적 접속보다 성능이 높다고 안내함
  • Windows 8.1 이상과 Linux, macOS, FreeBSD, NetBSD, OpenBSD 등 Unix-like 플랫폼을 지원하지만, 네이티브 GUI 창 렌더링은 현재 Windows에서만 가능함

Vtm이 하는 일

  • Vtm은 가상 터미널 멀티플렉서로, 단일 실행 파일 형태로 제공됨
  • 네이티브 창 또는 표준 콘솔에서 동일하게 실행됨
  • 어떤 CLI 앱이든 감싸서 실행할 수 있음
  • 무한 중첩을 지원해 텍스트 기반 데스크톱 환경을 구성할 수 있음
  • 목표는 TUI와 GUI 사이의 간극을 연결하는 텍스트 기반 데스크톱을 제공하는 것임

실행 모드

  • 데스크톱 모드

    • vtm을 실행하면 데스크톱 환경이 시작됨
  • 터미널 모드

    • vtm --run term [<your_shell>]을 실행하면 Vtm을 완전한 독립형 터미널 에뮬레이터로 사용할 수 있음
  • SSH 바이너리 연결

    • DirectVT 프로토콜을 이용한 SSH 접속 예시는 다음과 같음
    • vtm ssh user@host vtm
    • 이 방식은 고전적 접속보다 성능이 높다고 안내함

데모와 예제

  • YouTube 데모가 제공됨
  • AnyPlexVT2D 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 창 렌더링은 Windows 플랫폼에서만 가능함
    • Unix-like 플랫폼에서는 터미널 에뮬레이터가 필요함

배포와 문서

사용 기술

댓글과 토론

Hacker News 의견들
  • 5년 전에 큰 스레드가 있었음: https://news.ycombinator.com/item?id=24243521

    • 그 스레드의 메인 링크는 악의적인 주체에게 넘어간 것처럼 보임
  • 뻔한 걸 놓치고 있는 것 같지만, 이게 터미널 멀티플렉서인지(tmux 같은 것), 아니면 타일링 터미널 에뮬레이터인지(iTerm 같은 것) 궁금함

    • 둘 다 아니고, 자체적인 무언가에 가까움. tmux와 가장 비슷하지만, 상호작용 방식은 그래픽 창 관리자를 다루는 쪽에 더 가까움
    • GitHub에 임베드된 YouTube 영상 제목이 “Tiling Window Manager with Drag&Drop”이고, 영상을 보면 정확히 그런 도구로 보임
      왜 터미널만 열 수 있게 인위적으로 제한했는지는 모르겠음
    • Apollo 워크스테이션이 많이 떠오름
    • 타일링 쪽이라고 봄
  • 한 바퀴 돌아온 셈임. TUI를 대체하려고 GUI를 만들었고, 다시 TUI 안에 GUI를 구현했음. 터미널 만세

    • 두 번 한 셈임. 많은 터미널이 Electron이나 비슷한 브라우저 인터페이스 위에서 돌아가니, GUI 안에 TUI도 구현한 것임
    • DESQview의 복수 같음
    • 데모 영상에서 Borland의 Turbo Vision 느낌이 많이 남
    • 제대로 하려면 aalib도 한번 거쳐야 함
    • 맞음. 이게 GUI만큼 기능을 갖추는 쪽으로 너무 기울다 보니, 애초에 터미널에서 시작해서 얻는 무언가를 잃는 건 아닌지 모르겠음
  • 터미널을 쓰는 이유가 애초에 마우스가 필요 없어서임. TUI 도구를 많이 쓰지만, 이건 그중 하나가 되진 않을 듯함

    • i3/sway식 타일링 동작과 키 바인딩이 있으면 훌륭할 듯함
  • 터미널 안에서 TUI 스타일 창 관리자가 가능한지 늘 궁금했는데, 이건 정말 멋진 프로젝트임. 만든 사람이 일을 아주 잘했음

    • 내 TUI 데스크톱 환경은 타일링 창 관리자까지 갖춘 Emacs라고 부름 %) Vim도 비슷한 경험을 제공할 수 있을 듯함
    • 데모는 좋아 보이지만, 몇 번 데인 뒤라 조심스러움
      예쁘기만 해서는 안 됨
    • dvtm 같은 건가?
      https://www.brain-dump.org/projects/dvtm/
  • 아주 부드러워 보임
    다만 내 관점에서는 창을 끌어다 놓고 크기를 조절해야 하는 필요가 큰 건 Windows 환경의 습관에 가까움. 그래서 이건 마우스에게 tmux와 Neovim이 키보드에게 하는 역할을 하는 도구일지도 모름
    tmux에서는 필요한 창 레이아웃이 고정된 2x2 패널 몇 세트이고, 미리 정해둔 크기 조절 방식과 전체 화면 토글이면 충분함. telescope와 nvim 같은 효율적인 도구가 있으면 전환이 워낙 빠르기 때문에 모든 창을 눈에 보이게 정렬할 필요가 사라지고, 무엇이 있는지에 대해 시각적 그림보다 머릿속 모델을 더 많이 쓰게 됨. 예를 들어 대부분의 IDE 왼쪽에 흔한 파일 트리는 필요 없음

    • 예전에는 나도 그렇게 생각했음. 요즘은 웬일인지 기본값인지 부하 감소를 더 중시해서, 덜 조작하고 더 생각할 수 있는 쪽을 선호함. 지금은 Eclipse도 괜찮게 쓸 수 있을 듯함 :P
  • 몇 년 전에 비슷한 게 있었고, ssh 연결 위에서 동작하면서 확대 가능한 UI 비슷한 것도 있었던 것 같음. 링크를 못 찾겠는데, 혹시 떠오르는 것 있는지 궁금함

    • “확대”가 정확히 뭘 뜻하는지는 완전히 이해 못 했지만, kitty가 그런 걸 함: kitten ssh user@host로 ssh 연결을 열고 키를 누르면 같은 탭에 또 다른 ssh 패널이 열리며, 기억상 탭을 전체 창으로 “확대”할 수 있음
      https://sw.kovidgoyal.net/kitty/
    • 바로 이 도구였음. 예전에는 이렇게 ssh로 접속할 수 있었음
      ssh vtm@netxs.online
      지금은 그 도메인이 죽었음
  • 일부 웹 앱이 이런 순수 텍스트 디자인 언어를 채택했으면 좋겠음

  • 이해하려는 중인데, 비교 기준으로 내가 tmux를 쓰고 있다면 이런 걸로 바꾸면 마우스 기반 창/패널 관리가 추가되는 건가?

  • 이런 아이디어 중 일부가 Zellij에 들어가면 좋겠음