{ config, lib, pkgs, user, ... }: with lib; let arkenfox = { owner = "arkenfox"; repo = "user.js"; version = "117.0"; }; in { config.home-manager.users.${user} = mkIf (config.xserver.enable) { programs.firefox = { enable = true; profiles."default" = { extensions = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin multi-account-containers ]; extraConfig = builtins.readFile ( builtins.fetchTarball { url = "https://github.com/${arkenfox.owner}/${arkenfox.repo}/archive/refs/tags/${arkenfox.version}.tar.gz"; sha256="1pll4fbdn2390n05902l3pkg4rizxghkakpzi1r9z1b7blmk1x4s"; } + "/user.js"); search = { force = true; default = "DuckDuckGo"; engines = { "Nix Packages" = { urls = [{ template = "https://search.nixos.org/packages"; params = [ { name = "type"; value = "packages"; } { name = "query"; value = "{searchTerms}"; } ]; }]; definedAliases = [ "@np" ]; }; "NixOS Wiki" = { urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; iconUpdateURL = "https://nixos.wiki/favicon.png"; updateInterval = 24 * 60 * 60 * 1000; definedAliases = [ "@nw" ]; }; }; }; settings = { "browser.download.dir" = "/home/${user}/dwn"; }; }; };}; }