{ config, inputs, lib, ... }: let inherit (lib.modules) mkIf; inherit (lib.options) mkEnableOption; inherit (builtins) listToAttrs; cfg = config.modules.programs.schizofox; in { options.modules.programs.schizofox.enable = mkEnableOption "Schizofox browser"; imports = [ inputs.schizofox.nixosModules.default ]; config = mkIf cfg.enable { programs.schizofox = { enable = true; theme = { font = "Lexend"; colors = { background-darker = "181825"; background = "1e1e2e"; foreground = "cdd6f4"; }; }; security = { sanitizeOnShutdown.enable = true; sandbox.enable = true; noSessionRestore = true; userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0"; }; misc = { drm.enable = true; disableWebgl = false; bookmarks = [ { Title = "Noogle"; URL = "https://noogle.dev"; Placement = "toolbar"; } { Title = "Nixpkgs Manual"; URL = "https://nixos.org/manual/nixpkgs/stable"; Placement = "toolbar"; } ]; }; extensions = { simplefox.enable = true; darkreader.enable = true; enableDefaultExtensions = true; enableExtraExtensions = true; extraExtensions = let extensions = [ { id = "{c2c003ee-bd69-42a2-b0e9-6f34222cb046}"; name = "auto-tab-discard"; } { id = "{a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad}"; name = "refined-github-"; } { id = "sponsorBlocker@ajay.app"; name = "sponsorblock"; } { id = "{446900e4-71c2-419f-a6a7-df9c091e268b}"; name = "bitwarden-password-manager"; } { id = "{74145f27-f039-47ce-a470-a662b129930a}"; name = "clearurls"; } { id = "{b86e4813-687a-43e6-ab65-0bde4ab75758}"; name = "localcdn-fork-of-decentraleyes"; } { id = "smart-referer@meh.paranoid.pk"; name = "smart-referer"; } { id = "skipredirect@sblask"; name = "skip-redirect"; } { id = "7esoorv3@alefvanoon.anonaddy.me"; name = "libredirect"; } { id = "DontFuckWithPaste@raim.ist"; name = "dont-fuck-with-paste"; } ]; mappedExtensions = map (extension: { name = extension.id; value = { install_url = "https://addons.mozilla.org/firefox/downloads/latest/${extension.name}/latest.xpi"; }; }) extensions; in listToAttrs mappedExtensions; }; }; }; }