March 12, 2026 5 minutes
Date: 2026-03-12 OS: Ubuntu 24.04.4 LTS System: Intel i7-13700K · 32GB RAM · NVIDIA RTX 4070 SUPER · CUDA 12.8
Installed Ghostty v1.3.0 (a modern GPU-accelerated terminal emulator written in Zig) on Ubuntu 24.04, configured fonts, theme, key bindings, and verified GPU rendering.
Ghostty provides no official Linux binary releases. It was installed via Snap, which ships the latest stable build with classic confinement:
sudo snap install ghostty --classicVerified installation:
Ghostty 1.3.0
- channel: stable
- app runtime: .gtk
- GTK version: 4.14.5 (build & runtime)
- libadwaita: 1.5.0
- renderer: renderer.generic.Renderer(renderer.OpenGL)
- libX11: enabled
- libwayland: enabledBinary location: /snap/bin/ghostty
Installed from the Ubuntu apt repository:
sudo apt install fonts-jetbrains-monoDownloaded from GitHub releases and installed to user font directory:
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
curl -fLo "NerdFontsSymbolsOnly.tar.xz" \
"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/NerdFontsSymbolsOnly.tar.xz"
tar -xf NerdFontsSymbolsOnly.tar.xz
rm NerdFontsSymbolsOnly.tar.xz
fc-cache -fv ~/.local/share/fontsInstalled files:
SymbolsNerdFont-Regular.ttfSymbolsNerdFontMono-Regular.ttfConfig file location: ~/.config/ghostty/config
# Ghostty Configuration
# https://ghostty.org/docs/config
# --- Font ---
font-family = "JetBrains Mono"
font-family = "Nerd Fonts Symbols Only"
font-size = 13
font-feature = -liga # disable ligatures (enable with +liga if preferred)
adjust-cell-height = 10%
# --- Theme ---
theme = "Catppuccin Mocha"
# --- Window ---
window-padding-x = 10
window-padding-y = 8
window-decoration = true
gtk-titlebar = true
background-opacity = 0.95
background-blur-radius = 20
# --- Cursor ---
cursor-style = block
cursor-style-blink = true
# --- Shell ---
shell-integration = zsh
shell-integration-features = cursor,sudo,title
# --- Scrollback ---
scrollback-limit = 10000
# --- Clipboard ---
clipboard-read = allow
clipboard-write = allow
clipboard-trim-trailing-spaces = true
# --- Mouse ---
mouse-hide-while-typing = true
# --- Tabs / Title ---
title = "Ghostty"
# --- Key Bindings ---
keybind = ctrl+t=new_tab
keybind = ctrl+shift+minus=new_split:down
keybind = ctrl+shift+backslash=new_split:right
keybind = ctrl+shift+h=goto_split:left
keybind = ctrl+shift+l=goto_split:right
keybind = ctrl+shift+k=goto_split:up
keybind = ctrl+shift+j=goto_split:down
keybind = ctrl+w=close_surface
keybind = ctrl+equal=increase_font_size:1
keybind = ctrl+minus=decrease_font_size:1
keybind = ctrl+zero=reset_font_sizegtk-titlebar = true — Required for mouse dragging of the window. Initially set to false which removed the title bar and prevented dragging. Fixed by re-enabling.theme = "Catppuccin Mocha" — Theme name must include quotes and use the exact display name (with spaces), not a hyphenated slug like catppuccin-mocha.renderer — This field was removed from Ghostty config in recent versions. Ghostty uses OpenGL GPU rendering by default on Linux; the field is not needed.Registered Ghostty with the system-wide terminal alternatives:
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /snap/bin/ghostty 50
sudo update-alternatives --set x-terminal-emulator /snap/bin/ghosttyGhostty on Linux uses OpenGL exclusively — GPU rendering is on by default and cannot be disabled via config. Confirmed the system is rendering with the discrete NVIDIA GPU (not software fallback):
DISPLAY=:1 glxinfo | grep -E "direct rendering|renderer string|vendor string|OpenGL version"Output:
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 4070 SUPER/PCIe/SSE2
OpenGL version string: 4.6.0 NVIDIA 580.126.09mesa-utils was installed to enable the glxinfo command:
sudo apt install mesa-utils| Action | Shortcut |
|---|---|
| New tab | Ctrl+T |
| Close tab/pane | Ctrl+W |
| Split down | Ctrl+Shift+- |
| Split right | Ctrl+Shift+\ |
| Navigate split left | Ctrl+Shift+H |
| Navigate split right | Ctrl+Shift+L |
| Navigate split up | Ctrl+Shift+K |
| Navigate split down | Ctrl+Shift+J |
| Increase font size | Ctrl+= |
| Decrease font size | Ctrl+- |
| Reset font size | Ctrl+0 |
| Package | Version | Method |
|---|---|---|
| ghostty | 1.3.0 | snap |
| fonts-jetbrains-mono | 2.304+ds-4 | apt |
| Nerd Fonts Symbols Only | 3.3.0 | manual (~/.local/share/fonts) |
| JetBrainsMono Nerd Font | 3.3.0 | manual (~/.local/share/fonts/JetBrainsMonoNerd) |
| mesa-utils | 9.0.0-2 | apt |
| starship | 1.24.2 | curl install script |
Installed via the official install script from starship.rs:
curl -sS https://starship.rs/install.sh -o /tmp/starship-install.sh
sudo sh /tmp/starship-install.sh --yesBinary location: /usr/local/bin/starship
The system had Oh My Zsh + Powerlevel10k already installed, which was overriding Starship. Three changes were made to ~/.zshrc:
ZSH_THEME="" (was powerlevel10k/powerlevel10k)source ~/.p10k.zshAdded to the bottom of ~/.zshrc:
# Starship prompt
eval "$(starship init zsh)"Config file: ~/.config/starship.toml
A custom two-line prompt with a segmented powerline style (Catppuccin Mocha colors):
| Segment | Content | Color |
|---|---|---|
| OS + Username | Ubuntu icon + username | Purple #7B68EE |
| Directory | Folder icon + path (truncated to 3) | Indigo #4B4B8A |
| Git branch + status | Branch icon + dirty/ahead/behind indicators | Dark blue #2E2E5A |
| Language versions | Python / Conda / Node / Rust / Go (shown when active) | Navy #1A1A3A |
| Command duration | Shows elapsed time for commands >2s | Yellow |
| Memory usage | Shows RAM when >75% | Red |
| Time | Current time HH:MM | Muted |
Second line: ❯ (green on success, red on error).
GNOME Terminal only loads a single font — it cannot fall back to a separate symbols font the way Ghostty does. This caused Nerd Font icons in the Starship prompt to render as boxes.
Installed JetBrainsMono Nerd Font (fully patched, all icons embedded):
curl -fLo /tmp/JetBrainsMono.tar.xz \
"https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/JetBrainsMono.tar.xz"
mkdir -p ~/.local/share/fonts/JetBrainsMonoNerd
tar -xf /tmp/JetBrainsMono.tar.xz -C ~/.local/share/fonts/JetBrainsMonoNerd
fc-cache -fv ~/.local/share/fonts/JetBrainsMonoNerd96 font files installed.
| Terminal | Font | Notes |
|---|---|---|
| Ghostty | JetBrainsMono Nerd Font | Updated from dual-font setup |
| GNOME Terminal | System default | Reverted — custom fonts caused unacceptable letter spacing |
Note: GNOME Terminal was tested with
JetBrainsMono Nerd FontandJetBrainsMono Nerd Font Monobut both caused large letter spacing issues. Reverted to system default font. Starship icons may appear as boxes in GNOME Terminal but text is fully readable.