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.
That is the Luddites argument against progressing anything. There are many problems with current terminal emulators that these newer ones are trying to fix and make the terminal experience better overall. Terminals as they currently work were designed the way they are to talk to dumb typewriters with a screen (that’s right, not keyboards, digital typewriters). And they have barely changed at all since then.
Personally looking at these terminals they have a lot of niceties that I would love to use. But IMO these benefits are not worth the costs these particular terminals also have. One being closed source and requiring an account and the other being electron - no benefit is worth that. But to bury your head in the sand and claim they have no benefits at all is wrong.
Begin able to view images in the terminal would be amazing alone - just like you can cat a text file. I would hate to need to launch a GUI program every time I wanted to see what was inside a text file but that is exactly what I need to do for images or PDFs.
Being able to collapse the output of a command would be nice as well. The number of times I have had to scroll for days to get to the output of a previous command because I happen to run a noisy one but still want to check what something previously had done would save me quite a bit of annoyance. And being able to search just the last commands output would be great - like an after the fact, interactive grep with context. And being able to quickly copy the output of the last command would also be great.
Konsole can display images, as can kitty, alacritty, western, iterm2, etc. There’s quite a few formats to do so dating back decades. This isn’t new.
As for collapsing a command and it’s output that’s nice, but it’s not exactly game changing.
Lastly, searching explicitly your last command for a term with context would be much better suited to the shell to solve as it’d be terminal independent. Wouldn’t surprise me if under the hood it’s a bash script that takes whatever input you pass to bash, execs it, pipes stdout to tee, which passes it to a text file storing output and the console’s output too. Of course, you can always pipe it to fzf for a live grep with context if you have it set up right and remember to do so
I would agree just denying any advancements in favor of the “good ole way” is idiotic but nothing I’ve seen or that you’ve listed convinces me these are major advancements. Nor are these anything that couldn’t be solved at the shells level or with supplementary applications. Nice to have, if it weren’t electron or closed I would switch, but nothing groundbreaking
I doubt they’re outright rejecting any idea of progress. They’re likely just not convinced by what the fancy options offer
They can now? I know it was possible in some niche terminals but never knew it was as wide spread as that.
None of these features on their own are game changing I agree. But lots of small nice to haves can end up being game changing overall. Again - I don’t think these terminals offer anywhere near enough to warrant their IMO massive downsides though. But I would love to see more innovation in the terminal emulator space.
I had a similar thought TBH. But the more I thought about it the more I came to see that in order to do this nicely - ie with inline scroll back or being able to collapse command output like these terminals do then you would basically need to implement a terminal emulator into the shell. Either way you are breaking down the wall between what a shell and a terminal emulator are doing. I would be interesting in exploring this from the shell side, though I cannot fault them from doing it from the emulator side either.
I think the key benefit here is integration rather than technical ability to do something. Making it easy and convenient to do goes a long way. There is a lot that can be made much nicer with things more tightly integrated together than trying to string up a bunch of disparate applications together - even if you can do it the integrated approach will give you a much more refined experience.
It sounds like an outright dismissal of new features to me.
You do make some good points on it being terminalside, you’ve partially changed my mind there. I see the value now.
Also, you would be correct anything that allowed collapsing commands would be trivial to implement some sort of action per command and it’s output. Along with collapsing being easiest to do terminalside.
What I would love to see is a terminal that builds it’s own shell from scratch too rejecting the ancient ideas we have with bash. I still love bash but I’m curious what could come of it.
As for their luddite status their reply to my previous comment seems to show them to be a bit more open
Seriously though thanks for the good conversation and thought excersize
Thinking about it some more I am not sure that we would have to go that far. Well not in the longer term - short term we might for experimenting with ideas. I think one of the bigger problems ATM is the terminal does not understand what a shell is or its component parts. Terminals just display characters and move the cursor around the screen and send keyboard and now mouse input back to the command they run. They are also aware of alternative buffers and raw input mode and know about echoing characters back the the screen.
If we extended the terminals to also understand some shell concepts like the prompt, commands being typed and output from the commands and gave the shell some markers it could send along with these (like we do with color information ATM) the terminal would be able to use these to change how it displays each part and would open up a lot of new an interesting features. Could even add things like tooltip support or actions on clicking some bits of the text.
I am starting to see these terminals as experimenting on what we features could be enabled if we were not stuck on the current VT100 protocals. Though if we ever get wider adoption and generalisation of these ideas backed back into the protocals will be another question to consider.
TIL viu exists.
Exactly. I don’t mind progress. But terminal emulators that does things you become dependant on, is not great in my opinion. Because what happens the day you only have a TTY to get things done? If you rely on all the fancy stuff, you would feel lost.
So yeah, I am not convinced that I need my terminal emulator to be fancy. But some people clearly are, looking at the rest of the comments on the post.
Nah man, the Luddites weren’t against technological progress, they were against the ruling class fucking us over. So I guess that goes for the terminal that needs a user account
I think the issue fundamentally is that this isn’t what terminal emulators are. The terminal emulator initializes a TTY session and enters a shell environment (sh, zsh, fish, etc). The medium is text and cannot be anything else.
Would be convenient. There are things like neofetch’s backend capabilities that magically embeds images, but I don’t know how it works and it might not be scalable.
Skill issue. Pipe your output to something (like a file or the “less” command)
This is 90s thinking. Why must terminal emulators only be text and only do things that a physical terminal could? What makes teminals so nice is not that they work on 90s technology. Some terminal emualtors can already display images. Which is great. And the ideas they are introducing are still fundamentally text based, but are geared towards structuring that texts a bit more than a constant stream of characters on the screen.
This is a convenience issue not a skill issue. Yes you can pipe output to things but you need to know before hand that you want to do that. And with less you lose that output once you close less. And with files you have to clean them up after the fact. Both of these are inconvenient and need to be thought of before you run a command. IMO it would be nice to just run a command and then be able to collapse or expand or search its output after the fact and not have to preempt everything beforehand.
The argument that you can already do that in a much less convenient way is not a very good argument.
I keep trying to imagine what abandoning TTY interfaces in Linux would look like and I can’t comprehend the rework that would be required. It’s so fundamentally different.
For example, how would the SSH protocol work? How would that be compatible? Would we have to abandon SSH or always X forward?
There is definitely a pressure to extend beyond standard TTY. Tmux captures mouse action and has a window management system. fish shell has autocomplete. But both of these still use the same medium of text.
I may simply lack imagination.
Thinking about it some more I don’t think we would need to abandon the whole TTY to get a good set of the features. What is basically required for a lot of the features is more communication between the shell and the terminal. There is already some communication for basic things - like raw mode and alternative buffers, colors and even images. These are how TUI programs like vim or screen/tmux function and how you can exit them without losing what was previously in the buffer.
I wonder if markers for the prompt and start/end of command output would probably enable a lot smarter virtual terminals with only some minor additions to the VT100 protocols. Possibly some extra data could be sent as well - like optional tooltip data maybe or even supporting actions that when the user clicks something it can send a response back to the shell. Maybe like a retry button on previous commands for example.
There is quite a lot that could be done if the terminal and shells had better protocals to communicate between each other. I dont think these will change overnight though so seeing terminal emulators try out these features to find what people like/want to use IMO is a good thing to see where we can take things in the longer term.
No we would not. At the end of the day a TTY is just a input and output pipe between the terminal and the program running on the shell with a specific protocal VT100 (or some bastardized version of that - looking at you xterm). This is what network protocals are as well - just with different protocals in play. So you can do a lot over that connection with changes to the protocals. No need for xforwarding at all.
There’s a lot of stuff other people have brought up in this post, but with correct ps and vesa configuration it’s been trivial to view images and pdfs under non-x sessions for decades.
Every tool has its job. Why should a TTY terminal emulator also be a image/pdf viewer?
Sweats in emacs