Not every day I get excited about the idea of a new terminal emulator.
There are tons of terminals available for Linux. From the default one that comes with your distribution to the classic of yore, terminator or the more 'modern' Rust-based, hardware accelerated ones like Rio.
There is no dearth of choices here. Why should I care about one more addition to the long list?
And yet, when I came across this new terminal, I got the feeling that it has the potential to go big.
Hear me out on why I say that. For a seasoned Linux user, the terminal is just a tool to get things done. The main power lies with the commands and how they are used. The one thing that attracts here is the ability to have multiple windows and that too can be achieved by mastering CLI tools like screen or tmux.
But there is a population of Linux users for whom the terminal is a scary place. They go there only when it is absolutely necessary and there is no alternative. Like a five-year-old child going to the washroom at night.
And this new terminal should be a comfortable tool for this second type of Linux user.
You will understand why I say that after you learn its features.
Wave: A terminal for those who are not comfortable with the command line
Well... that's what the developers seem to have in mind here.
Wave terminal is created primarily for application developers who have to use the terminal every now and then to deploy their project or troubleshoot their application.
Moder code editor like interface
Yes, that's a terminal, not a code editor. The interface is like VS Code where you can group terminal sessions into workspaces. Working on a project that has a dev server, a test server and a production server, group them in a workspace.
Edit files without mastering any keyboard shortcuts
You can edit files inline, be it on your local system or the remote machine. And there is no learning curve here. Just use it like a regular text editor.
View Markdown, JSON or images
You can render Markdown preview, pretty display JSON files or display CSV files data in tabular format. You can also view images.
Persistent SSH connections and universal history
Another awesome feature is that Wave gives you persistent SSH connections. Don't worry about getting disconnected from the remote server because you were idle for an hour. It will automatically connect you, even if the remote system reboots.
You also get the feature of combined history search. Don't remember which command you run in which terminal session? No problem. Wave has got your back there.
My experience with Wave terminal
Here's what I feel after using it for a couple of hours.
When I started it, I was greeted with a pop screen. It had telemetry enabled by default. Classic VS Code like feature. Fine, I disabled it.
The next hiccup is the terms of service. You have to accept it, but there is no way to actually read the terms on this screen. However, I can see it on their website. It's been adopted from the Basecamp open source policies.
I really don't see the need for this when the software is open source licensed under Apache 2.0. It is just going to confuse people.
Anyway, this is what the interface looked like in the first run. As you can see, the interface is like a modern code editor with a sidebar that allows you to group terminal tabs in workspaces. You can assign name, icons and colors to each tab. This is helpful if you connect to multiple remote servers.
In that regard, you can also save your SSH connections in the classic Putty style.
This way, you can preconfigure a certain tab to start with a particular SSH connection.
The main trouble for me (if I can call it that) is with the input field. It's a tiny input box at the bottom. You enter the command and it shows the output as the entire command and its output are grouped into a box and moved up.
I am used to the classic terminal input style where things start at top and then move towards bottom. Here, it is the opposite.
See, that's intentional. Each command and its output is a separate box, a separate element. You can copy it, minimize it or archive it from the view.
The best thing after sliced bread
The biggest promise of Wave terminal is that it doesn't make you feel like you are in the terminal. The Achilles heel for beginners is editing files in the terminal. Even the simplest of the terminal-based editor (read Nano) has a learning curve.
But not Wave. It has a built-in editor that can be invoked with
codeedit filename command, and you get to edit the file the same way you do in a graphical text editor. Yes, you can use your mouse as freely. You may also specify the file type from the menu in the editor.
For a person who gets cold feet while editing config files in the terminal, this is a god-send feature.
A developer often has to deal with Markdown and JSON files. Wave terminal is perfectly capable of rendering these files.
And the SSH connections are persistent. Forget about being disconnected from remote server time and again. Wave handles it perfectly.
You can further explore its features from its documentation page.
Installing Wave terminal on Linux
You can download the zip from their website.
Extract it, and you'll see that it has an executable file named
Wave that can be run to launch the application.
Play around with it and if you like it enough, move the entire folder to the /opt directory, create a new desktop file for it so that it can be searchable in the system menu. I won't go in those details for the moment.
There are no distro-specific installer files like deb/rpm. Snap and Flatpak packages are also not present for the moment. It's a new application. Give it some time.
The source code is available on GitHub. Check it out and give it a star if you like it.
As you can see and feel, this is a tool created for application developers. People who spend more time on coding and have to deal with the command line for deploying their applications or debugging them.
Furthermore, It is evident that it is crafted for macOS users. The interface, keyboard shortcuts, everything screams macOS.
But that's okay. It should not matter to the Linux users as long as Wave is available on Linux.
I just hope that it doesn't go closed source and become a paid tool in the future. If that happens, it would be a bummer.