Simple yet full-featured LaTeX editor for Linux, Windows, and macOS, written in Python with GTK. (A fork of Setzer.)
This is a fork of Setzer by cvfosammmm. The original project site is https://www.cvfosammmm.org/setzer/, licensed under GPL-3.0-or-later. This fork is maintained at https://github.com/Sam-Fic/NeoSetzer.
NeoSetzer is a LaTeX editor written in Python with GTK. Feedback on design, code architecture, bugs, and feature requests is welcome through this repository's issue tracker.
Based on the original project, a large number of components have been migrated to Libadwaita, which is modern and beautiful.
The UI/UX design has been thoroughly optimized; I hope you’ll appreciate the meticulous details I’ve crafted :)
NeoSetzer runs on Linux, Windows, and macOS from a single codebase. No platform fork or separate build is required.
| Platform | Status | Runtime stack |
|---|---|---|
| Linux (Debian/Ubuntu 24.04+, Fedora, Arch, ...) | Fully supported | System GTK4 + libadwaita |
| Windows 10/11 (x86_64) | Supported via MSYS2 | Portable MSYS2 UCRT64 GTK4 stack |
| macOS Apple Silicon (ARM64) | Supported | Self-contained .app release package |
| WSL (Windows Subsystem for Linux) | Supported as Linux app | Linux distribution inside WSL |
WebKitGTK note: The optional help-panel browser (WebKitGTK 6.0) is not included in the Windows portable package, so it is unavailable on Windows. NeoSetzer detects this at runtime (
HAS_WEBKIT) and automatically falls back — search still works, only in-app HTML rendering is disabled. This is by design and does not affect LaTeX editing or PDF preview.
This fork is not published on Flathub. Ways to get it:
- Windows portable zip —
setzer_<version>_windows_x64.zipin the GitHub Releases of this fork. Extract anywhere and runucrt64\bin\setzer.bat; no MSYS2 or installer needed. See Using the portable zip. - Debian/Ubuntu package — Prebuilt
.debpackages are published in the GitHub Releases of this fork. Check there for the latest build. - macOS Apple Silicon application — Download
setzer_<version>_macos_arm64.zip, extractSetzer.app, and see macOS packaging notes for the current Gatekeeper and signing status. - Build from source (see below) — works on any Linux distribution or Windows (via MSYS2) with the dependencies available.
To run NeoSetzer with GNOME Builder, click the "Clone" button on the start screen, paste https://github.com/Sam-Fic/NeoSetzer.git, wait for the clone to finish, and press the play button. GNOME Builder will build NeoSetzer and its dependencies before launching it.
Warning: Building NeoSetzer this way may take a long time.
NeoSetzer is developed and tested on Ubuntu.
Supported distributions: NeoSetzer requires WebKitGTK 6.0 (gir1.2-webkit-6.0), which is available on Ubuntu 24.04 (Noble) or newer and Debian 13 (trixie) or newer. On older releases (e.g. Ubuntu 22.04, Debian 12) the
gir1.2-webkit-6.0package does not exist and the.debcannot be installed there. If you are on an older distribution, build from source as described below — the GTK4/WebKit bindings are resolved at runtime.
-
Run the following command to install prerequisite packages:
# Run in a Linux terminal apt-get install meson ninja-build python3-gi gir1.2-gtk-4.0 gir1.2-gtksource-5 gir1.2-pango-1.0 gir1.2-poppler-0.18 gir1.2-webkit-6.0 gettext python3-cairo python3-gi-cairo gir1.2-adw-1 python3-numpy gir1.2-xdp-1.0Note:
gir1.2-xdp-1.0(the libportal GIR) is only used for Linux/Flatpak detection. It is not needed on Windows (see note below). -
Clone the NeoSetzer repository from GitHub:
# Run in a Linux terminal git clone https://github.com/Sam-Fic/NeoSetzer.git -
Change into the NeoSetzer folder:
# Run in a Linux terminal cd NeoSetzer
-
Run meson:
# Run in a Linux terminal meson setup builddirNote: Some distributions may not include systemwide installations of Python modules which aren't installed from distribution packages. In this case, you want to install NeoSetzer in your home directory with
meson setup builddir --prefix=~/.local. -
Install NeoSetzer with:
# Run in a Linux terminal ninja install -C builddirOr run it locally:
# Run in a Linux terminal ./scripts/dev/setzer.dev
NeoSetzer supports Windows natively. The GTK4 runtime stack is provided by MSYS2 (the only reliable source of up-to-date GTK4 / libadwaita / GtkSourceView 5 / Poppler binaries on Windows).
There are two ways to get it running:
- Portable zip — the easy way, no MSYS2 required. See directly below.
- Build from source — for development or if you want to modify NeoSetzer. See Step 1 onwards.
setzer_<version>_windows_x64.zip is a self-contained build (~128 MB, ~349 MB extracted) that bundles Python, GTK4 and every other runtime dependency. Nothing needs to be installed and nothing is written to the registry.
-
Download
setzer_<version>_windows_x64.zipfrom the GitHub Releases page. -
Extract it anywhere you like — a USB stick,
D:\Apps\NeoSetzer, your desktop. There is no fixed installation path.Right-click → "Extract All…" in File Explorer works. So does PowerShell:
Expand-Archive setzer_74_windows_x64.zip -DestinationPath D:\Apps\NeoSetzer
-
Run
ucrt64\bin\setzer.batinside the extracted folder — double-click it in File Explorer, or call it from cmd / PowerShell.PowerShell note: run it without quotes, or prefix it with the call operator (
& "…\setzer.bat"). A bare quoted path is treated as a string and only echoed, not executed. -
To pin it to the taskbar or Start menu, create a shortcut to
setzer.bat(right-click → "Send to" → "Desktop (create shortcut)").
To uninstall, just delete the folder. Your settings live in %LOCALAPPDATA%\setzer (i.e. C:\Users\<you>\AppData\Local\setzer) and are kept across versions — remove that folder too if you want a completely clean state.
Do I still need MSYS2? No. Everything is bundled. Do not add the extracted
ucrt64\binto your systemPATH— if you also have MSYS2 installed, the two GTK4 stacks can shadow each other and cause hard-to-diagnose DLL errors.LaTeX is still a separate install. The zip contains the editor, not a LaTeX distribution — see "Installing a LaTeX distribution on Windows" below.
To build from source on Windows, install MSYS2, then follow the dependency installation and build steps in docs/packaging/windows.md.
To build your documents from within the app you have to install a LaTeX interpreter. For example if you want to build with XeLaTeX, on Ubuntu this can be installed like so:
apt-get install texlive-xetex
To specify a build command open the "Preferences" dialog and choose the command you want to use under "LaTeX Interpreter".
See docs/packaging/debian.md for the Debian package and release workflow.
See docs/packaging/windows.md for the Windows portable-package workflow, and docs/packaging/macos.md for the macOS application-package workflow.
Development and discussion for this fork take place on GitHub at https://github.com/Sam-Fic/NeoSetzer. For the original upstream project, see https://github.com/cvfosammmm/setzer.
NeoSetzer draws some inspiration from other LaTeX editors. For example the symbols in the sidebar are mostly the same as in LaTeXila, though I continue to change / reorganize them. The autocomplete suggestions are mostly the same as in Texmaker. I took some icons from Gnome Builder. Syntax highlighting schemes are based on the Tango scheme in GtkSourceView and the Gnome Builder Scheme.
Parts of the user interface are modeled after GNOME Text Editor.
NeoSetzer is licensed under GPL version 3 or later. See the COPYING file for details.
