Dominic Böttger

← Back to blog

Published on March 19, 2026 by Dominic Böttger · 4 min read

Figma on Linux has a long-standing limitation: there’s no official Figma Font Helper. On macOS and Windows, Figma can access your locally installed fonts through a helper app. On Linux, you’re stuck with Google Fonts — unless you set things up yourself.

On top of that, recent versions of Figma actively disable the font helper connection when they detect a Linux browser. So even if you install a third-party font agent, Figma won’t talk to it.

Here’s how I got full local font support working on Omarchy.

What We’re Setting Up

By the end of this guide, you’ll have:

Step 1: Install figma-agent-linux

figma-agent-linux is an open-source replacement for Figma’s proprietary Font Helper. It runs as a local server on port 44950, serving your system fonts to the Figma web app.

Install it from the AUR:

yay -Syu figma-agent-linux-bin

The package includes a systemd user socket that listens on 127.0.0.1:44950. Enable and start it:

systemctl --user enable --now figma-agent.socket

The socket activation means the agent only starts when Figma actually requests fonts — it doesn’t run permanently in the background.

Verify it’s listening:

systemctl --user status figma-agent.socket

You should see active (listening).

Step 2: Create the Figma Launcher Script

Here’s the problem: even with figma-agent-linux running, Figma detects that you’re on Linux and refuses to connect to the local font helper. The workaround is to spoof a Windows user agent string.

Create a launcher script at ~/bin/figma.sh:

#!/usr/bin/env bash
UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
chromium --user-data-dir="$HOME/.config/chromium-figma" --user-agent="$UA" --app="https://www.figma.com/files/recent"

Make it executable:

chmod +x ~/bin/figma.sh

There are three important flags here:

Step 3: Create the Desktop Entry

To launch Figma from your Hyprland app launcher (Walker, Wofi, etc.), create a .desktop file.

First, grab a Figma icon — save a PNG to ~/.local/share/applications/icons/Figma.png.

Then create ~/.local/share/applications/Figma.desktop:

[Desktop Entry]
Version=1.0
Name=Figma
Comment=Figma Design Tool
Exec=/home/YOUR_USERNAME/bin/figma.sh
Terminal=false
Type=Application
Icon=/home/YOUR_USERNAME/.local/share/applications/icons/Figma.png
StartupNotify=true

Replace YOUR_USERNAME with your actual username. The Exec path must be absolute — ~ won’t work in desktop files.

Step 4: Test It

  1. Make sure the font agent socket is active:

    systemctl --user status figma-agent.socket
  2. Launch Figma from your app launcher or run ~/bin/figma.sh directly

  3. Open a design file, click on a text layer, and check the font picker — your local fonts should appear alongside Google Fonts

Troubleshooting

Fonts not showing up in Figma:

Figma still not detecting the font helper:

Font agent not starting:

Why Not Use the Figma Desktop App?

There is no official Figma desktop app for Linux. The “desktop app” on macOS and Windows is actually an Electron wrapper around the web app — which is exactly what we’re replicating here with Chromium in app mode. The only difference is our version also works with local fonts.

Conclusion

With this setup, Figma on Omarchy works just as well as on macOS — complete local font support, a clean app-like window, and a proper desktop shortcut. The figma-agent-linux socket activation keeps things lightweight, and the user-agent trick handles Figma’s Linux detection gracefully.

Written by Dominic Böttger

← Back to blog
  • Using Figma with Local Fonts on Omarchy Linux

    Using Figma with Local Fonts on Omarchy Linux

    How to set up Figma on Omarchy Linux with full local font support using figma-agent-linux and a user-agent workaround. Complete guide with desktop integration and systemd socket activation.

  • Syncing SharePoint and OneDrive on Arch Linux with One Click

    Syncing SharePoint and OneDrive on Arch Linux with One Click

    Set up Microsoft SharePoint and OneDrive sync on Arch Linux using abraunegg/onedrive. Includes a protocol handler script that makes the "Sync" button in SharePoint work natively, with automatic drive detection and systemd background sync.

  • From Sequential to Parallel: Adding Agent Teams to Spec Kit

    From Sequential to Parallel: Adding Agent Teams to Spec Kit

    How we extended Spec Kit with a new /speckit.team-implement command that auto-detects parallel work streams from your task list and spawns specialized AI agent teams to implement features simultaneously -- complete source code, algorithm walkthrough, and usage guide.

  • Building a Private Claude Code Plugin Marketplace for Your Team

    Building a Private Claude Code Plugin Marketplace for Your Team

    Learn how to structure a private Claude Code plugin marketplace for your team, including repository layout, naming conventions, and how to register local or remote marketplaces.

  • Spec Kit + Ralph Loop: Solving AI Context Exhaustion in Large Features

    Spec Kit + Ralph Loop: Solving AI Context Exhaustion in Large Features

    How we combined Spec Kit's structured planning with Ralph Wiggum's fresh context methodology to build an AI-powered development loop that can implement features of any size without context pollution.

  • Mistral Releases Vibe CLI and Devstral 2: Open-Source AI Coding Goes Next Level

    Mistral Releases Vibe CLI and Devstral 2: Open-Source AI Coding Goes Next Level

    Mistral AI launches Vibe CLI and Devstral 2, bringing powerful open-source AI coding assistance to your terminal. Learn how to install and get started with these game-changing tools.