this post was submitted on 12 Sep 2024
97 points (93.7% liked)

Linux

48404 readers
897 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I was excited to learn about two new terminal emulator app which seemed to have a lot of cool new features, warp and wave. Then I looked closer and found that both are a no go for me.

Warp is closed source and you need to create an account to use your terminal. Jebus Christus, no, thanks, but no.

Wave is an Electron app. While that's better than not having a Linux version, I've seen how Electron apps behave. They are the ones which hog all memory and get killed by the OS first. So that's a no from me too.

I guess I keep my Tilix for now.

you are viewing a single comment's thread
view the rest of the comments
[–] nous@programming.dev 1 points 2 months ago

REPLs are basically shells. They behave the same way in every essential way. So the real question is support vs non-supported shells. But then that is easy - non supported shells fall back to just what a normal commands do ATM to process input/output. Other applications like TUIs are also easy to deal with as they already enter a different mode called raw mode - when a application requests that it can do what they currently do - switch to a new buffer and give full control to that one application.

I can’t think of any, but I’m not the most creative person… what do you have in mind?

Having smarter scroll back that knows the difference between a prompt/command and the output would let you do quite a few things that would be nice to have. Such as collapsing the output so you can only see the commands, keeping the command at the top of the screen even as other output scrolls off the top so you can always see what was running. Extra support for other UI elements could be nice to have as well - like tooltip support for blocks or similar.

All the shell - or really any application - needs to do is tell the terminal which bits of the output are witch. Like mark the start/end of the prompt, command and command output. Then the fallback is basically ignore the markers and print things out like it currently does.

And those are just random thoughts I have had over the last few days. These can be implemented in backwards compatible ways I believe and don't need special support for specific shells - just needs to expand the VT100 protocols to be able to send more information between the terminal and shells/applications that are running. Much like how color, cursor positioning, entering/exiting raw mode etc are already done. Though I think some tight specialized integration might be a good start to explore these ideas before the protocols are formed.