{ config, pkgs, ... }: let betterfox = pkgs.fetchFromGitHub { owner = "yokoffing"; repo = "Betterfox"; rev = "116.1"; hash = "sha256-Ai8Szbrk/4FhGhS4r5gA2DqjALFRfQKo2a/TwWCIA6g="; }; catppuccinUserChrome = pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "zen-browser"; rev = "0893393f721facb884365a318111c4a7fce96b45"; hash = "sha256-+Nf7TUairZBnhYCFVBqiQW9QodV/xWSOnH6X9o6S7rM="; }; replaceWithStylixColours = textFile: with config.stylix.base16Scheme.palette; builtins.replaceStrings [ "1e1e2e" "181825" "313244" "45475a" "585b70" "cdd6f4" "f5e0dc" "b4befe" "f38ba8" "fab387" "f9e2af" "a6e3a1" "94e2d5" "89b4fa" "cba6f7" "f2cdcd" ] [ base00 base01 base02 base03 base04 base05 base06 base07 base08 base09 base0A base0B base0C base0D base0E base0F ] (builtins.readFile textFile); userChromeText = replaceWithStylixColours "${catppuccinUserChrome}/themes/Mocha/Mauve/userChrome.css"; userContentText = replaceWithStylixColours "${catppuccinUserChrome}/themes/Mocha/Mauve/userContent.css"; installExtension = name: { inherit name; value = { install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi"; installation_mode = "force_installed"; }; }; in { home.file.".zen/default/chrome/userChrome.css".text = userChromeText; home.file.".zen/default/chrome/userContent.css".text = userContentText; programs.zen-browser = { enable = true; policies = { DisableTelemtry = true; DisableFirefoxStudies = true; EnableTrackingProtection = { Value = true; Locked = true; Cryptomining = true; Fingerprinting = true; }; DisablePocket = true; DisableFirefoxAccounts = true; DisableAccounts = true; DisableFirefoxScreenshots = true; OverrideFirstRunPage = ""; OverridePostUpdatePage = ""; DontCheckDefaultBrowser = true; DisplayBookmarksToolbar = "never"; DisplayMenuBar = "default-off"; SearchBar = "unified"; ExtensionSettings = builtins.listToAttrs ( builtins.map (name: installExtension name) [ # BitWarden "{446900e4-71c2-419f-a6a7-df9c091e268b}" # Catppuccin Mocha Mauve "{76aabc99-c1a8-4c1e-832b-d4f2941d5a7a}" # Dark Reader "addon@darkreader.org" # Language Tool "languagetool-webextension@languagetool.org" # Return dislikes to YouTube "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" # SponsorBlocker "sponsorBlocker@ajay.app" # uBlock Origin: "uBlock0@raymondhill.net" ] ); }; profiles.default = { id = 0; isDefault = true; extraConfig = builtins.concatStringsSep "\n" [ (builtins.readFile "${betterfox}/Securefox.js") (builtins.readFile "${betterfox}/Fastfox.js") (builtins.readFile "${betterfox}/Peskyfox.js") ]; }; }; }