{ pkgs, ... }: let # Concatenate all files in the `./usercss` directory into one string css-files = map (n: ./usercss/${n}) (builtins.attrNames (builtins.readDir ./usercss)); userChrome = builtins.concatStringsSep "\n" (map builtins.readFile css-files); in { home.sessionVariables.BROWSER = "firefox"; programs.firefox = { profiles = { alice = { name = "alice"; isDefault = true; inherit userChrome; search = { default = "DuckDuckGo"; engines = { "Nix Packages" = { urls = [ { template = "https://search.nixos.org/packages"; params = [ { name = "type"; value = "packages"; } { name = "query"; value = "{searchTerms}"; } ]; } ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@np" ]; }; "NixOS Wiki" = { urls = [ { template = "https://nixos.wiki/index.php?search={searchTerms}"; } ]; iconUpdateURL = "https://nixos.wiki/favicon.png"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ "@nw" ]; }; "Bing".metaData.hidden = true; # builtin engines only support specifying one additional alias "Google".medaData.alias = "@g"; }; }; # end of search settings = { "browser.compactmode.show" = true; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; }; }; # end of alice (profile) }; # end of profiles }; }