{
  pkgs,
  lib,
  stdenv,
  unzip,
  fetchurl,
  makeDesktopItem,
  buildFHSUserEnv,
  # Specify any font packages to include
  # e.g. figma.override { fonts = [ noto-fonts fira-code ]; }
  fonts ? [],
}: let
  version = "0.10.0";
  # Figma executable.
  # Currently won't run outside of FHS even with autopatching - needs help.
  figma-exec = stdenv.mkDerivation rec {
    inherit version;
    pname = "figma-exec";
    src = fetchurl {
      url = "https://github.com/Figma-Linux/figma-linux/releases/download/v${version}/figma-linux_${version}_linux_amd64.zip";
      sha256 = "sha256-1jdaa/oZu5io/sHHkNzdrCgWWfqW0AMqUGx6amJJpyU=";
    };
    buildInputs = [unzip];
    unpackPhase = ''
      runHook preUnpack
      mkdir output
      unzip $src -d output
      runHook postUnpack
    '';
    installPhase = ''
      APPDIR=$out/etc/figma-linux
      # Copy application to etc
      mkdir -p $out/etc/figma-linux
      cp -r output/. $APPDIR

      # Add icons
      for size in 24 36 48 64 72 96 128 192 256 384 512; do
        mkdir -p "$out/share/icons/hicolor/''${size}x''${size}/apps"
        cp -rf "$APPDIR/icons/''${size}x''${size}.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/figma-linux.png"
      done
      mkdir -p "$out/share/icons/hicolor/scalable/apps"
      cp -rf "$APPDIR/icons/scalable.svg" "$out/share/icons/hicolor/scalable/apps/figma-linux.svg"

      # Copy fonts
      mkdir -p $out/share/fonts
      ${lib.concatMapStringsSep "\n"
        (f: "cp -r ${f}/share/fonts/. $out/share/fonts/")
        fonts}

      # Link binary
      mkdir -p $out/bin
      ln -s $out/etc/figma-linux/figma-linux $out/bin/figma

      # Link desktop item
      mkdir -p $out/share/applications
      ln -s ${desktopItem}/share/applications/* $out/share/applications
    '';
    desktopItem = makeDesktopItem {
      name = "Figma";
      exec = "figma";
      icon = "figma-linux";
      desktopName = "Figma";
      genericName = "Vector Graphics Designer";
      comment = "Unofficial desktop application for linux";
      type = "Application";
      categories = ["Graphics"];
      mimeTypes = ["application/figma" "x-scheme-handler/figma"];
      extraConfig = {StartupWMClass = "figma-linux";};
    };
  };
  figma-fhs = buildFHSUserEnv {
    name = "figma-fhs";
    targetPkgs = pkgs:
      with pkgs; [
        figma-exec
        alsaLib
        at-spi2-atk
        at-spi2-core
        atk
        avahi
        brotli
        cairo
        cups
        dbus
        expat
        freetype
        pango
        gcc
        glib
        glibc
        gdk-pixbuf
        gtk3
        icu
        libxkbcommon
        mesa
        ffmpeg
        libdrm
        libGL
        nss
        nspr
        udev
        xorg.libXdamage
        xorg.libXext
        xorg.libX11
        xorg.libXau
        xorg.libxcb
        xorg.libXcomposite
        xorg.libXdmcp
        xorg.libXfixes
        xorg.libXrender
        xorg.libXrandr
        xorg.libxshmfence
        wayland
      ];
    runScript = "figma";
  };
in
  stdenv.mkDerivation {
    pname = "figma";
    inherit version;
    src = builtins.path {path = ./.;};
    nativeBuildInputs = [figma-fhs];
    installPhase = ''
      # Add binary link
      mkdir -p $out/bin
      cp -r ${figma-fhs}/bin/figma-fhs $out/bin/figma

      # Link icons + desktop items
      mkdir -p $out/share
      cp -r ${figma-exec}/share/. $out/share
    '';
    meta = with lib; {
      description = "unofficial Electron-based Figma desktop app for Linux";
      homepage = "https://github.com/Figma-Linux/figma-linux";
      # While the container application is GPL-2.0,
      # Figma itself (running in the application) is nonFree.
      license = licenses.unfree;
    };
  }
