博客

Linux 上的 Figma 桌面版

常用网站 · · 约 7 分钟

Figma 的桌面应用只有 macOS 和 Windows 版本,所以在 Linux 上 Figma 是跑在浏览器里的,想让它有自己的窗口,受支持的做法是用 Chrome 或 Microsoft Edge 把它安装为应用,这两个都在 Figma 的浏览器清单里。Pake 在 Linux 上用 WebKitGTK 绘制页面,它不在这份清单里,所以用 Pake 包 Figma 属于不受支持的用法。Pake 在 Linux 上的 User Agent 还写明了系统是 Linux,按一个社区项目的说明,这样 Figma 就不会去读取你本地的字体。

Figma 在 Linux 上提供什么

Figma 的下载页列出的桌面应用是 macOS、Windows 和 Windows Arm,没有提到 Linux。系统要求文章说的是同一件事,Linux 通过网页版支持,条件是「任何能运行上述浏览器的 Linux 系统」,桌面应用只给 macOS 和 Windows。

截至 2026 年 11 月,它列出的浏览器是 Chrome 120 或更新、Firefox 128 ESR 或更新、Safari 17.4 或更新、Microsoft Edge 121 或更新。WebGL 最低是 1.0,Figma 的着色器相关功能门槛更高(WebGPU,且不能是兼容模式,Chrome、Firefox、Safari 的最低版本也更新)。数字会变,构建前再看一眼那一页。

Pake 窗口适合什么情况

Pake 把网站自己的网页版客户端放进系统 WebView,在 Linux 上就是 WebKitGTK,也就是 GNOME Web 背后的引擎,不是 Chromium,也不是 Firefox。WebKitGTK 官网写着它支持 WebGL,可以用 GPU 做合成,2.40.0 版本把 WebGL 换成了 ANGLE 并启用了 WebGL 2。你实际跑的版本取决于发行版带的是哪一个,为什么这很重要见Pake 的工作原理。

这些都不能让 WebKitGTK 变成 Figma 支持的浏览器,Figma 的要求页和 WebKitGTK 的页面都没有提到对方,Figma 的要求又是围绕 WebGL 和显卡写的。用 Pake 包 Figma 可以构建一次试试,不适合直接拿来给团队定方案。

窗口带来的是浏览器标签页没有的东西,启动器里有自己的入口,Alt-Tab 切换窗口时有自己的位置,不和其他标签页挤在一个窗口里。它不会给 Figma 增加任何功能,Mac 和 Windows 应用有而网页版没有的东西,这里依然用不了。

用 CLI 构建

CLI 在任何带 WebKitGTK 的发行版上都能用,需要 Node.js 20.9 或更新、Rust 1.85 或更新,见快速开始,还要装 WebKitGTK 开发包,清单在 CLI 常见问题里。

npm install -g pake-cli
pake https://www.figma.com --name Figma --width 1440 --height 900

--width 和 --height 是窗口起始大小,默认 1200 × 780,对设计画布来说偏小。想只出一种包就用 --targets 指定 deb、rpm 或 appimage,Arch 系的系统指定 zst,见 CLI 选项。第一次构建要编译依赖,需要几分钟,构建出来的包按本地包的方式安装,比如 Debian 或 Ubuntu 上 sudo apt install ./figma.deb。

用 Pake 桌面版构建

如果你用的是 x86_64 的 Arch 或 Omarchy,Pake 桌面版可以不装 Node.js 和 Rust 做出同样的应用。按安装 Pake装好,在创建页输入 Figma,从精选里选它,或者直接粘贴地址,点 创建应用,步骤见创建应用。Ubuntu、Fedora 等其他发行版没有桌面版,用 CLI。

在窗口里检查什么

打开一个真实的文件,不要用空白文件,按顺序检查。

  1. Figma 能不能打开编辑器。 Figma 的要求页没有说不受支持的浏览器会看到什么,编辑器打不开就看后面讲浏览器不受支持的那一节。
  2. 画布速度。 在一个有很多画板和图片的大页面上平移、缩放,再在同一台机器的 Chrome 或 Firefox 里打开同一个文件对比,差距明显就是引擎的问题,没有 Pake 参数能改。
  3. 文字渲染。 看标题和正文是不是和浏览器里一样。
  4. 登录。 能用邮箱登录就用邮箱,Google 会拦截内嵌 WebView 里的登录,见 Google 登录指南。
  5. 复制粘贴和拖拽。 从剪贴板粘贴一张图,再把文件拖到画布上。

如果在 Wayland 下窗口空白或点击没反应,CLI 常见问题建议点击和输入没反应时用 PAKE_LINUX_WEBKIT_SAFE_MODE=0,窗口空白时用 =1,比如 PAKE_LINUX_WEBKIT_SAFE_MODE=1 ./figma.AppImage。

本地字体

macOS 和 Windows 上,Figma 的下载页各提供一个字体安装器,并注明桌面应用已经包含它。Linux 没有列出。Figma 关于给组织上传自定义字体的帮助文章说,这样 Chromebook 和 Linux 用户也能用上这些字体,不需要本地安装。

社区补上了这个缺口。Figma-Linux 字体助手跑一个本地小服务,Figma 发来请求时返回系统里装的字体列表,它的 README 警告说 Figma 改了网页版,浏览器的 User Agent 标明是 Linux 时,根本不会发出读取本地字体的请求。Pake 在 Linux 上默认的 User Agent 里写着 X11; Linux x86_64,按这份 README,Pake 窗口里字体助手收不到请求,而且它是第三方项目,Figma 并不支持。

Figma 提示浏览器不受支持

Pake CLI 3.17.8 在 Linux 上默认发送的是一个 X11 Linux 上的 Safari 26 字符串,Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15。如果 Figma 拒绝这个窗口,可以用从 Figma 清单里某个浏览器复制来的字符串重新构建:

pake https://www.figma.com --name Figma --width 1440 --height 900 --user-agent "<粘贴当前的 User Agent>"

怎么复制见自定义 User Agent。这个字符串只是标签,不是引擎,如果 Figma 检查的是功能而不是名字,或者画布本来就跑得差,换字符串没有用,还可能让网站发来引擎跑不了的代码。

到这一步就该用受支持的浏览器了,Chrome 里按帮助页的步骤,打开 More 菜单,选 Cast, save, and share,再选 Install page as app...。Edge 也有微软提供的 Linux 版 .deb,按微软的帮助页走 Settings and more、More tools、Apps、Install this site as an app。两种都会让 Figma 有自己的窗口,跑在 Chromium 引擎上,两条路的比较见 PWA 和桌面应用。

非官方的 Figma-Linux 应用

Figma-Linux 是社区项目,页面上标明是非官方的,把 Figma 打包成 Electron 桌面应用,提供 Snap、AppImage、deb、rpm、AUR 包和 NixOS 配置,许可证是 GPL-2.0。它的 README 说明了怎样用符号链接让 Snap 版看到本地字体。它自带 Chromium,体积和引擎都和 Pake 不一样,取舍见 Tauri 和 Electron。Figma 并不为它背书,把它当成任何一个会接触你账号的第三方客户端来判断。

更新

网站自己会在每次加载时更新,但它外面那层 Pake 运行时不会,想换新的,就更新 pake-cli,用同样的网址和名字再跑一遍同一条命令。

常见问题

Figma 有官方的 Linux 应用吗?

没有,下载页列的是 macOS、Windows 和 Windows Arm,系统要求文章说 Linux 通过浏览器支持。

用 Pake 会让 Figma 更快吗?

不会,Pake 用系统的 WebKitGTK 绘制 Figma,Figma 并没有把它列为支持的浏览器,速度取决于这个引擎、显卡驱动和文件本身,受支持的选择是 Chrome 或 Edge。

能用我装的字体吗?

本地装的字体大概率用不了,Figma 只给 macOS 和 Windows 提供字体安装器,社区虽然有字体助手,但它的 README 说 User Agent 写着 Linux 时 Figma 不会发出本地字体请求,Pake 默认就是这样,组织上传的字体不需要它。