133 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   config,
 | |
|   lib,
 | |
|   pkgs,
 | |
|   ...
 | |
| }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let
 | |
|   cfg = config.desktop.browsers.firefox;
 | |
| in
 | |
| {
 | |
|   options.desktop.browsers.firefox = {
 | |
|     enable = mkEnableOption "Enable firefox";
 | |
| 
 | |
|     homepageUrl = mkOption {
 | |
|       description = "The homepage URL.";
 | |
|       type = types.nullOr types.str;
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
|     programs.firefox.enable = false;
 | |
| 
 | |
|     programs.librewolf = {
 | |
|       enable = true;
 | |
| 
 | |
|       languagePacks = [ "en-GB" ];
 | |
| 
 | |
|       policies = {
 | |
|         CaptivePortal = false;
 | |
|         DisableFirefoxAccounts = true;
 | |
|         DisableFirefoxStudies = true;
 | |
|         DisablePocket = true;
 | |
|         DisableTelemetry = true;
 | |
| 
 | |
|         EnableTrackingProtection = {
 | |
|           Cryptomining = true;
 | |
|           Fingerprinting = true;
 | |
|           Value = true;
 | |
|         };
 | |
| 
 | |
|         ExtensionSettings = {
 | |
|           "jid1-ZAdIEUB7XOzOJw@jetpack" = {
 | |
|             install_url = "https://addons.mozilla.org/firefox/downloads/latest/duckduckgo-for-firefox/latest.xpi";
 | |
|             installation_mode = "force_installed";
 | |
|           };
 | |
| 
 | |
|           "uBlock0@raymondhill.net" = {
 | |
|             install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
 | |
|             installation_mode = "force_installed";
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         FirefoxHome = {
 | |
|           Highlights = false;
 | |
|           Pocket = false;
 | |
|           Search = true;
 | |
|           Snippets = false;
 | |
|           SponsoredPocket = false;
 | |
|           SponsoredTopSites = false;
 | |
|           TopSites = true;
 | |
|         };
 | |
| 
 | |
|         FirefoxSuggest = {
 | |
|           ImproveSuggest = false;
 | |
|           SponsoredSuggestions = false;
 | |
|           WebSuggestions = false;
 | |
|         };
 | |
| 
 | |
|         NoDefaultBookmarks = true;
 | |
|         OfferToSaveLogins = false;
 | |
|         OfferToSaveLoginsDefault = false;
 | |
|         PasswordManagerEnabled = false;
 | |
| 
 | |
|         Preferences = {
 | |
|           "browser.newtabpage.enabled" = false;
 | |
|           "browser.startup.homepage" = cfg.homepageUrl;
 | |
|           "cookiebanners.service.mode" = 2; # Block cookie banners
 | |
|           "cookiebanners.service.mode.privateBrowsing" = 2; # Block cookie banners in private browsing
 | |
|           "privacy.donottrackheader.enabled" = true;
 | |
|           "privacy.fingerprintingProtection" = true;
 | |
|           "privacy.resistFingerprinting" = true;
 | |
|           "privacy.trackingprotection.emailtracking.enabled" = true;
 | |
|           "privacy.trackingprotection.enabled" = true;
 | |
|           "privacy.trackingprotection.fingerprinting.enabled" = true;
 | |
|           "privacy.trackingprotection.socialtracking.enabled" = true;
 | |
|         };
 | |
| 
 | |
|         HardwareAcceleration = true;
 | |
|         TranslateEnabled = true;
 | |
| 
 | |
|         UserMessaging = {
 | |
|           ExtensionRecommendations = false;
 | |
|           UrlbarInterventions = false;
 | |
|           SkipOnboarding = true;
 | |
|         };
 | |
|       };
 | |
| 
 | |
|       profiles = {
 | |
|         default = {
 | |
|           extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
 | |
|             awesome-rss
 | |
|             bitwarden
 | |
|             darkreader
 | |
|             onetab
 | |
|             tree-style-tab
 | |
|             ublock-origin
 | |
|             videospeed
 | |
|             vimium
 | |
|             web-developer
 | |
|           ];
 | |
| 
 | |
|           search = {
 | |
|             default = "ddg";
 | |
|             force = true;
 | |
|             privateDefault = "ddg";
 | |
|           };
 | |
| 
 | |
|           settings = {
 | |
|             "browser.search.isUS" = false;
 | |
|             "browser.search.region" = "GB";
 | |
|             "distribution.searchplugins.defaultLocale" = "en-GB";
 | |
|             "general.useragent.locale" = "en-GB";
 | |
|             "intl.accept_languages" = "en-GB, en";
 | |
|             "intl.regional_prefs.use_os_locales" = true;
 | |
|           };
 | |
|         };
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |