nix-git/modules/firefox.nix
2023-09-12 14:50:43 +02:00

114 lines
4.4 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, pkgs, ... }:
{
users.users.yoda = {
packages = with pkgs; [
firefox # Web browser
];
};
# Touch input with Firefox under X11.
environment.sessionVariables = {
MOZ_USE_XINPUT2 = "1";
};
home-manager.users.yoda = { osConfig, config, pkgs, ... }: {
programs.firefox = {
enable = true;
profiles.default = {
isDefault = true;
# https://wiki.archlinux.org/title/Firefox/Privacy
settings = {
# Don't execute JavaScript from PDF files.
"pdfjs.enableScripting" = false;
# "Do Not Track" header.
"privacy.donottrackheader.enabled" = true;
# HTTPS-only mode in all windows.
# https://www.privacy-handbuch.de/handbuch_21l.htm
"dom.security.https_only_mode" = true;
# Don't ask to save passwords/logins.
"signon.rememberSignons" = false;
# https://wiki.archlinux.org/title/Firefox/Privacy#Tracking_protection
"privacy.trackingprotection.enabled" = true;
#"privacy.trackingprotection.emailtracking.enabled" = true;
#"privacy.trackingprotection.socialtracking.enabled" = true;
# https://wiki.archlinux.org/title/Firefox/Privacy#Anti-fingerprinting
"privacy.resistFingerprinting" = true;
# https://wiki.archlinux.org/title/Firefox/Privacy#First_party_isolation
"privacy.firstparty.isolate" = true;
# https://wiki.mozilla.org/Privacy/Privacy_Task_Force/firefox_about_config_privacy_tweeks
# The attribute would be useful for letting websites track visitors clicks.
"browser.send_pings" = false;
# https://wiki.mozilla.org/Privacy/Privacy_Task_Force/firefox_about_config_privacy_tweeks
# Disable preloading of autocomplete URLs.
# Firefox preloads URLs that autocomplete when a user types into the address bar,
# which is a concern if URLs are suggested that the user does not want to connect to.
"browser.urlbar.speculativeConnect.enabled" = false;
# https://wiki.mozilla.org/Privacy/Privacy_Task_Force/firefox_about_config_privacy_tweeks
# Website owners can track the battery status of your device.
"dom.battery.enabled" = false;
# https://wiki.mozilla.org/Privacy/Privacy_Task_Force/firefox_about_config_privacy_tweeks
# Disable that websites can get notifications if you copy, paste, or cut something from a web page,
# and it lets them know which part of the page had been selected.
"dom.event.clipboardevents.enabled" = false;
# https://wiki.mozilla.org/Privacy/Privacy_Task_Force/firefox_about_config_privacy_tweeks
# Only accept from the originating site (block third party cookies)
"network.cookie.cookieBehavior" = 1;
# DNS-over-HTTPS
# https://www.privacy-handbuch.de/handbuch_21w.htm
"network.trr.mode" = 3;
"network.trr.uri" = "https://doh.ffmuc.net/dns-query";
# Don't automatically save PDF files in ~/Downloads/
"browser.download.start_downloads_in_tmp_dir" = true;
};
search.default = "Startpage";
search.engines = {
"Amazon.de".metaData.hidden = true;
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"NixOS Wiki" = {
urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }];
iconUpdateURL = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # Every day
definedAliases = [ "@nw" ];
};
"Startpage" = {
urls = [{ template = "https://www.startpage.com/sp/search?query={searchTerms}"; }];
iconUpdateURL = "https://www.startpage.com/sp/cdn/favicons/favicon-32x32--default.png";
updateInterval = 24 * 60 * 60 * 1000; # Every day
definedAliases = [ "@sp" ];
};
};
# https://mipmip.github.io/home-manager-option-search/?query=firefox.profiles.%3Cname%3E.extensions
# https://nur.nix-community.org/repos/rycee/
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
floccus
snowflake
simple-tab-groups
smart-referer
# noscript
# video-downloadhelper
decentraleyes
# or
#localcdn
];
};
};
};
}