Comments (18)
I have searched months for a project like this, then stop searching, and then discovered this by accident...
I am really amazed by how cool this project is. I only know bash, so I am far away from creating something like this, but if this is implemented, I am thinking about writing applications for this DE-like program. I am thinking of it's own file-manager, text-editor (for coding, not ms-word) and maybe a webbrowser.
Thanks for an amazing Desktop for my text-servers!
from vtm.
The craziest idea would be to apply this UI framework/architecture to a real GUI after it has been tested on text-based interfaces in terminals. Perhaps it will be possible to run the same binary both in the GUI and in the TUI with minimal or without any recompilation.
from vtm.
The first such application will be the built-in vtm terminal. It will become a full-fledged cross-platform TE.
from vtm.
Just dropping a side comment…I like the idea!!! And, I can test on a Mac or Linux when/if you get to that point.
from vtm.
@tomek-szczesny Thank you for your feedback!
The work is in full swing! 👌
from vtm.
Guys this is the craziest thing I've ever seen in my life
Really wishing the devs for a bright future
I still have no idea how this works 😆 but it just does
from vtm.
I see you on Twitter, but it looks inactive. Still, I tagged you on a thread: https://twitter.com/AutumnMeowMeow/status/1489228917030502407
I've only got 11 followers, so this won't go anywhere, but: thanks for the inspiration! :) I hope more people check out vtm.
from vtm.
Thank you for the kind words!
It's very cool to hear that you like the way we think and the direction we're heading.
from vtm.
I would be glad if you have a desire to chat about how it works or what it is planned to build on its basis.
Initially, It was a testing ground for the development of a terminal app framework. At some point, this led to the creation of an environment for terminal applications.
The main goal is to create a framework that allows you to create cool terminal applications with minimal costs. Almost all UI is configurable declaratively. There is a flexible event processing system. All UI elements are multi-user aware, i.e. multiple users can interact with one UI widget. A minimal set of vt-commands is used for text output for maximum compatibility with most terminal emulators. UTF-8 is used everywhere and only UTF-8. Compile-time Unicode database synchronization is used to maximize support for the current Unicode standard, including character widths and grapheme clustering. Internally, only TrueColor is used for color support.
There is a runtime-configurable vt-parser that can parse all vt-commands with any number of parameters in one pass, it has only one requirement - the known validity of the vt-commands. The prefilter is responsible for the validity of vt-commands.
For maximum cross-platform compatibility, the project has no dependencies, except for the C++20 compiler 😀.
from vtm.
@o-sdn-o Sure thing, but I will need some time to explore it first. Maybe I can get to it at the weekend (if my vt525 experiments dont explode). Feel free to ping me back, if I dont make it in time.
Your list of features sounds promising, esp. the multi-user thingy. This ofc immediately creates demands, like fine grained access roles (r|rw) and how to configure that. The whole unicode topic is a nightmare for myself (as we have to deal with multiple versions at once), and the unicode consortium basically forgot about terminals right after their first failed UTF-1 attempt. I second the idea, that grapheme clustering is a must have for modern terminals, but support is still lousy (we also have not yet integrated our playground branch). Regarding truecolor - imho thats already safe enough to use among most popular TEs.
The craziest idea would be to apply this UI framework/architecture to a real GUI after it has been tested on text-based interfaces in terminals. Perhaps it will be possible to run the same binary both in the GUI and in the TUI with minimal or without any recompilation.
You mean the lib would render to different output systems, where a TE is only one of it? Outputs that come to my mind:
- TE (the obvious)
- framebuffer
- GUI - whatever toolkit/convenience the OS provides, eg. X11 (low level), Qt (cross platform), Win-API, cocoa, ....
- HTML (not quite easy to achive, but could be done as wraped into a websocket stream embedded into some glue-code document)
- for die-hard fans: postscript (just kidding, but it was turing complete)
Edit:
Btw DEC itself already had a multi output lib "DECForms" for app side, that would either render to terminal or GUI. It even got extended to browser/html output later on (idk by whom, prolly HP).
from vtm.
You mean the lib would render to different output systems, where a TE is only one of it?
Exactly, in the simplest case, you only need some kind of intermediary rasterizer of a cell array into a graphic bitmap, as well as handling keyboard and mouse events, something like TE-microlight.
Edit: The binary that encapsulates a tiny TE for rasterization.
DECForms
Interesting, didn’t know about that.
from vtm.
I will need some time to explore it first.
At the moment, the master
branch is about two months out of date. The most up-to-date branch is dev/sdn
, but some things don't work as expected there. I am completely reworking the built-in terminal.
from vtm.
Terminal rewriting is almost complete (branch dev/sdn
).
Now you can do the following:
Resize window during Debian APT apt
execution - a minimum of garbage is generated when progress bar is present:
The scrollback buffer can be scrolled with the mouse and all window margins remain frozen:
See #119 for details.
from vtm.
Just wanted to add myself to the amazed list!
I got a military terminal with Pentium 166 on board and was looking for a light DE to test it out. I guess I just found exactly what I was looking for! :D
Keep up the amazing work!
from vtm.
Just heard about this today, this is really neat! Love the animations and drag-and-drop.
from vtm.
@o-sdn-o Just now reading the rest of this thread, and you mention being open for discussion. So hello! (And hi again @jerch ! It's been a while.)
Technologically, I would like to see the terminal as a viable medium for both work and art. I don't know if it will persist in its current form long term, but then projects like yours (and I LOVE the styling and advanced game aesthetic) show that a little bit of support in terminals does indeed go a very long way.
BTW would it be ok if I link to your projects?
from vtm.
@klamonte I am very glad to see you! As you can see, vtm uses the minimal functionality of the terminals, which is enough to display absolutely everything that can be displayed in the terminal window. The terminal serves only as a canvas, and behind this layer can be anything, the most sophisticated GUI for example. This approach significantly expands the scope of use of terminals. Here, most likely, we are already talking about a wrapper for any kind of applications that adapts the output to the canvas in the form of a terminal viewport. The main foundation on which such a wrapper is based: Unicode characters, Trucolor FG/BG, input devices - keyboard and mouse.
would it be ok if I link to your projects?
of course, this is done for everyone, at least for the sake of a source of inspiration. If it inspires someone or makes their work more productive, then that will be great! 😀
from vtm.
Cool, I've got a couple spots to put a link on. I will try not to hassle you with too many issues at once. :-) I am excited to see wherever it is your vision takes us to.
EDIT: Now referenced here and here .
from vtm.
Related Issues (20)
- Reload config while running HOT 1
- Command history suddenly resets when pressing Alt (cmd.exe)
- Tiling window manager - select what to add HOT 5
- Project logo / icon HOT 10
- Per virtual terminal text search. HOT 5
- [feature request] launch application windows in vtm desktop through command line HOT 17
- Text wrap switch doesn't work
- Command arguments are not parsed correctly on POSIX systems
- Line splitting is broken and corrupts script expression
- Different exit code styles between UNIX and NT HOT 1
- Unnecessary translation layer if the applet type is not specified
- Dead modifier keys print incorrect characters in cmd.exe readline mode
- Graphical front-end (GUI-TUI Bridge) HOT 29
- Broken `vtm -?` output in non-UTF-8 code page
- Maintaining the "don't wrap configuration" HOT 4
- Standalone terminal focus is lost by left clicking on window menu
- PowerShell/PSReadLine don't use UTF-8 to echo input on Windows
- [Feature request] Always-on-top for app windows HOT 1
- [feature request] configurable window border HOT 8
- One-shot toggle to copy text while mouse tracking is active
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vtm.