The font manager Linux never got — and Windows & macOS make you pay for.
Preview, organize, activate and install fonts across all three desktop platforms,
from one clean, fast, native app. Your fonts never leave your machine.
⬇ Download · 🌐 Website · 💻 Source Code · 👤 The Developer
The library: every family rendered live, one toggle away from any app's font menu.
- Why ZFontManager?
- Feature tour
- Your whole library, rendered live
- Activate & deactivate — the killer feature
- Try a font before committing
- Apply a font in Photoshop or Illustrator
- Installing fonts
- A trash can, not a shredder
- Organize: tags, collections, favorites, notes
- Find anything
- Compare fonts side by side
- The waterfall view
- Peek inside a font
- Export a specimen sheet
- The command palette
- Themes, sound & motion
- Your language
- Back up your curation
- Keyboard shortcuts
- Translations
- Getting ZFontManager
- Platform notes
- Privacy
- FAQ
- Building from source
- About the developer
- License
If you've ever worked with type on Linux, you know the drill: fonts live in scattered folders, previewing means opening each file one by one, and "managing" them means a terminal and crossed fingers. On Windows and macOS the situation is better — but the good tools cost real money.
ZFontManager is the answer to both:
- One app, three platforms. The same clean interface on Linux, Windows and macOS.
- Native and fast. Not a website in a box — it starts quickly, scrolls smoothly through hundreds of families, and feels at home on your desktop.
- Speaks your language. Nine languages, picked up from your system automatically — English, Deutsch, Español, Français, Português (Brasil), Русский, 日本語, 简体中文 and 繁體中文.
- Yours. Free, open source (GPL-3.0), no account, no cloud, no telemetry. Everything happens on your machine.
Note
ZFontManager is currently at version 0.3.0 — see the changelog for what's new. It's already very usable day-to-day, but expect the occasional rough edge — and please report anything odd!
On first launch, ZFontManager scans the standard font locations on your system — both the system-wide ones and your personal user fonts — and builds your library automatically. You can add extra folders to watch in Settings, and the app notices when new fonts appear in them.
Every font family is shown in its own typeface, not as a generic name in a list. Type any sentence into the preview box at the top — your brand name, a headline you're working on — and the entire library re-renders in it instantly. A size slider takes the preview anywhere from small print to poster size.
Fonts with many weights and italics are grouped into a single family card. Expand the card and every style — Light, Regular, Bold, Black, the italics — renders live underneath.
Three views, switchable from the top bar:
| View | What it's for |
|---|---|
| Grid | Big, comfortable cards — the browsing view |
| List | Compact rows with style count, format and size — the overview |
| Waterfall | One family shown at every size at once — the type-nerd view |
This is what separates a font manager from a font viewer.
A huge font library is wonderful — until you open the font picker in your design app and have to scroll past 900 entries. Deactivating a font in ZFontManager removes it from other applications' font menus without uninstalling it. The files stay exactly where they are; the font just goes to sleep. Flip the toggle again and it's back.
- Toggle a single family with one click (or press Space)
- Select many families and activate/deactivate them all at once
- Deactivated fonts stay in your library, gently dimmed, ready to wake up
Each platform has its own proper mechanism under the hood (see Platform notes) — but from where you sit, it's just a switch.
Tip
Keep your everyday fonts active and park the other 800 decorative ones. Your design app's font menu becomes usable again, and every font is still one click away.
Not sure you want that font cluttering your menus permanently? Right-click → "Activate until close" wakes a font up for this session only. When you quit ZFontManager, it's automatically put back to sleep. Perfect for auditioning a typeface in your design app without any cleanup afterwards.
On Windows and macOS, right-click a family → "Apply in Photoshop…" or "Apply in Illustrator…" (also in the command palette for the selected family). ZFontManager hands the font to the running app: every selected text layer or text frame switches to it, and if nothing is selected, a new text layer is added with the family name as its sample. A sleeping font is woken "until close" first, so auditioning never installs anything permanently.
Note
This integration is new in 0.3.0 and could not be tested against a real Photoshop or Illustrator before release. It fails safely (every problem shows up as a toast, nothing is changed in your document), but if it misbehaves for you, please open an issue with the app version and what the toast said.
Drag anything into the window:
- individual font files (TTF, OTF, TTC, WOFF and friends),
- whole folders,
- even ZIP archives — fresh from a font site, no unzipping needed.
ZFontManager installs them into your user font directory, and they appear in the library immediately. A progress toast keeps you informed on big drops.
Uninstalling a font never silently deletes anything. Removed fonts go to a restorable Trash inside the app — the actual files are kept safe. Made a mistake? Open the Trash tab, hit Restore, and the font is back exactly where it was. Only "Empty Trash" or a per-item "Delete permanently" actually removes files, and both are clearly marked.
Four complementary ways to impose order on font chaos:
- Tags — free-form labels on any family ("condensed", "80s", "client-x"). Tags appear in the sidebar and act as instant filters. Tag many fonts at once via multi-select.
- Collections — folders you curate by hand, per project or per client. Right-click any font → Collections → add it. A font can live in as many collections as you like.
- Favorites — one star for your go-to typefaces, with its own sidebar view. Press F on any selected font.
- Notes — a small text field per family for things you'd otherwise forget: "licensed for Client X only", "kerning breaks above 60px".
- Search by name, live as you type (press / to jump to the box).
- Filter by classification — Serif, Sans, Mono, Script, Display and more.
- Filter by writing system — Latin, Cyrillic, Greek, and others.
- Variable fonts only — one switch to see just the flexible ones.
- Sort by name, style count, or file size.
Filters combine, and the empty state always tells you which filters are active so you're never staring at a mysteriously empty library.
Select two to four families — Ctrl+Click each one, or hold Shift and use the arrow keys — and a small bar appears at the bottom of the window with a Compare button. Click it (or just press C, or right-click the selection) and the compare view opens: the same preview text rendered in parallel, resizable, so you can finally settle "which of these three sans-serifs is the one" with your own eyes instead of your memory.
One family, every size from small to huge, stacked on one screen. This is how type designers evaluate a font — you can instantly see where it gets muddy, where the details shine, and whether it holds up at footnote size.
Click any family and the detail panel slides in:
- Every style listed with live samples and per-style export
- Variable font axes — drag sliders for weight, width, slant and whatever else the font offers, and watch the preview morph in real time
- OpenType features — ligatures, small caps, stylistic alternates, oldstyle numerals… toggle them and see exactly what they do before you enable them in your design app
- Character map — every glyph the font actually contains; click a character to copy it
- The practical facts — format, file size, file path, license info when the font declares one, plus your tags and notes
Right-click a family → Export specimen and get a beautiful, shareable PNG type specimen — the classic "alphabet + sizes + sample text" sheet. Perfect for sending to a client ("option A or option B?") without them needing the font installed.
You can also export the font files themselves (single style or whole family), or export your entire font list as metadata for spreadsheet people.
Press CtrlK and type. Jump to any view, open any collection, switch themes, rescan, find a specific font by name — everything in the app is a few keystrokes away. If you use it in your editor or browser, it works exactly the way you expect.
- Dark and light themes, plus a System option that follows your desktop. Same glass aesthetic, different light.
- Interface sounds — soft, synthesized feedback for toggles and events. Three levels: on, subtle, or off.
- Reduced motion — replaces the springy animations with quick fades, independently of (or together with) your system-wide preference.
- A first-launch tour glides a spotlight over the interface and teaches the essentials in a minute. Replayable anytime from Settings.
ZFontManager follows your desktop language on first launch, and you can override it any time in Settings → Language (or from the command palette).
Available now: English, Deutsch, Español, Français, Português (Brasil), Русский, 日本語, 简体中文, 繁體中文.
More are welcome — see Translations.
Your tags, collections, favorites and notes are the real work — the fonts themselves you can always re-download. Settings → Export library data saves all of it to a single file; Import merges it back in, on this machine or another one.
The whole app is keyboard-navigable — every card, button and menu. Press ? inside the app (or click Shortcuts in the sidebar) for this same list in a pretty overlay.
Navigate
| Keys | Action |
|---|---|
| Ctrl K | Open the command palette |
| / | Jump to search |
| ↑ ↓ ← → | Move through the library |
| Home / End | First / last font |
| Tab | Walk every control, font cards included |
| Esc | Close panels, deselect |
Select
| Keys | Action |
|---|---|
| Enter | Select the focused card |
| Shift ↑/↓ | Extend the selection |
| Ctrl + Click | Add a font to the selection |
| Shift + Click | Select a range |
Act on the selection
| Keys | Action |
|---|---|
| Space | Activate / deactivate |
| C | Compare the selected fonts (2–4) |
| F | Favorite / unfavorite |
| Del | Move to Trash (always restorable) |
| Shift F10 or ≡ Menu | Open the context menu — arrows browse it |
| ? | Show the shortcuts overlay |
Every piece of interface text lives in one JSON file per language under
src/locales/. Adding a language, or fixing a single phrase that
reads awkwardly, is a small pull request — no Rust, no TypeScript, no build
tooling required.
- docs/TRANSLATING.md — how to add a language or fix wording
pnpm i18n:check— reports coverage, unknown keys and placeholder mistakes
Two ways to help, both fine:
- Send a pull request with a new or corrected language file.
- Just ask. Open an issue naming the language you want and it gets added — no git required. Reviewing a draft as a native speaker counts too, and is often the part that's actually missing.
Partial translations are welcome: anything not yet translated falls back to English, so a half-finished language file still ships something useful. Plural rules are handled per language — the checker tells you which forms yours needs.
The easiest way is the official download page, which always has the latest build for your platform:
Prefer to build it yourself? See Building from source below — it's three commands.
ZFontManager speaks each operating system's native font language — no hacks, no "portable font folder" tricks.
| Platform | How activation works, in plain words |
|---|---|
| 🐧 Linux | Uses fontconfig, the same system every Linux app reads fonts through. Deactivating tells fontconfig to skip the font — apps simply stop offering it. Nothing is moved or deleted. |
| 🪟 Windows | Uses the per-user font registration Windows itself uses. The toggle reflects what Windows actually lists: fonts in a folder you added show up inactive until you switch them on, which registers them for your user account right where they are — an external drive is fine. Deactivating unregisters the font; the file stays put. No admin rights needed for your own fonts. |
| 🍎 macOS | Uses a managed move-aside: deactivated fonts are parked in a dedicated folder the app controls, and restored to the exact original location on reactivation. |
Important
Some applications only refresh their font list when they start. If a newly activated font doesn't show up in an app that's already running, restart that app — that's the app's cache, not a lost font.
Warning
System fonts are protected. Fonts your operating system needs to draw its own interface can't be deactivated or trashed from ZFontManager, so you can explore fearlessly.
Short version: there is nothing to worry about, because there is nothing being sent.
- ❌ No account, no sign-up, no license key
- ❌ No telemetry, no analytics, no crash reporting
- ❌ No network requests at all during normal use
- ✅ Your fonts, tags, collections and notes live in local files on your machine
- ✅ The only time the app touches the internet is when you click one of the links on the About page — and that just opens your browser
Don't take our word for it — the entire source code is public.
Does deactivating a font delete it?
No. Deactivating only hides the font from other applications' font menus. The files stay exactly where they are, and the font stays in your ZFontManager library (shown dimmed). One click brings it back.
I uninstalled a font by accident. Is it gone?
No — it's in the Trash tab, and the actual files are kept safe. Click Restore and it goes back exactly where it came from. Fonts are only truly removed when you explicitly choose Delete permanently or Empty Trash.
Will this mess with my system fonts?
No. Fonts the operating system needs are protected — the app won't let you deactivate or trash them.
Which font formats are supported?
The common desktop formats: TTF, OTF, TTC collections, WOFF/WOFF2, and variable fonts. If your design app can use it, ZFontManager can almost certainly manage it.
A font I activated doesn't appear in my design app.
Most likely the app was already running and only reads the font list at startup. Restart the app and the font will be there. (Some apps also have their own "refresh font list" command.) For Photoshop and Illustrator you can skip the font menu entirely: right-click the family → Apply in Photoshop… / Apply in Illustrator….
Can I move my tags and collections to another computer?
Yes — Settings → Export library data gives you a single backup file containing your tags, collections, favorites and notes. Import it on the other machine and it merges in.
Is it really free?
Really free. Free to use, free to share, and the source code is free to read and modify under the GPL-3.0 license. There is no paid tier, no "pro" version, no unlock.
Something broke. Where do I complain?
Please do! Open an issue on the GitHub issue tracker with what you did and what happened. Screenshots help a lot.
You don't need to understand the code to build it — just have
Node.js (with pnpm), Rust, and
the Tauri prerequisites for your
platform installed. Then:
git clone https://github.com/TheHolyOneZ/ZFontManager.git
cd ZFontManager
pnpm install
pnpm tauri buildThe finished installer/bundle lands in src-tauri/target/release/bundle/.
For a live development window instead, use pnpm tauri dev.
For maintainers: cutting a release
- Bump the version in
package.json,src-tauri/Cargo.toml,src-tauri/tauri.conf.jsonandsrc/lib/version.ts, and add a section toCHANGELOG.md. - Push. The GitHub Actions workflow builds all seven installers — Windows
.exe/.msi, macOS Apple Silicon and Intel.dmg, Linux AppImage/.deb/.rpm— and opens a draft release with them attached. - Download the assets, refresh the download page and checksums on zsync.eu/zfontmanager, paste the changelog section into the draft, publish.
For the curious: what it's made of
| Layer | Technology |
|---|---|
| App shell & system integration | Tauri v2 + Rust |
| Interface | React 19 + TypeScript |
| Animation | Motion (spring-based) |
| Build tooling | Vite + pnpm |
The Rust side handles everything that touches your system — scanning,
installing, activation, the trash — while the interface side does the
rendering, previews and organization. Design principles and the product
spec live in the docs/ folder.
ZFontManager is built by TheHolyOneZ — born from the simple frustration that Linux never had a proper font manager, and the good ones elsewhere cost money.
| 👤 Developer | github.com/TheHolyOneZ |
| 🌐 More projects | zsync.eu |
| ⬇️ Download & landing page | zsync.eu/zfontmanager |
| 💻 This project's source | github.com/TheHolyOneZ/ZFontManager |
Found it useful? A ⭐ on the repository genuinely helps others discover it.
ZFontManager is free software, released under the GNU General Public License v3.0.
In human terms: you may use it, share it, and change it — and if you distribute a changed version, it must stay just as free for the next person.
ZFontManager · your fonts, your machine, your rules
Made with care (and a mild grudge against font chaos) by TheHolyOneZ
