{ user, ... }: let startpageDir = import ./startpage/dir.nix; startpage = "file:///home/${user}/${startpageDir}/index.html"; in { nixpkgs = { config.allowUnfree = true; overlays = [ (self: super: { firefox = super.firefox.overrideAttrs (oa: { buildCommand = oa.buildCommand + '' cd lib/firefox mkdir -p defaults/pref cat > defaults/pref/autoconfig.js << 'EOL' // pref("general.config.filename", "autoconfig.cfg"); pref("general.config.obscure_value", 0); pref("general.config.sandbox_enabled", false); EOL cat > autoconfig.cfg << 'EOL' // var {classes:Cc,interfaces:Ci,utils:Cu} = Components; /* set new tab page */ try { Cu.import("resource:///modules/AboutNewTab.jsm"); var newTabURL = "${startpage}"; AboutNewTab.newTabURL = newTabURL; } catch(e){Cu.reportError(e);} // report errors in the Browser Console EOL ''; }); }) ]; }; programs.firefox = { enable = true; profiles.${user} = { isDefault = true; settings = { "browser.startup.homepage" = "${startpage}"; }; }; }; }