{ config, lib, inputs, pkgs, ... }: let cfg = config.hm.soft.browser; pkgs-stable = import inputs.nixpkgs-stable { inherit (pkgs) system; }; in { options.hm.soft.browser.librewolf.enable = lib.mkEnableOption "Enables the librewolf browser"; config = lib.mkIf cfg.librewolf.enable { programs.librewolf = { enable = true; package = pkgs-stable.librewolf; # policies = { # DisableTelemetry = true; # DisableFirefoxStudies = true; # DontCheckDefaultBrowser = true; # SearchEngines = { # Remove = [ # "Google" # "Bing" # "Perplexity" # "Wikipedia (en)" # "DuckDuckGo" # "DuckDuckGo Lite" # "Searx Belgium" # "MetaGer" # "Startpage" # "Mojeek" # ]; # PreventInstalls = true; # }; # }; # # profiles = { # main = { # id = 0; # name = "main"; # isDefault = true; # search = { # force = true; # default = "OmniSearch"; # order = [ # "OmniSearch" # "SearXNG" # ]; # engines = { # "google".metaData.hidden = true; # "bing".metaData.hidden = true; # "ddg".metaData.hidden = true; # "perplexity".metaData.hidden = true; # "wikipedia".metaData.hidden = true; # "policy-DuckDuckGo Lite".metaData.hidden = true; # "policy-Searx Belgium".metaData.hidden = true; # "policy-MetaGer".metaData.hidden = true; # "policy-Startpage".metaData.hidden = true; # "policy-Mojeek".metaData.hidden = true; # # "OmniSearch" = { # urls = [ { template = "http://127.0.0.1:8087/search?q={searchTerms}"; } ]; # definedAliases = [ "@o" ]; # }; # "SearXNG" = { # urls = [ { template = "https://sxng.violets-purgatory.dev/search?q={searchTerms}"; } ]; # icon = "https://sxng.violets-purgatory.dev/favicon.ico"; # definedAliases = [ "@s" ]; # }; # "NixOS Packages" = { # urls = [ { template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}"; } ]; # icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; # definedAliases = [ "@np" ]; # }; # "NixOS Options" = { # urls = [ { template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}"; } ]; # icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; # definedAliases = [ "@no" ]; # }; # "Home Manager Options" = { # urls = [ # { template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master"; } # ]; # icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; # definedAliases = [ "@hm" ]; # }; # }; # }; # extensions = { # force = true; # packages = # (with pkgs.nur.repos.rycee.firefox-addons; [ # vimium # sidebery # buster-captcha-solver # sponsorblock # dearrow # darkreader # i-dont-care-about-cookies # keepassxc-browser # ]) # }; # settings = { # "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # # "identity.fxaccounts.enabled" = true; # "extensions.autoDisableScopes" = 0; # # --- Privacy & Fingerprinting --- # "privacy.resistFingerprinting" = true; # "privacy.fingerprintingProtection" = true; # "privacy.query_stripping.enabled" = true; # "privacy.query_stripping.enabled.pbmode" = true; # "privacy.trackingprotection.enabled" = true; # "privacy.trackingprotection.socialtracking.enabled" = true; # "privacy.trackingprotection.emailtracking.enabled" = true; # "privacy.bounceTrackingProtection.mode" = 1; # "privacy.annotate_channels.strict_list.enabled" = true; # "privacy.clearOnShutdown_v2.formdata" = true; # # # --- Data Collection & Form Security --- # "dom.forms.autocomplete.formautofill" = false; # "signon.management.page.breach-alerts.enabled" = false; # "browser.translations.enable" = false; # "browser.region.update.enabled" = false; # # # --- Search & URL Bar --- # "browser.urlbar.shortcuts.bookmarks" = false; # "browser.urlbar.shortcuts.history" = false; # "browser.urlbar.shortcuts.tabs" = false; # "browser.urlbar.shortcuts.actions" = false; # "browser.urlbar.showSearchTerms.enabled" = false; # # # --- Networking & Performance --- # "network.proxy.type" = 0; # "network.prefetch-next" = false; # "network.predictor.enabled" = false; # "network.http.speculative-parallel-limit" = 0; # "network.early-hints.preconnect.max_connections" = 0; # "network.connectivity-service.enabled" = false; # "network.captive-portal-service.enabled" = false; # "security.tls.enable_0rtt_data" = false; # # # --- Interface & De-clutter --- # "browser.startup.page" = 3; # "browser.startup.homepage" = "chrome://browser/content/blanktab.html"; # "browser.newtabpage.enabled" = false; # "browser.newtabpage.activity-stream.showSearch" = false; # "browser.newtabpage.activity-stream.showSponsoredCheckboxes" = false; # "browser.bookmarks.restore_default_bookmarks" = false; # "media.hardwaremediakeys.enabled" = false; # "media.videocontrols.picture-in-picture.video-toggle.enabled" = false; # "layout.spellcheckDefault" = 0; # # # --- Safe Browsing (Privacy Trade-off) --- # "browser.safebrowsing.downloads.remote.enabled" = false; # "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false; # "browser.safebrowsing.downloads.remote.block_uncommon" = false; # }; # userChrome = '' # #TabsToolbar { visibility: collapse !important; } # #sidebar-header { display: none !important; } # #toolbar-menubar { display: none !important; } # ''; # }; # privacy = { # id = 1; # name = "I2P"; # settings = { # "javascript.enabled" = false; # "dom.visibility_control.enabled" = false; # # "media.peerconnection.enabled" = false; # "network.proxy.type" = 1; # # "network.proxy.http" = "127.0.0.1"; # "network.proxy.http_port" = 4444; # # "network.proxy.ssl" = "127.0.0.1"; # "network.proxy.ssl_port" = 4444; # # "network.proxy.no_proxies_on" = "localhost, 127.0.0.1"; # # "network.http.proxy.pipelining" = true; # "network.proxy.share_proxy_settings" = true; # # "network.prefetch-next" = false; # "network.dns.disablePrefetch" = true; # }; # }; # }; }; }; }