Files
Nixos/modules/home/nixos/apps/firefox.nix
T

104 lines
3.7 KiB
Nix

{ lib, config, ... }:
with lib;
let
cfg = config.home.firefox;
in
{
options.home.firefox = {
enable = mkEnableOption "Firefox service";
privacy = mkEnableOption "Firefox privacy service";
sanity = mkEnableOption "Sanitize Firefox on shutdown";
};
config = mkIf cfg.enable {
xdg.mimeApps.defaultApplications = {
"text/html" = [ "firefox.desktop" ];
"text/xml" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
};
programs.firefox = {
enable = true;
languagePacks = [ "fr-FR" ];
policies = {
DisablePocket = true;
ExtensionSettings =
{ }
+ mkif cfg.privacy {
"uBlock0@raymondhill.net" = {
default_area = "menupanel";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed";
private_browsing = true;
};
};
}
+ mkif cfg.privacy {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = true;
};
profiles.default = {
settings = {
# Vertical tabs
"sidebar.revamp" = true;
"sidebar.verticalTabs" = true;
"sidebar.new-sidebar.has-used" = true;
"sidebar.main.tools" = "history,passwords";
"sidebar.backupState" = {
"panelOpen" = true;
"launcherExpanded" = false;
"launcherVisible" = true;
};
# No bookmarks
"browser.toolbars.bookmarks.visibility" = "never";
# New tab page
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.showSponsoredCheckboxes" = false;
}
+ mkif cfg.privacy {
# Disable some telemetry
"app.shield.optoutstudies.enabled" = false;
"browser.discovery.enabled" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false;
"browser.ping-centre.telemetry" = false;
"datareporting.healthreport.service.enabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.sessions.current.clean" = true;
"devtools.onboarding.telemetry.logged" = false;
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.hybridContent.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.prompted" = 2;
"toolkit.telemetry.rejected" = true;
"toolkit.telemetry.reportingpolicy.firstRun" = false;
"toolkit.telemetry.server" = "";
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.unifiedIsOptIn" = false;
"toolkit.telemetry.updatePing.enabled" = false;
}
+ mkif cfg.sanity {
# Sanitize
"SanitizeOnShutdown" = {
"Locked" = false;
"Cache" = true;
"History" = true;
"Cookies" = true;
"Sessions" = true;
"FormData" = true;
"SiteSettings" = true;
};
};
};
};
};
}