$linuxjunkies
>

Linux Terminal Emulator Shootout 2026

Alacritty, Kitty, WezTerm, Ghostty, and Foot compared on speed, features, Wayland support, and config — pick the right terminal for your workflow.

BeginnerUbuntuDebianFedoraArch8 min readUpdated June 7, 2026

Before you start

  • A working Linux desktop with either Wayland or X11 running
  • sudo or root access to install packages
  • A Nerd Font installed if you want icon glyphs in prompts or status bars

Choosing a terminal emulator in 2026 feels like choosing a text editor — deeply personal, surprisingly technical, and occasionally tribal. This shootout covers the five terminals that dominate modern Linux desktops: Alacritty, Kitty, WezTerm, Ghostty, and Foot. Each solves the same core problem differently, and the right answer depends on whether you prioritize raw speed, scripting power, Wayland purity, or feature breadth.

The Contenders at a Glance

Terminal Written In GPU Rendering Wayland Native Config Format
Alacritty Rust Yes (OpenGL) Yes (also X11) TOML
Kitty C + Python Yes (OpenGL) Yes (also X11) kitty.conf
WezTerm Rust Yes (WebGPU) Yes (also X11, macOS, Windows) Lua
Ghostty Zig Yes (Metal/OpenGL) Yes (also X11, macOS) Simple key=value
Foot C No (CPU) Wayland only INI

Installation

Alacritty

# Debian/Ubuntu
sudo apt install alacritty

# Fedora
sudo dnf install alacritty

# Arch
sudo pacman -S alacritty

Kitty

# Debian/Ubuntu
sudo apt install kitty

# Fedora
sudo dnf install kitty

# Arch
sudo pacman -S kitty

Kitty also ships a standalone installer that always gives you the latest release:

curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin

WezTerm

# Debian/Ubuntu — add the official repo first
curl -fsSL https://apt.fury.io/wez/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/wezterm-fury.gpg
echo 'deb [signed-by=/usr/share/keyrings/wezterm-fury.gpg] https://apt.fury.io/wez/ * *' | sudo tee /etc/apt/sources.list.d/wezterm.list
sudo apt update && sudo apt install wezterm

# Fedora
sudo dnf copr enable wez/wezterm
sudo dnf install wezterm

# Arch
sudo pacman -S wezterm

Ghostty

Ghostty reached 1.0 in late 2024. On most distros you need a recent package or a flatpak; distro packages are catching up fast.

# Arch (AUR)
paru -S ghostty

# Flatpak (all distros)
flatpak install flathub com.mitchellh.ghostty

# Fedora 41+
sudo dnf install ghostty
# Debian/Ubuntu
sudo apt install foot

# Fedora
sudo dnf install foot

# Arch
sudo pacman -S foot

Performance

GPU-accelerated terminals (Alacritty, Kitty, WezTerm, Ghostty) offload text rasterization to the GPU. For typical shell work the difference is imperceptible. It becomes noticeable when you cat a 50 MB log file or run a tool that floods stdout — GPU terminals stay fluid where software-rendered ones stutter.

Foot is the outlier: no GPU rendering, yet benchmarks consistently show it matching or beating GPU terminals on latency. Its author obsessed over frame scheduling under the Wayland presentation-time protocol, which removes a full compositor frame of lag. On a 165 Hz monitor this matters. The trade-off is hard Wayland dependency — foot refuses to compile with X11 support by design.

Alacritty has historically marketed itself as "the fastest terminal" but that claim is contextual. It wins on raw throughput in some vtebench scenarios, loses to foot on latency, and sits roughly level with Kitty and Ghostty in daily use.

WezTerm's WebGPU backend is more portable but adds startup overhead. It is the heaviest of the five in RAM footprint (~80–120 MB idle versus ~20–40 MB for foot or Alacritty).

Features

Alacritty — Intentional Minimalism

Alacritty draws the line at rendering. No tabs, no splits, no scrollback search UI — those belong to a multiplexer like tmux or zellij. The config is clean TOML and the project moves slowly and deliberately. If you already live inside tmux, Alacritty is an excellent, low-friction window into it.

Kitty — Extensible Power Tool

Kitty invented the Kitty Graphics Protocol (now widely adopted), supports tabs and splits natively, and has a plugin system called kittens — small Python programs that add capabilities like SSH session cloning, diff viewing, and image display. The kitten ssh command transparently forwards your local terminal settings to the remote host, which alone wins converts from other terminals.

# Open a split pane in Kitty
kitty @ launch --location=vsplit

WezTerm — Lua All the Way Down

WezTerm's entire configuration is a Lua script, which means conditional logic, functions, and dynamic keybindings without any external tooling. It supports tabs, splits, multiplexing over SSH, and a built-in status bar. If you want a terminal that does what tmux does without tmux, WezTerm is the strongest contender. Cross-platform consistency (Linux, macOS, Windows) is a genuine advantage for teams with mixed machines.

# WezTerm ships a CLI too
wezterm cli spawn --cwd $HOME/projects

Ghostty — Fast and Opinionated

Ghostty aims for the Alacritty niche — fast, native, minimal config — but ships a few more features by default: tabs, basic splits, and native OS decorations. Its Zig codebase compiles to tight binaries. The simple key = value config reads easily without learning TOML or Lua. Ghostty's native macOS app shares code with the Linux build, making it appealing for Mac/Linux switchers.

Foot — Wayland Purist

Foot implements the full Wayland presentation-time and fractional-scale protocols, supports server-side decorations, and stays deliberately small. It has no tabs or splits. Like Alacritty, it defers multiplexing to an external tool. The INI config is easy to read. Foot is the default terminal in several sway-based distributions precisely because of its Wayland-first design.

Configuration Examples

Alacritty — set font and colorscheme

mkdir -p ~/.config/alacritty
cat > ~/.config/alacritty/alacritty.toml <<'EOF'
[font]
normal = { family = "JetBrainsMono Nerd Font", style = "Regular" }
size = 13.0

[colors.primary]
background = "#1e1e2e"
foreground = "#cdd6f4"
EOF

Kitty — enable tab bar and image protocol

cat > ~/.config/kitty/kitty.conf <<'EOF'
font_family      JetBrainsMono Nerd Font
font_size        13.0
tab_bar_style    powerline
background       #1e1e2e
foreground       #cdd6f4
EOF

WezTerm — minimal Lua config

cat > ~/.config/wezterm/wezterm.lua <<'EOF'
local wezterm = require 'wezterm'
return {
  font = wezterm.font 'JetBrainsMono Nerd Font',
  font_size = 13.0,
  color_scheme = 'Catppuccin Mocha',
  hide_tab_bar_if_only_one_tab = true,
}
EOF

Which Terminal for Which User?

  • Already using tmux/zellij and want zero overhead → Alacritty or Foot (Wayland-only systems).
  • Want a full-featured terminal without a multiplexer → WezTerm or Kitty.
  • SSH-heavy workflow → Kitty (kitten ssh) or WezTerm (built-in multiplexing).
  • Wayland-only sway/river setup → Foot is purpose-built for this.
  • Cross-platform (Linux + macOS + Windows) → WezTerm is the only real option here.
  • Simple, fast, modern config without Lua → Ghostty.
  • Inline image display in the terminal → Kitty (originator) or WezTerm (also supports the protocol).

Verification

After installing your chosen terminal, confirm GPU rendering (where applicable) and check the reported terminal type, which affects how programs detect capabilities:

# Confirm $TERM is set correctly
echo $TERM
# Alacritty → alacritty
# Kitty     → xterm-kitty
# WezTerm   → wezterm
# Ghostty   → xterm-ghostty
# Foot      → foot
# Check true-color support
awk 'BEGIN{for(i=0;i<256;i++)printf "\033[38;2;%d;100;100m#\033[0m",i; print ""}'
# Should render a smooth red gradient; banding means no true-color

Troubleshooting

Wrong or missing terminfo

Kitty and WezTerm use custom $TERM values. If you SSH into an older server and see garbled output or missing colors, either install the terminfo on the remote host or fall back:

# Kitty: copy terminfo to remote host
kitten ssh user@remotehost

# Manual fallback for any terminal
infocmp | ssh user@remotehost "mkdir -p ~/.terminfo && tic -x -"

Wayland vs X11 detection

On a mixed session (XWayland active), some terminals default to X11 rendering. Check which protocol is active:

echo $WAYLAND_DISPLAY   # Non-empty means Wayland is available
echo $DISPLAY           # Non-empty means X11/XWayland is available

Foot will refuse to start if WAYLAND_DISPLAY is unset — that is intentional, not a bug.

Font rendering issues

GPU terminals render fonts themselves, bypassing fontconfig defaults in some cases. If your font looks wrong, explicitly set the family name as reported by:

fc-list | grep -i jetbrains
tested on:Ubuntu 24.04Fedora 41Arch 2025.01Debian 12

Frequently asked questions

Is Alacritty still the fastest terminal in 2026?
It depends on the benchmark. Alacritty leads in some throughput tests, but Foot consistently beats it on input latency thanks to Wayland presentation-time scheduling. In everyday use the gap is negligible.
Can I use Foot on an X11-only desktop?
No. Foot is Wayland-only by design and will not start without a live Wayland compositor. Use Alacritty or Kitty if you are on X11.
Do I still need tmux if I use Kitty or WezTerm?
Not for tabs and splits — both handle those natively. You might still want tmux for session persistence across SSH disconnects or for workflows that rely on tmux-specific tooling.
Ghostty is newer — is it production-ready?
Yes. Ghostty 1.0 shipped in December 2024 and has been stable since. It is packaged in Fedora and the Arch AUR, and the codebase has had significant real-world testing on macOS prior to the Linux release.
Which terminal best supports inline image display?
Kitty invented the Kitty Graphics Protocol and has the most complete implementation. WezTerm also supports it fully. Ghostty has partial support. Alacritty and Foot do not support inline images.

Related guides