Version: 0.11.4 | Electron: ≥35.0.0 | Last Updated: December 2025
Figma-linux is an unofficial Electron-based Figma desktop app for Linux.
- System Requirements - OS, hardware, dependencies
- Installation - Setup for all distributions
- Figma Features - Complete feature matrix
- Building from Source - Development and packaging
- Theme Customization - Custom theme creation
- Application Settings - Configuration options
- Migration & QA - Upgrade and testing guide
- Release Notes - Detailed release information
- Integration Details - Technical implementation
| Distribution | Status | Package Format |
|---|---|---|
| Ubuntu 20.04+ | ✅ Fully Supported | .deb, Snap, PPA |
| Debian 11+ | ✅ Fully Supported | .deb |
| Fedora 38+ | ✅ Fully Supported | .rpm |
| Arch / Manjaro | ✅ Fully Supported | AUR, Pacman |
| openSUSE | ✅ Fully Supported | .rpm |
| Nixos | ✅ Supported | NixOS package |
| Linux Mint | ✅ Fully Supported | .deb |
| Elementary OS | ✅ Fully Supported | .deb |
- OS: Linux kernel 5.10+
- Architecture: x86_64 (AMD64) or ARM64v8
- RAM: 4 GB minimum (8 GB recommended)
- Disk: 1 GB free space
- Electron: 35.0.0 or later
- Graphics: OpenGL 2.0+
For optimal performance, especially with complex designs:
# Enable GPU acceleration (recommended for complex files)
figma-linux --enable-gpu
# Force software rendering (if you experience GPU-related issues)
figma-linux --disable-gpu
# Enable experimental features (advanced users only)
figma-linux --enable-features=VizDisplayCompositorYou can install Figma-linux from Snap here.
Alternatively, type
sudo snap install figma-linuxin your terminal.
To use local fonts when using the snapd version create a symbolic link:
sudo ln -s $HOME/.local/share/fonts $HOME/snap/figma-linux/current/.local/share/
There is also an AppImage available. Get it on our Releases page, then make it executable and install using these terminal commands:
chmod +x figma-linux-*.AppImage
sudo ./figma-linux-*.AppImage -iThis is not a portable AppImage - it will install figma-linux on your system, after which you can run it from terminal or from your app list. For more info, execute
./figma-linux-*.AppImage -hFirstly, install libgconf-2-4:
sudo apt install libgconf-2-4Download the .deb package from the Releases page, and install it with dpkg or your favorite .deb installer.
sudo dpkg -i figma-linux_*_amd64.debOn Ubuntu, you can use our PPA:
sudo add-apt-repository ppa:chrdevs/figma && sudo apt update && sudo apt install figma-linux -yIf you receive a NO_PUBKEY error while running apt update, then you must add the key manualy:
sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com 70F3445E637983CCDownload the .deb package from the Releases page, and install it with apt.
sudo apt install figma-linux_*_amd64.debFigma-linux is available on the AUR.
You can use an AUR helper like yay to install it:
yay -S figma-linux-binOther AUR packages:
- figma-linux - the package install binary version from release tag
- figma-linux-bin - the package install binary version from release tag
- figma-linux-git - the package build the app from Github from latest release tag
- figma-linux-dev-git - the package build the app from Github from latest commit on the dev branch
Download the .rpm package from our Releases page, then install it:
sudo dnf install figma-linux-*.x86_64.rpmOn Nixos, you may add figma-linux in the environment.systemPackages list of your /etc/nixos/configuration.nix and run:
sudo nixos-rebuild switchThis application fully supports the following Figma products and features:
- ✅ Design - Main Figma editor with all design tools
- ✅ FigJam - Whiteboarding and collaboration
- ✅ Draw - Native drawing tools and whiteboard
- ✅ Sites - Figma CMS and static site generation
- ✅ Make - AI workspaces and automation
- ✅ Buzz - Template marketplace and community
- ✅ Slides - Presentation mode and deck creation
- ✅ Grid Auto Layout - Advanced component layout system
- ✅ AI Tooling - AI-assisted design features and asset generation
- ✅ Dev Mode Enhancements - Improved handoff and developer workflows
- ✅ Webhooks v2 - Enhanced webhook support with secrets management
- ✅ Code Connect - Link code components to design files
- ✅ Variables & Collections - Design tokens with up to 20 modes per collection
- ✅ Prototyping - Interactive prototypes and flows
- ✅ Protocol Handlers - Direct
figma://URL support - ✅ Deep Links - Direct links to Dev Mode, Variables, and specific features
- ✅ Clipboard Operations - Full clipboard support (image, SVG, PDF)
- ✅ File Associations -
.figfile support
- Node.js 16.0+
- npm 8.0+
- Linux development headers
- For AppImage packing: appimagetool
- Clone the repository:
git clone https://github.com/Figma-Linux/figma-linux
cd figma-linux- Install dependencies:
npm install- Run in development mode:
npm run dev- Build the application for production:
npm run build- Create distribution packages:
npm run packThis creates packages in the following formats:
.deb- Debian/Ubuntu package.rpm- Fedora/openSUSE package.pacman- Arch Linux package.AppImage- Portable AppImage.zip- Portable archive
| Command | Purpose |
|---|---|
npm run dev |
Run app in development mode with hot reload |
npm run build |
Build app for production |
npm run start |
Run previously built app |
npm run builder |
Package as distribution files |
npm run pack |
Clean build and create all distribution packages |
npm run check |
TypeScript and Svelte type checking |
npm run lint |
Run ESLint validation |
npm run lp |
Run linting and formatting |
Edit ./config/builder.json to customize build targets:
{
"linux": {
"target": [
{ "target": "deb" },
{ "target": "rpm" },
{ "target": "appimage" },
{ "target": "pacman" }
]
}
}Example of .env for local development:
NODE_ENV=dev
DEV_PANEL_PORT=3330
DEV_SETTINGS_PORT=3331
Figma-linux supports custom themes with an extensible palette system. Themes can be created and shared with the community.
A theme's palette supports the following customizable fields:
text- Primary text colortext-active- Active/selected text colortext-disabled- Disabled text color
bg-panel- Panel and page background colorbg-toolbar- Toolbar background colorbg-toolbar-hover- Toolbar item hover statebg-toolbar-active- Toolbar item active/selected statebg-tab- Tab backgroundbg-tab-hover- Tab hover statebg-tab-active- Tab active statebg-header- Header backgroundbg-header-control- Header control backgroundbg-header-control-hover- Header control hover statebg-header-control-active- Header control active statebg-overlay- Dropdown menu backgroundbg-overlay-outline- Overlay shadow colorbg-overlay-inner-outline- Overlay border colorbg-window-close- Window close button backgroundbg-beta-label- Beta label background
fg-toolbar- Toolbar icon colorfg-toolbar-hover- Toolbar icon hover colorfg-toolbar-active- Toolbar icon active colorfg-toolbar-disabled- Toolbar icon disabled colorfg-toolbar-filename- Project name text colorfg-toolbar-foldername- Folder name text colorfg-toolbar-chevron- Chevron icon colorfg-toolbar-unsavedicon- Unsaved indicator colorfg-toolbar-login-button- Login button colorfg-toolbar-login-button-border- Login button border colorfg-toolbar-login-button-active- Login button active colorfg-tab- Tab text colorfg-tab-hover- Tab text hover colorfg-tab-active- Tab text active colorfg-header- Header text colorfg-header-control- Header control colorfg-header-control-hover- Header control hover colorfg-header-control-active- Header control active colorfg-component- Component colorfg-component-disabled- Disabled component colorfg-component-disabled-row-active- Disabled component active row colorborders- Border color
Themes are JSON files with the following structure:
{
"id": "my-theme-dark",
"name": "My Dark Theme",
"author": "Your Name",
"palette": {
"text": "#ffffff",
"text-active": "#0099ff",
"text-disabled": "#888888",
"bg-panel": "#1e1e1e",
"bg-toolbar": "#252525",
"bg-toolbar-hover": "#333333",
"bg-toolbar-active": "#0099ff",
"fg-toolbar": "#ffffff",
"fg-toolbar-hover": "#ffffff",
"fg-toolbar-active": "#ffffff",
"fg-toolbar-disabled": "#666666",
"fg-toolbar-filename": "#ffffff",
"fg-toolbar-foldername": "#cccccc",
"fg-toolbar-chevron": "#888888",
"fg-toolbar-unsavedicon": "#ff9900",
"fg-toolbar-login-button": "#0099ff",
"fg-toolbar-login-button-border": "#0099ff",
"fg-toolbar-login-button-active": "#00ccff",
"bg-overlay": "#2d2d2d",
"bg-overlay-outline": "#444444",
"bg-overlay-inner-outline": "#3d3d3d",
"bg-tab": "#1e1e1e",
"bg-tab-hover": "#252525",
"bg-tab-active": "#252525",
"fg-tab": "#ffffff",
"fg-tab-hover": "#ffffff",
"fg-tab-active": "#0099ff",
"bg-header": "#1a1a1a",
"fg-header": "#ffffff",
"bg-header-control": "#252525",
"bg-header-control-hover": "#333333",
"bg-header-control-active": "#0099ff",
"fg-header-control": "#ffffff",
"fg-header-control-hover": "#ffffff",
"fg-header-control-active": "#ffffff",
"fg-component": "#0099ff",
"fg-component-disabled": "#666666",
"fg-component-disabled-row-active": "#0099ff",
"borders": "#3d3d3d",
"bg-window-close": "#0099ff",
"bg-beta-label": "#ff9900"
}
}Place theme JSON files in the Figma-linux config directory:
- Linux:
~/.config/figma-linux/themes/
Access themes from the Settings panel → Themes tab.
- Panel Height - Adjust the height of the bottom/top panel (default: auto)
- Enable Color Space sRGB - Force sRGB color space for compatibility
- Visible New Project Button - Show/hide the "New" button in toolbar
- Save Last Opened Tabs - Auto-restore tabs on startup
- Export Directory - Set default export location
- Font Directories - Add custom font search paths
useUi3Chrome- Enable the modernized UI3 interface (default: false)panelLayout- Position of the interface panel:"top"or"bottom"(default: "bottom")panelHeight- Custom panel height in pixels (default: 300)showProductIcons- Display product-specific icons for each surface (default: true)showVoiceIndicators- Show active voice calls and participant counts (default: true)sidebarCollapsed- Remember sidebar collapsed state (default: false)
- 90-Day Expiry Tracking - The app automatically tracks your Figma PAT lifecycle
- Expiry Warnings - Receive warnings at: 14 days, 7 days, 3 days, and 1 day before expiry
- Auto Re-authentication - Session is cleared and re-authentication is required when PAT expires
- Clipboard Preservation - Clipboard operations remain available during PAT transitions
ui3_migration_version- Current UI3 migration version (auto-updated)ui3_migration_date- Date of last UI3 migration (auto-updated)
After installing the new version, verify everything works correctly:
# Check application version
figma-linux --version
# Run a quick verification
npm run build && npm run checkAll new Figma surfaces are integrated directly into the desktop app:
- Open Figma → Click "Draw" (or navigate to
https://figma.com/draw/*) - Full whiteboarding tools and vector drawing support
- Seamless collaboration with team members
- Open Figma → Click "Sites" (or navigate to
https://figma.com/sites/*) - Create and manage static sites directly from design
- Export and hosting options
- Open Figma → Click "Make" (or navigate to
https://figma.com/make/*) - Access AI-powered design automation
- AI asset management and generation
- Open Figma → Click "Buzz" (or navigate to
https://figma.com/buzz/*) - Browse template marketplace
- Share and discover community templates
- Open Figma → Click "Slides" (or navigate to
https://figma.com/slides/*) - Create presentation decks from designs
- Export and present
Run these commands to ensure builds work on your system:
# Install dependencies
npm install
# Compile for production
npm run build
# Verify no TypeScript errors
npm run check
# Run linting
npm run lint
# Create distribution packages
npm run packAll commands should complete without errors.
Test that figma:// links work:
# Open via protocol (replace with actual file IDs)
xdg-open "figma://draw/abc123def456"
xdg-open "figma://sites/my-site"
xdg-open "figma://make/workspace"Test development mode access:
# Open with dev-mode query parameter
figma-linux "https://figma.com/design/abc123?dev-mode=true"- Open a design with variables
- Verify variables panel loads correctly
- Test switching between multiple modes (up to 20 supported)
- Copy content in Figma (images, SVG, etc.)
- Paste into external applications
- Test "Edit in" workflows
If experiencing performance issues:
# Try with GPU enabled
figma-linux --enable-gpu
# Or force software rendering
figma-linux --disable-gpuThe app automatically migrates your existing settings to the new format:
- UI3 Chrome - Opt-in to new interface in Settings → General
- Panel Layout - Choose top or bottom panel position
- Product Icons - Toggle product-specific icons per surface
- Voice Indicators - Show/hide active voice participants
- Panel Height - Customize vertical panel size
If you're creating custom themes:
- Use the theme structure documented in the Theme Customization section
- Test theme with different UI states (hover, active, disabled)
- Verify visibility with light and dark variants
- Export theme via Settings → Themes → Export
Build fails with TypeScript errors:
npm run check # Get detailed error messages
# Fix issues in src/ directory and retryMissing native modules:
npm install
# On some systems, rebuild native modules
npx electron-rebuildAppImage packing fails:
- Ensure
appimagetoolis installed and in PATH - Check disk space (requires ~2GB free)
- Verify build completed successfully:
npm run build
GPU-related crashes:
- Disable GPU:
figma-linux --disable-gpu - Update graphics drivers
- Check Electron logs:
~/.config/figma-linux/logs/
- Clone and setup:
git clone https://github.com/Figma-Linux/figma-linux.git
cd figma-linux
npm install- Verify code quality:
npm run lint # Check code style
npm run check # TypeScript validation
npm run build # Production build- Create packages:
npm run pack # Creates all distribution formats- Test packages:
# On target distributions
sudo dpkg -i build/installers/figma-linux_*_amd64.deb
# or
sudo dnf install build/installers/figma-linux_*.x86_64.rpm- Verify functionality:
- Launch application from menu
- Test all new surfaces (Draw, Sites, Make, Buzz, Slides)
- Verify clipboard operations
- Check extension loading
- Test protocol handlers
- URL Handling:
/src/utils/Common/url.ts - Extension Manager:
/src/main/ExtensionManager.ts - PAT Management:
/src/main/Session.ts - Regression Testing:
/src/main/RegressionTester.ts - Type Definitions:
/src/types/Common/index.d.ts
For detailed implementation information, see INTEGRATION_EXTENSIONS_2025.md.
Join us on Telegram or Spectrum.
You can contribute to figma-linux development by supporting us on Paypal or Buy me a Coffee:
Thanks to the supporters.
