Code Monkey home page Code Monkey logo

Comments (18)

Vosjedev avatar Vosjedev commented on August 22, 2024 2

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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024 1

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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024 1

The first such application will be the built-in vtm terminal. It will become a full-fledged cross-platform TE.

from vtm.

Nanoc-ice avatar Nanoc-ice commented on August 22, 2024 1

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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024 1

@tomek-szczesny Thank you for your feedback!
The work is in full swing! 👌

from vtm.

ShivamJoker avatar ShivamJoker commented on August 22, 2024 1

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.

 avatar commented on August 22, 2024 1

@o-sdn-o

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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024

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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024

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.

jerch avatar jerch commented on August 22, 2024

@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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024

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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024

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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024

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:
resize-apt


The scrollback buffer can be scrolled with the mouse and all window margins remain frozen:
scroll-apt

See #119 for details.

from vtm.

tomek-szczesny avatar tomek-szczesny commented on August 22, 2024

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.

 avatar commented on August 22, 2024

Just heard about this today, this is really neat! Love the animations and drag-and-drop.

from vtm.

 avatar commented on August 22, 2024

@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.

o-sdn-o avatar o-sdn-o commented on August 22, 2024

@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.

 avatar commented on August 22, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.