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 installQuick 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],
)Navigating large documents
- 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
| Feature | Typesetter | Typst web app | VS Code + Tinymist |
|---|---|---|---|
| Native GTK4 UI | ✅ | ❌ (browser) | ❌ (Electron) |
| Live preview | ✅ | ✅ | ✅ |
| Click-to-jump | ✅ | ✅ | ✅ |
| Fully offline | ✅ | ❌ | ✅ |
| Accessibility simulation | ✅ | ❌ | ❌ |
| Full editor features | Minimal | Moderate | Full IDE |
| Resource usage | Low | N/A | High |