Add packaging non-overlay packages
diff --git a/src/apps/personal/packages/figma-linux.nix b/src/apps/personal/packages/figma-linux.nix
new file mode 100644
index 0000000..51e1fb0
--- /dev/null
+++ b/src/apps/personal/packages/figma-linux.nix
@@ -0,0 +1,132 @@
+{ pkgs, lib
+# Specify any font packages to include
+# e.g. figma.override { fonts = [ noto-fonts fira-code ]; }
+, fonts ? [ ]
+}:
+
+let
+  version = "0.8.1";
+  # 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-LqcjFLQeEQx/3HFy0mPoIynFy704omYVxv42IsY7s8k=";
+    };
+    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;";
+      mimeType = "application/figma;x-scheme-handler/figma;";
+      extraDesktopEntries = { StartupWMClass = "figma-linux"; };
+    };
+  };
+  figma-fhs = buildFHSUserEnv {
+    name = "figma-fhs";
+    targetPkgs = 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_3_53
+      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;
+  };
+}