One of many reasons I left Debian behind for desktop things over a decade ago. I love the project and appreciate the history, but things can get pretty long in the tooth after awhile. Flatpaks help.
> I expected gnome-terminal's memory usage to be in line with konsole (KDE's default terminal), but gnome-terminal shows remarkably well in this test
In tipical GNOME fashion, they have decided to replace this largely working piece of software with on with one that places solidly at the bottom of the article's list (ptyxis).
Almost all of that is Mesa shaders and GTK's CPU side font-cache for GL/Vulkan, compiled CSS state, FWIW.
If you run:
GSK_RENDERER=cairo ptyxis -s
You can verify that with 69,985 here RES and 52,428 of that SHR. With 5 tabs open it jumped to 71,208 here. Presumably for the encrypted scrollback pre-allocations.
You still may not choose to use it, but it should stay relatively similar the more tabs you open.
Also, it's not a core GNOME app. It's just an app I wrote for me that the distros seem to have liked for its design/platform integration.
Thanks for writing it! I was very skeptical initially, but after using it I'm a fan. I also appreciate that I can script settings using gsettings, so I can configure it easily on new systems without having to touch the GUI (though the GUI settings are well thought out and nice to use when you don't know what you need yet).
Wait, what? ptyxis is not the default GNOME termjnal. It is the terminal of choice for both Ubuntu and Fedora, but the default terminam in GNOME is Console, internally known as kgx: https://en.wikipedia.org/wiki/GNOME_Terminal.
ptyxis has a few features that gnome-terminal doesn't and which are really handy. Namely, being able to list containers running on the system and then being able to select one to get a terminal running inside the container. Not sure that warrants replacing gnome-terminal but it is really handy if you use containers a lot.
The good news is that before writing Ptyxis, I also ported GNOME Terminal to GTK 4 and doubled the performance of VTE. So you know, use whatever you like.
I've been on xterm since I've started using Linux seriously in 2008. I probably wouldnt have tested it because was probably a bit obscure then like it is now. It's not perfect, it's baroque, has terrible configurability, no tabs and an ugly context menu. But it's honestly the only usable terminal, none other has stuck with me. Most are far too sluggish to even start up. Then there is key input latency. Then some of the newer ones are only usable with good gpu support, but not from a VM like Virtualbox or maybe VMware where graphics isnt working great.
Another thing for a very long time has been that most other terminals don't support bitmap fonts. This was/is critical for lower DPI monitors. Today I've mostly made the switch to TTF fonts.
edit: the article did mention st but claimed it had no scrollback, that's what the patches are for. st-flexipatch makes it easy to enable or disable the patches via c preprocessor defines.
foot also offers a client/server architecture.
If you start a foot server (e.g. with a systemd service), you can use `footclient -N`.
This may reduce the memory pressure of running many terminals.
This is similar to the `kitty --singleinstance` mentioned in another comment by amarshall.
Today I learned (thanks to this article) that I can use timg to display images right in my standard macOS terminal, even without switching to kitty or any other fancy thing. Not pixel perfect of course, but still, much faster to go through icons or other pictures than opening in a separate Preview window. A simple "brew install timg" worked for me. Will surely save me some clicks!
I use to have a few terms active in the very early days of Linux. When I heard about screen/tmux now I just have 1 term open and multiple tmux sessions.
I think if you can get use to tmux/screen you may like that better :)
I find A good window manager to be nicer for a bunch of terminals than tmux, where tmux really shines is when you want a bunch of terminals on a remote system.
I've faced the many terminal tabs issue. In a way tmux actually makes it worse as I'm used to the running app being in the title, and tmux obscures that (now there's just "client"). But also better as I found a great session restore plugin; always drove me a bit crazy when something happened that either killed the terminal app or triggered a full restart, and my tabs were lost.
https://sw.kovidgoyal.net/kitty/invocation/#cmdoption-kitty-...
In tipical GNOME fashion, they have decided to replace this largely working piece of software with on with one that places solidly at the bottom of the article's list (ptyxis).
If you run:
GSK_RENDERER=cairo ptyxis -s
You can verify that with 69,985 here RES and 52,428 of that SHR. With 5 tabs open it jumped to 71,208 here. Presumably for the encrypted scrollback pre-allocations.
You still may not choose to use it, but it should stay relatively similar the more tabs you open.
Also, it's not a core GNOME app. It's just an app I wrote for me that the distros seem to have liked for its design/platform integration.
Another thing for a very long time has been that most other terminals don't support bitmap fonts. This was/is critical for lower DPI monitors. Today I've mostly made the switch to TTF fonts.
edit: the article did mention st but claimed it had no scrollback, that's what the patches are for. st-flexipatch makes it easy to enable or disable the patches via c preprocessor defines.
This is similar to the `kitty --singleinstance` mentioned in another comment by amarshall.
[0] https://github.com/sxyazi/yazi
https://lwn.net/Articles/749992/
https://lwn.net/Articles/751763/
I like xfce4-terminal as a compromise. Good bang for the memory buck.
I think if you can get use to tmux/screen you may like that better :)