Displaying terminal output nowadays is more complex than 20 years ago. Today we want to be able to render high-DPI text on a 4K display, possibly on multiple monitors in multiple terminals simultaneously.
The terminal emulators are one of the most controversial applications in Linux. Unfortunately, they are as old as computer and vastly hasn’t changed. Fortunately, many open-source projects are considering what the next-generation terminal looks like.
It’s important to understand that terminals don’t just render what you see, but everything that programs output, which can be enormous amounts of text, grinding non-accelerated terminals to a halt.
What Are the Advantages of GPU-Accelerated Terminal Emulators?
GPU-Accelerated terminal emulators offload rendering to the GPU for lower system load and buttery smooth scrolling. As a result, they are faster at outputting and refreshing vast amounts of information.
At the same time, the GPU rendering part merely guarantees that your terminal sticks at 60FPS (or whatever your refresh rate is) if the processing behind is efficient.
Compared to standard terminal emulators, you might not notice the difference until you accidentally unleash a lot of output at once – then, you’ll see the difference.
Some terminals will start to update infrequently to save themselves, and some hang completely while burning the CPU.
Let’s see which ones we think are the three best GPU-accelerated terminal emulators for Linux.
1. Alacritty
Alacritty is a cross-platform, GPU-accelerated terminal emulator using OpenGL. It’s free and open-source software that strongly focuses on performance and simplicity.
The performance goal means it should be faster than any other terminal emulators available. The simplicity goal means it does not have features such as tabs or window splits.
Written in Rust, Alacritty is probably the fastest terminal emulator out there. Thanks to the OpenGL renderer and the high throughput parser, Alacritty is a high-speed and highly lightweight Terminal emulator.
However, some features that other terminal applications utilize that interest to some users are notably missing from Alacritty, such as tiling.
Pros
- Fast, simple, light.
- Supports TrueColor in addition to the standard 16 ANSI colors.
- Allows for searching for text within the scrollback buffer.
- Has very sensible default configuration options.
Cons
- Still missing some essential functionality, such as tabs or splits.
- There’s no audio bell.
To learn more about Alacritty, visit the official website or the project’s GitHub page.
2. Kitty
Kitty is a GPU-accelerated terminal emulator available on Linux and macOS, written in Python and C, designed for power keyboard users. It uses threaded rendering to minimize input latency.
Related: Kitty Terminal Emulator: How to Install, Configure, and Use It
First of all, it is worth mentioning that Kitty supports tabs and tiling multiple terminal windows side by side in different layouts without needing to use an extra program like tmux.
Kitty does not depend on any large and complex UI toolkit, using only OpenGL for rendering everything. As a result, the application is fast, especially for scrolling or moving between opened tabs.
In addition, managing split windows is a breeze, and the layout can be changed within a few key presses.
Compared to Alacritty, Kitty has all of Alacritty’s strengths plus does not lack the minimal set of features to make it a fully working terminal out-of-the-box.
For example, it offers TrueColor, ligature support, graphics support, tabbing, multiplexing, and its plugin framework.
Kitty has a framework for creating subprograms called kittens to make the program advanced. Kittens are small terminal programs written in Python that extend Kitty’s functionality.
On top of that, Kitty can be controlled from scripts or the shell prompt, even over SSH.
Apart from those mentioned above, Kitty is highly customizable and can be customized using a single configuration file.
Pros
- Performant, simple, all keyboard-based.
- Feature-rich – support for ligatures, tabs, and windows is simply outstanding.
- Supports plugins to add features.
- Allows for viewing the scrollback buffer in an external pager of your choice.
Cons
- One-man show – developer seems to treat Kitty as a personal project disregarding user feature requests.
Visit the official website or project’s GitHub page to learn more about Kitty.
3. WezTerm
WezTerm is a powerful GPU-accelerated cross-platform terminal emulator and multiplexer written in Rust. Multiplexing in WezTerm is based on the concept of multiplexing domains – a distinct set of windows and tabs.
Probably the most significant selling point of WezTerm compared to other GPU-accelerated terminals is that it supports scrollbars and tabs natively. In addition, the terminal uses Lua for configuration and scripting.
An exciting feature of the WezTerm terminal is that it uses an embedded ssh library to provide an integrated SSH client. The client can be used to make ad-hoc SSH connections to remote hosts.
Pros
- Highly customizable.
- Multiplex terminal panes, tabs, and windows on local and remote hosts, with native mouse and scrollback.
- Configuration via a configuration file with hot reloading.
- SSH client with native tabs.
Cons
- Configuring it using Lua syntax can be a bit confusing for some users.
To learn more about WezTerm, visit the official website or the project’s GitHub page.