How to Install Ghostty on Debian: A Fast, GPU-Accelerated Terminal Emulator

Ghostty is a fast, feature-rich, cross-platform terminal emulator that pairs native platform UI with GPU-accelerated rendering. On Linux it uses a GTK front-end and OpenGL for drawing, which keeps scrolling smooth and text crisp even under heavy output. Created by Mitchell Hashimoto, it aims to be a terminal that is both extremely fast and pleasant to configure, with sensible defaults so most people never need to touch a config file.

Under the hood, Ghostty is standards-compliant to a fault. It supports modern terminal sequences including the Kitty graphics protocol and synchronised rendering, and it runs a multi-threaded architecture with dedicated read, write, and render threads. The practical upshot is a terminal that feels instantaneous while still offering tabs, splits, and rich theming.

Ghostty is not available in the official Debian repositories, and building it from source means installing the Zig toolchain and a pile of dependencies. The unofficial deb.griffo.io repository provides an up-to-date prebuilt package you can install with apt.

What Makes Ghostty Special?

  • ⚡ GPU-accelerated rendering - Uses OpenGL on Linux for fast, smooth text drawing.
  • 🖼️ Native GTK interface - Integrates with the Linux desktop rather than reimplementing its own chrome.
  • 🗂️ Tabs and splits - Built-in window management for panes and tabs without a multiplexer.
  • 🎨 Rich theming - Ships hundreds of built-in themes, browsable from the command line.
  • 🧵 Multi-threaded core - Dedicated read, write, and render threads keep the UI responsive.
  • 🖥️ Modern protocol support - Kitty graphics, clipboard sequences, and synchronised rendering.
  • ⌨️ Fully customisable keybindings - Rebind any action through a simple config syntax.
  • 📄 Simple key = value config - Human-readable configuration with helpful validation tools.

Why Use the deb.griffo.io Repository?

  • Easy installation and updates through the standard APT workflow.
  • Automatic dependency management handled by the package.
  • Always tracks upstream releases, so new Ghostty versions arrive quickly.
  • No compiling from source and no Zig toolchain to install.
  • Works across supported Debian releases (Bookworm, Trixie, and Sid).

Prerequisites

Before you begin, make sure you have:

  • A Debian-based system (Bookworm 12, Trixie 13, or Sid)
  • sudo privileges
  • curl installed (sudo apt install curl if it is missing)
  • A graphical desktop session, since Ghostty is a GUI terminal emulator

Step 1: Add the deb.griffo.io Repository

Add the signing key and the repository to APT:

# Create the keyrings directory
sudo install -d -m 0755 /etc/apt/keyrings

# Download and install the repository GPG key
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg

# Add the repository (auto-detects your distro codename)
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null

# Update the package list
sudo apt update

What each command does:

  1. Create the keyrings directory - Ensures /etc/apt/keyrings exists with correct permissions.
  2. Install the GPG key - Downloads and de-armours the signing key for signature verification.
  3. Add the repository - Writes a sources entry bound to that key, auto-detecting your Debian codename.
  4. Update the package list - Refreshes APT so the new packages become visible.

Step 2: Update the Package List

If you did not run the last command above, run it now:

sudo apt update

Step 3: Install Ghostty

Install the package with APT:

sudo apt install ghostty

This installs the latest packaged Ghostty along with any dependencies. You will find it in your desktop’s application launcher, or you can start it from an existing terminal.

Step 4: Verify the Installation

Check the version from the command line:

ghostty --version

You should see output similar to:

Ghostty 1.1.3

You can also print the full effective configuration, which is a quick way to confirm Ghostty is reading your settings:

ghostty +show-config

Getting Started with Ghostty

The Configuration File

Ghostty reads its configuration from the XDG config directory. On Debian, create the file at:

mkdir -p ~/.config/ghostty
$EDITOR ~/.config/ghostty/config

The syntax is a plain key = value per line. A comfortable starting point looks like this:

font-family = JetBrains Mono
font-size = 12
theme = catppuccin-mocha
background-opacity = 0.95
cursor-style = block

Ghostty reloads configuration when you reopen a window, and most builds support a live reload keybinding.

Themes and Fonts

Ghostty bundles a large collection of themes and can enumerate the fonts it can see. Browse them directly from the command line:

# Interactively preview every bundled theme
ghostty +list-themes

# List the font families Ghostty can find
ghostty +list-fonts

Once you have chosen a theme, set it with theme = <name> in your config, as shown above.

Keybindings

Every action can be rebound with a keybind entry. The format is keybind = trigger=action:

keybind = ctrl+shift+t=new_tab
keybind = ctrl+shift+enter=new_split:right
keybind = ctrl+shift+r=reload_config

To discover the available actions and the current bindings, run:

ghostty +list-keybinds

Splits and Tabs

Ghostty manages panes and tabs natively, so you often do not need a separate multiplexer for simple layouts. With the default GTK bindings you can open a new tab, split the current pane, and move focus between splits, all of which are configurable through the keybind entries above.

Validating Your Config

If a setting does not seem to apply, ask Ghostty to check the file for errors:

ghostty +validate-config

This reports any unknown keys or malformed values so you can fix them before launching.

Keeping Ghostty Updated

Because Ghostty came from the repository, updates are part of routine maintenance:

sudo apt update && sudo apt upgrade

Other Tools from deb.griffo.io

The repository packages several tools that make a great terminal setup even better:

  • zellij - A terminal multiplexer for persistent, scriptable layouts.
  • starship - A fast, customisable prompt that looks superb in Ghostty.
  • nushell - A modern shell to run inside your new terminal.
  • fastfetch - A system information tool to show off your setup.

Troubleshooting

GPG or Key Errors

If APT reports the repository is not signed, re-add the key:

sudo rm -f /etc/apt/keyrings/deb.griffo.io.gpg
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update

Package Not Found

If apt install ghostty cannot find the package:

  1. Run sudo apt update again to refresh the index.
  2. Confirm your Debian release is supported (Bookworm, Trixie, or Sid).
  3. Inspect the sources entry:
cat /etc/apt/sources.list.d/deb.griffo.io.list

Rendering or GPU Issues

Ghostty relies on OpenGL, which can misbehave inside virtual machines or over remote sessions with limited GPU support. If windows fail to draw or appear corrupted, confirm your graphics stack is working:

glxinfo | grep "OpenGL renderer"

Install mesa-utils for glxinfo if needed, and make sure you are running inside a proper graphical session rather than a bare SSH connection.

Uninstalling

To remove Ghostty:

sudo apt remove ghostty

To remove the repository as well:

sudo rm -f /etc/apt/sources.list.d/deb.griffo.io.list
sudo rm -f /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update

Conclusion

Ghostty proves that a terminal can be both blisteringly fast and genuinely enjoyable to configure, with GPU-accelerated rendering, native desktop integration, and a config file you can actually read. On Debian, the deb.griffo.io repository is the simplest way to install a current build and keep it up to date with the rest of your system.

Install it once, drop in a short config file, and Ghostty becomes a terminal you will not want to leave.

Resources


Disclaimer: The deb.griffo.io repository is an unofficial community project and is not affiliated with the official Debian or Ubuntu projects, or with the upstream Ghostty project.