Ghostty crashes on Fedora 44 → switching to Ptyxis (with Starship)

Published 14 June 2026

date
env
linux Fedora 44 (Wayland) — Framework Laptop 16, AMD RX 7600 / 890M macos N/A — stable on macOS

Last updated: 2026-06-14 — Fedora 44, Framework laptop (AMD RX 7600 / 890M), Wayland.

TL;DR

Ghostty kept closing abruptly on Fedora 44 (it was fine on macOS). It’s a known Ghostty bug on Linux, not a problem with Starship or zsh. I switched to Ptyxis (Fedora’s default terminal). Because Starship is configured shell-side (.zshrc + starship.toml), it works in Ptyxis with no migration — the only tweak was enabling login shell in the Ptyxis profile.


1. The problem: Ghostty crashing on Fedora 44

Symptom

Ghostty closes abruptly / crashes at startup on Fedora 44, while the same setup is stable on macOS.

Root cause

A Ghostty-specific bug on Linux — nothing to do with Starship, zsh, or the prompt.

  • Ghostty ships a bundled copy of fontconfig and exports its symbols into the global symbol table.
  • At startup Ghostty loads its window icon via glycin (the GTK4 SVG icon loader, also used by Files, Image Viewer, etc.).
  • When glycin calls FcConfigGetCacheDirs, the linker resolves it to Ghostty’s bundled fontconfig instead of the system one. The mismatched state causes a use-after-free / double-free in FcStrSetDestroy → SIGSEGV → the window vanishes.

This is why only Ghostty crashes while every other GTK4 app handles the same icon fine, and why macOS is unaffected (the symbol clash is Linux-only).

Affected setup (exact match)

  • ghostty-1.3.1-2.fc44
  • glycin-libs-2.1.1
  • system fontconfig-2.17
  • Fedora 44, Wayland, AMD GPU

Status / tracking

  • Upstream discussion: ghostty-org/ghostty #12555 https://github.com/ghostty-org/ghostty/discussions/12555
  • The fix (link system fontconfig on Linux, PR #11152) was reverted, so 1.3.1 still ships the bug.
  • Revisit Ghostty after a dnf upgrade once the Fedora package picks up the fix.
  • “Unable to acquire an OpenGL context” on Fedora 43+ — GTK/driver issue.
  • “Failed to create EGL display” after Mesa updates — a Mesa bug, not Ghostty (#8219).
  • tmux allow-passthrough on crash on Fedora 44 Wayland (#12551).

2. The alternative: Ptyxis

Ptyxis is the right fallback on Fedora because it is the most platform-aligned choice:

  • Default terminal in Fedora 41–44, GTK4, maintained by a GNOME/Fedora developer.
  • Container-aware out of the box (Podman / Toolbx / Distrobox) — ideal for a Fedora dev workflow.
  • Stable, zero-config, already installed.

Other community options considered (2026):

  • Ghostty — most popular (#1 on GitHub) but currently crashing here; the “trendy” pick to return to once fixed.
  • Kitty — long-standing Linux power-user favorite; stable, cross-distro, good AMD/Wayland support.
  • Alacritty — lightest/fastest, but needs tmux for tabs/splits.

Note on the shell: OhMyZsh is now considered the slow/legacy option (200–600 ms startup). The community-aligned stack in 2026 is zsh + Starship (already in use here), optionally with zinit for plugins. OhMyZsh is stable — it just isn’t the speed/fashion choice.


3. What was changed to plug Ptyxis into Starship

Key insight: Starship is terminal-agnostic. It’s configured in the shell, not the terminal:

  • ~/.zshrc line 8: command -v starship >/dev/null && eval "$(starship init zsh)"
  • ~/.config/starship.toml (the prompt config)

Ptyxis launches the login shell (zsh), which sources .zshrc, which initializes Starship. So Starship works in Ptyxis with no migration and no config copying.

The only change made

Enabled login shell on the Ptyxis default profile, so it also sources .zprofile / .zlogin — matching how Ghostty behaved on macOS (Ghostty runs login shells by default).

Profile UUID: 7a6d9b601a890300bc38e9bc6a2be6a9

Terminal window
# Enable login shell on the Ptyxis default profile
uuid="7a6d9b601a890300bc38e9bc6a2be6a9"
path="/org/gnome/Ptyxis/Profiles/$uuid/"
gsettings set "org.gnome.Ptyxis.Profile:$path" login-shell true
# Verify
gsettings get "org.gnome.Ptyxis.Profile:$path" login-shell # -> true

To find your own profile UUID:

Terminal window
gsettings get org.gnome.Ptyxis default-profile-uuid

What was already correct (no change needed)

  • ✅ ptyxis installed (Fedora 44 default).
  • ✅ zsh is the login shell (getent passwd "$USER" → /usr/bin/zsh).
  • ✅ Starship wired into .zshrc + starship.toml present.
  • ✅ System default terminal resolves to Ptyxis (via xdg-terminal-exec, no override list → Fedora default).

Verify Starship loads

Terminal window
# Should print: starship OK; STARSHIP_SHELL=zsh
/usr/bin/zsh -i -c 'command -v starship >/dev/null && echo "starship OK; STARSHIP_SHELL=$STARSHIP_SHELL"'

(Any can't change option: zle warnings here are only because zsh runs without a real TTY in this test — they don’t appear in actual Ptyxis use.)


4. Using it

Open Ptyxis (Super → “Ptyxis”, or your “open terminal” shortcut). The Starship prompt, plus autosuggestions / fzf / zoxide / eza aliases from .zshrc, all load automatically.

Troubleshooting: missing glyphs in the prompt

If icons/segments look broken, it’s a font issue, not Starship — set a Nerd Font (see next section).


Set a Nerd Font in Ptyxis

Starship’s icons need a Nerd Font. In Ptyxis the font is an app-level setting (not per-profile), controlled by two keys: use-system-font must be false for a custom font to apply.

Installed Nerd Fonts on this machine

Terminal window
fc-list | grep -iE "nerd|nf-" | cut -d: -f2 | sort -u

Currently available:

  • JetBrainsMono Nerd Font (+ Mono / Propo / NL variants) ← in use
  • Hack Nerd Font (+ Mono / Propo variants)

Tip: prefer the plain ... Nerd Font family in a terminal (double-width icons render best). The Mono variant forces single-width icons; Propo is proportional.

Set the font (current setup)

Terminal window
gsettings set org.gnome.Ptyxis use-system-font false
gsettings set org.gnome.Ptyxis font-name 'JetBrainsMono Nerd Font 12'
# Verify
gsettings get org.gnome.Ptyxis use-system-font # -> false
gsettings get org.gnome.Ptyxis font-name # -> 'JetBrainsMono Nerd Font 12'

The format is a Pango string: Family Size. Change 12 to taste. Applies to new windows/tabs.

Alternative font

Terminal window
gsettings set org.gnome.Ptyxis font-name 'Hack Nerd Font 12'

GUI equivalent

Ptyxis → Preferences → (profile) → Text / Font (turn off “Use system font”, pick the Nerd Font).

Installing more Nerd Fonts

Drop .ttf files in ~/.local/share/fonts/<FontName>/ then refresh the cache:

Terminal window
fc-cache -f

Removing Ghostty cleanly

Ghostty was installed from the COPR repo scottames/ghostty (not the Fedora base repos), so a clean removal means: uninstall the package, drop the COPR repo, and remove user config.

The hand-tuned config is worth keeping for a future reinstall or to mirror in Ptyxis:

Terminal window
cp ~/.config/ghostty/config ~/Dropbox/HowTo/ghostty-config.backup

Saved settings were: JetBrainsMono Nerd Font 12, theme TokyoNight Night, bar cursor, 8px padding, copy-on-select.

2. Remove the package + COPR repo (needs sudo)

Terminal window
sudo dnf remove -y ghostty
sudo dnf copr remove scottames/ghostty # deletes /etc/yum.repos.d/_copr:...scottames:ghostty.repo
sudo dnf autoremove -y # optional: drop now-orphaned deps

3. Remove user files

Terminal window
rm -rf ~/.config/ghostty ~/.cache/ghostty ~/.local/share/ghostty ~/.local/state/ghostty

(Only ~/.config/ghostty existed on this machine.)

4. Verify it’s gone

Terminal window
rpm -q ghostty # -> package ghostty is not installed
ls /etc/yum.repos.d/ | grep ghostty # -> (no output)
which ghostty # -> not found

5. Going back to Ghostty later

Since the COPR repo was removed, re-enable it and reinstall:

Terminal window
sudo dnf copr enable scottames/ghostty
sudo dnf install ghostty
ghostty --version # check it's past the #12555 fix

Then restore the config and launch a few times to confirm no startup crash:

Terminal window
mkdir -p ~/.config/ghostty
cp ~/Dropbox/HowTo/ghostty-config.backup ~/.config/ghostty/config

If stable, you can switch back — your zsh + Starship setup needs no changes either way.