Typesetter

A minimalist, local-first GTK4 editor for Typst documents with live preview and GNOME integration.

Typesetter is a lightweight desktop application for writing Typst documents, built in Rust with GTK4 and libadwaita. It follows the GNOME Human Interface Guidelines and keeps the interface deliberately minimal — the editor occupies one side of the window and a live rendered preview occupies the other, updating as you type. All processing happens locally; there is no cloud backend and no account required.

Features

  • Live preview — the rendered document updates in real time as you edit the source, with no manual compile step.
  • Click-to-jump — click anywhere in the rendered preview to jump to the corresponding source location in the editor.
  • Magnifier — click and hold on the preview to inspect fine typographic details without zooming the whole window.
  • Syntax highlighting — Typst markup and code blocks are highlighted in the editor pane.
  • Offline package support — works fully offline for local documents; fetches Typst package imports from the network only when needed.
  • Accessibility checking — simulate deuteranopia, protanopia, tritanopia, and other forms of colour blindness in the preview to check document accessibility.
  • Dark mode — includes an "Invert Lightness" option for the preview in dark mode so the rendered output matches the system theme.
  • Document statistics — page, word, and character counts shown at a glance.
  • Centered scrolling — the editing cursor stays visually centred as you type, reducing eye movement on long documents.
  • Fully local — your files never leave your machine.

Installation

Typesetter is distributed as a Flatpak, which works on Debian, Fedora, Arch, and all other Linux distributions.

# Flatpak (recommended)
flatpak install flathub net.trowell.typesetter

If Flatpak is not yet set up, add the Flathub remote first:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Building from source requires Rust (stable), GTK4, libadwaita, and Meson:

# Debian / Ubuntu build dependencies
apt install libgtk-4-dev libadwaita-1-dev meson ninja-build

# Fedora build dependencies
dnf install gtk4-devel libadwaita-devel meson ninja-build

# Clone and build
git clone https://gitlab.gnome.org/haydn/typesetter.git
cd typesetter
meson setup build
ninja -C build
ninja -C build install

Quick Start

Typesetter opens to a blank Typst document. Start typing in the left pane and the rendered output appears immediately in the right pane.

A minimal Typst document:

#set document(title: "My Report", author: "Alice")
#set page(margin: 2cm)
#set text(font: "Linux Libertine", size: 11pt)

= Introduction

This is a paragraph of body text. Typst supports *bold*, _italic_,
and `monospace` inline formatting.

== Section

#figure(
  table(
    columns: 2,
    [Name], [Value],
    [Alpha], [1.0],
    [Beta],  [2.0],
  ),
  caption: [A simple table],
)
  • Click in the preview to jump the editor cursor to the matching source line.
  • Use the document statistics panel to track word count targets.
  • Enable centered scrolling in preferences to keep the active line centred vertically as you write.

Accessibility checking

Open the preview options and select a colour blindness simulation mode to see how your document renders for readers with different colour vision. Supported modes include deuteranopia (red-green), protanopia (red), tritanopia (blue), and achromatopsia (total colour blindness).

Typesetter vs other Typst editors

FeatureTypesetterTypst web appVS Code + Tinymist
Native GTK4 UI❌ (browser)❌ (Electron)
Live preview
Click-to-jump
Fully offline
Accessibility simulation
Full editor featuresMinimalModerateFull IDE
Resource usageLowN/AHigh