COSMIC Terminal

The terminal emulator for the System76 COSMIC desktop environment, written in Rust with GPU-accelerated rendering, ligatures, and bidirectional text support.

COSMIC Terminal is the terminal emulator built for the COSMIC desktop environment by System76. Written entirely in Rust, it builds on the same battle-tested alacritty_terminal backend used by Alacritty for correctness and compatibility, while layering a custom renderer on top that adds ligature support and bidirectional text — capabilities Alacritty intentionally omits. It is pre-alpha software, actively developed alongside the rest of the COSMIC DE suite, and ships by default on Pop!_OS.

Features

  • GPU-accelerated rendering — Custom renderer built with wgpu and glyphon for fast, modern GPU rendering; falls back to softbuffer + tiny-skia when no GPU is available.
  • Ligature support — Renders programming ligatures correctly via cosmic-text, the same high-quality text shaping library used throughout the COSMIC desktop.
  • Bidirectional text — Full BiDi support for right-to-left scripts alongside left-to-right terminal output.
  • Multiple tabs — Open and manage multiple terminal sessions in a single window.
  • Custom colour schemes — Import and switch colour schemes through the application menu.
  • System theme integration — Automatically follows the COSMIC desktop dark/light theme preference.
  • alacritty_terminal backend — Uses the same proven terminal emulation core as Alacritty, ensuring broad compatibility with terminal applications and escape sequences.
  • All Rust, no Electron — The entire stack from terminal emulation to rendering is native Rust with no web runtime overhead.

Installation

COSMIC Terminal is pre-alpha and does not yet have stable binary releases outside of Pop!_OS. The recommended ways to obtain it are:

Pop!_OS (ships by default)

COSMIC Terminal is included in Pop!_OS 24.04 and later as the default terminal emulator. No additional installation steps are needed.

Build from source (all Linux distributions)

# Install Rust via rustup if you haven't already
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install system dependencies (Debian / Ubuntu)
sudo apt install just libxkbcommon-dev libwayland-dev libinput-dev \
    libdbus-1-dev pkg-config

# Install system dependencies (Fedora)
sudo dnf install just libxkbcommon-devel wayland-devel libinput-devel \
    dbus-devel pkg-config

# Clone and build
git clone https://github.com/pop-os/cosmic-term
cd cosmic-term
just build-release
just install

Arch Linux (AUR)

paru -S cosmic-term-git

Nix / NixOS

nix-env -iA nixpkgs.cosmic-term

Note: As pre-alpha software, the build dependencies and process may change between commits. Check the repository README for the most up-to-date instructions.

Quick Start

After launching COSMIC Terminal, it behaves like any standard terminal emulator. A few things worth knowing out of the box:

# Open a new tab
# Ctrl+Shift+T

# Close the current tab
# Ctrl+Shift+W

# Scroll up / down
# Shift+PageUp / Shift+PageDown

# Increase / decrease font size
# Ctrl+= / Ctrl+-

# Open settings and colour scheme picker
# Access via the hamburger menu (top-right)

To test ligature rendering, open any font that ships with ligatures (JetBrains Mono, Fira Code, Cascadia Code) and type common programming tokens:

# These sequences should render as ligatures with a supporting font:
# -> => != == <= >= <!-- --> ::
echo "Ligature test: -> => != =="

Architecture

COSMIC Terminal is deliberately layered to separate concerns:

LayerCrateRole
Terminal emulationalacritty_terminalPTY management, escape sequence parsing, cell grid
Text shapingcosmic-textFont loading, shaping, ligatures, BiDi, glyph rasterisation
GPU renderingwgpu + glyphonDraw shaped glyphs to screen via GPU
Software fallbacksoftbuffer + tiny-skiaCPU rendering when no GPU is available
UI chromelibcosmic (iced-based)Tabs, menus, settings panel, system theme

This architecture means COSMIC Terminal inherits Alacritty's terminal correctness while adding the rendering features (ligatures, BiDi) that Alacritty's maintainers have explicitly chosen not to support. The tradeoff is that cosmic-text adds complexity and the renderer is newer and less battle-tested than Alacritty's VTE-based pipeline.

COSMIC Terminal vs Other Rust Terminals

FeatureCOSMIC TerminalAlacrittyWezTermRio
GPU rendering✅ (wgpu)✅ (OpenGL)✅ (WebGPU)✅ (wgpu)
Ligatures
Bidirectional text
Native tabs
Multiplexer built-in
COSMIC DE integration
Stable release❌ (pre-alpha)
Written in Rust

If you are not using the COSMIC desktop and want a stable Rust terminal with ligatures today, WezTerm or Rio are the closest alternatives. Alacritty remains the best choice for a minimal, maximally compatible terminal without ligatures.