Vtm - ambiente de desktop baseado em texto
(github.com/directvt)- Vtm é um multiplexador de terminal virtual distribuído como um único executável, que envolve apps de CLI para criar um desktop baseado em texto e faz a ponte entre TUI e GUI
- Roda da mesma forma em janelas nativas e no console padrão, e oferece aninhamento infinito, permitindo sobrepor vários ambientes de terminal
vtmroda no modo desktop, evtm --run term [<your_shell>]funciona como um emulador de terminal independente- Em SSH, é possível conectar no formato
vtm ssh user@host vtmusando o protocolo DirectVT, com a indicação de desempenho superior ao da conexão clássica - Suporta Windows 8.1 ou superior e plataformas Unix-like como Linux, macOS, FreeBSD, NetBSD e OpenBSD, mas a renderização de janelas GUI nativas no momento só é possível no Windows
O que o Vtm faz
- Vtm é um multiplexador de terminal virtual, distribuído na forma de um único executável
- Roda da mesma forma em janelas nativas ou no console padrão
- Pode envolver e executar qualquer app de CLI
- Suporta aninhamento infinito para montar um ambiente de desktop baseado em texto
- O objetivo é oferecer um desktop baseado em texto que faça a ponte sobre a lacuna entre TUI e GUI
Modos de execução
-
Modo desktop
- Ao executar
vtm, o ambiente de desktop é iniciado
- Ao executar
-
Modo terminal
- Ao executar
vtm --run term [<your_shell>], é possível usar o Vtm como um emulador de terminal totalmente independente
- Ao executar
-
Conexão binária via SSH
- O exemplo de conexão SSH usando o protocolo DirectVT é o seguinte
vtm ssh user@host vtm- É informado que esse método tem desempenho superior ao da conexão clássica
Demos e exemplos
- Há uma demo no YouTube
- As demos AnyPlex e VT2D power atualmente só podem ser executadas no Windows
vtm --run test
- Exemplos de apps HybridTUI, ou seja, HTUI, são fornecidos em formato conceitual
vtm --run calcvtm --run textvtm --run gems
Plataformas suportadas e limitações
-
Windows
- Suporte a Windows 8.1 ou superior
- Inclui Windows Server Core e Windows PE
-
Unix-like
- Linux
- macOS
- FreeBSD
- NetBSD
- OpenBSD
- Família de sistemas operacionais voltados a POSIX
- A lista Tested Terminals é fornecida separadamente
- Atualmente, a renderização de janelas GUI nativas só é possível na plataforma Windows
- Em plataformas Unix-like, é necessário um emulador de terminal
Distribuição e documentação
- Downloads de binários são fornecidos para Linux, Windows e macOS
- Linux: x86_64, arm64, x86, arm32
- Windows: x86_64, arm64, x86
- macOS: x86_64, arm64
- Itens de documentação
1 comentários
Opiniões no Hacker News
Houve uma thread grande 5 anos atrás: https://news.ycombinator.com/item?id=24243521
Parece que estou deixando passar algo óbvio, mas fico me perguntando se isto é um multiplexador de terminal (como o tmux) ou um emulador de terminal com tiling (como o iTerm)
Não sei por que limitaram artificialmente para só poder abrir terminais
É como dar a volta completa. Criamos GUIs para substituir TUIs e depois implementamos uma GUI dentro de uma TUI. Viva o terminal
O motivo de usar terminal, para começo de conversa, é não precisar de mouse. Uso muitas ferramentas TUI, mas acho que esta não vai virar uma delas
Sempre me perguntei se um gerenciador de janelas em estilo TUI dentro do terminal seria possível, e este é um projeto realmente muito legal. Quem fez mandou muito bem
Não basta ser bonito
https://www.brain-dump.org/projects/dvtm/
Parece muito fluido
Mas, do meu ponto de vista, a necessidade de arrastar, soltar e redimensionar janelas é mais um hábito de ambientes Windows. Então talvez esta seja uma ferramenta que faz pelo mouse o que tmux e Neovim fazem pelo teclado
No tmux, os layouts de janela de que preciso são alguns conjuntos fixos de painéis 2x2, e métodos de redimensionamento predefinidos mais alternância para tela cheia já bastam. Com ferramentas eficientes como telescope e nvim, a troca é tão rápida que deixa de haver necessidade de organizar todas as janelas visivelmente; você passa a usar mais um modelo mental do que existe do que uma representação visual. Por exemplo, não preciso da árvore de arquivos comum no lado esquerdo da maioria das IDEs
Alguns anos atrás havia algo parecido, e acho que funcionava sobre conexões ssh e tinha uma espécie de UI com zoom. Não consigo achar o link; alguém lembra de algo assim?
kitten ssh user@hoste, ao pressionar uma tecla, outro painel ssh é aberto na mesma aba; se bem me lembro, dá para “ampliar” uma aba para ocupar a janela inteirahttps://sw.kovidgoyal.net/kitty/
ssh vtm@netxs.onlineAgora esse domínio está fora do ar
Seria bom se alguns web apps adotassem essa linguagem de design puramente textual
Estou tentando entender: usando o tmux como comparação, se eu trocasse por isso, o que ganharia seria gerenciamento de janelas/painéis baseado em mouse?
Seria bom se algumas dessas ideias entrassem no Zellij