{ config, pkgs, lib, user, ... }: let vendorPath = ".config/.mozilla"; configPath = "${vendorPath}/firefox"; in { programs.firefox = { enable = true; package = pkgs.firefox-bin.overrideAttrs (o: { buildCommand = o.buildCommand + '' wrapProgram "$executablePath" \ --set 'HOME' '${config.xdg.configHome}' \ --append-flags "${ lib.concatStringsSep " " ( [ "--name firefox" "-P ${user}" # "--profile ${config.xdg.configHome}/.mozilla/${user}" ] ) }" ''; }); }; xdg.mimeApps.defaultApplications = { "application/pdf" = "firefox.desktop"; "application/x-extension-htm" = "firefox.desktop"; "application/x-extension-html" = "firefox.desktop"; "application/x-extension-shtml" = "firefox.desktop"; "application/x-extension-xht" = "firefox.desktop"; "application/x-extension-xhtml" = "firefox.desktop"; "application/xhtml+xml" = "firefox.desktop"; "image/jpeg" = "firefox.desktop"; "image/png" = "firefox.desktop"; "text/html" = "firefox.desktop"; "text/uri-list" = "firefox.desktop"; "x-scheme-handler/chrome" = "firefox.desktop"; "x-scheme-handler/http" = "firefox.desktop"; "x-scheme-handler/https" = "firefox.desktop"; }; custom.persist = { home.directories = [ ".cache/mozilla" ".config/.mozilla" ]; }; }