diff --git a/nixos/desktop/default.nix b/nixos/desktop/default.nix index 95f4b52..b8decf9 100644 --- a/nixos/desktop/default.nix +++ b/nixos/desktop/default.nix @@ -11,6 +11,7 @@ imports = [ # Import shared packages ../shared + ./package-configs ]; nixpkgs = { # You can add overlays here diff --git a/nixos/desktop/package-configs/default.nix b/nixos/desktop/package-configs/default.nix new file mode 100644 index 0000000..95564cd --- /dev/null +++ b/nixos/desktop/package-configs/default.nix @@ -0,0 +1,12 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: { + imports = [ + ./firefox + ]; +} diff --git a/nixos/desktop/package-configs/firefox/default.nix b/nixos/desktop/package-configs/firefox/default.nix new file mode 100644 index 0000000..1bfc6a2 --- /dev/null +++ b/nixos/desktop/package-configs/firefox/default.nix @@ -0,0 +1,173 @@ +{ + config, + pkgs, + ... +}: { + programs.firefox = { + enable = true; + package = pkgs.firefox; + policies = { + DisableTelemetry = true; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableFirefoxAccounts = true; + DisableAccounts = true; + DisableProfileImport = true; + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + DontCheckDefaultBrowser = true; + DisplayBookmarksToolbar = "newtab"; + ManualAppUpdateOnly = true; + OfferToSaveLogins = false; + PasswordManagerEnabled = false; + DownloadDirectory = "\${home}/Downloads"; + SearchEngines = { + Add = [ + { + Name = "DuckDuckGo"; + URLTemplate = "https://www.duckduckgo.org/?t=h_&q{searchTerms}&ia=web"; + Method = "GET | POST"; + IconURL = "https://www.duckduckgo.org/favicon.ico"; + Alias = "duckduckgo"; + Description = "DuckDuckGo Privacy Search Engine"; + PostData = "name=value&q={searchTerms}"; + SuggestURLTemplate = "https://www.duckduckgo.org/suggestions/q={searchTerms}"; + } + ]; + Default = "DuckDuckGo"; + Remove = ["Google" "Amazon" "Ebay"]; + }; + EnableTrackingProtection = { + Value = true; + Cryptomining = true; + Fingerprinting = true; + }; + ExtensionSettings = { + # "*".installation_mode = "blocked"; # blocks all addons except the ones specified below + # Privacy Badger: + "jid1-MnnxcxisBPnSXQ@jetpack" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi"; + installation_mode = "force_installed"; + }; + # Bitwarden: + "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; + installation_mode = "force_installed"; + }; + # Libredirect: + "7esoorv3@alefvanoon.anonaddy.me" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/libredirect/latest.xpi"; + installation_mode = "force_installed"; + }; + # DarkReader: + "addon@darkreader.org" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; + installation_mode = "force_installed"; + }; + # SimpleLogin: + "addon@simplelogin" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/simplelogin/latest.xpi"; + installation_mode = "force_installed"; + }; + # Cookie Auto Delete: + "CookieAutoDelete@kennydo.com" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/cookie-autodelete/latest.xpi"; + installation_mode = "force_installed"; + }; + # Don't fuck with paste: + "DontFuckWithPaste@raim.ist" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/don-t-fuck-with-paste/latest.xpi"; + installation_mode = "force_installed"; + }; + # Firefox pwas: + "firefoxpwa@filips.si" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/pwas-for-firefox/latest.xpi"; + installation_mode = "force_installed"; + }; + # Consent o matic: + "gdpr@cavi.au.dk" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/consent-o-matic/latest.xpi"; + installation_mode = "force_installed"; + }; + # Mailvelope: + "jid1-AQqSMBYb0a8ADg@jetpack" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/mailvelope/latest.xpi"; + installation_mode = "force_installed"; + }; + # KDE connect: + "kde-connect@0xc0dedbad.com" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/kde-connect/latest.xpi"; + installation_mode = "force_installed"; + }; + # Plasma browser integration: + "plasma-browser-integration@kde.org" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/plasma-integration/latest.xpi"; + installation_mode = "force_installed"; + }; + # Shinigami eyes: + "shinigamieyes@shinigamieyes" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/shinigami-eyes/latest.xpi"; + installation_mode = "force_installed"; + }; + # uBlock Origin: + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + installation_mode = "force_installed"; + }; + # uBlock Scope: + "uBO-Scope@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ubo-scope/latest.xpi"; + installation_mode = "force_installed"; + }; + # Wayback machine: + "wayback_machine@mozilla.org" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4047136/wayback_machine_new-3.2.xpi"; + installation_mode = "force_installed"; + }; + }; + FirefoxHome = { + Search = true; + TopSites = false; + SponsoredTopSites = false; + Highlights = false; + Pocket = false; + SponsoredPocket = false; + Snippets = false; + }; + FirefoxSuggest = { + WebSuggestions = false; + SponsoredSuggestions = false; + ImproveSuggest = false; + }; + Preferences = { + "browser.compactmode.show" = true; + "browser.uidensity" = 1; + # "browser.newtabpage.activity-stream.feeds.topsites" = false; + # "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "font.name.serif.x-western" = "Crimson"; + "font.name.sans-serif.x-western" = "Atkinson Hyperlegible"; + "font.name.monospace.x-western" = "FiraCode Nerd Font"; + "font.size.variable.x-western" = 14; + "signon.rememberSignons" = true; + }; + # TODO: switch to ManagedBookmarks as this will be dropped at some point https://mozilla.github.io/policy-templates/#managedbookmarks + # Bookmarks = [ + # { + # Title = "NixOS wiki"; + # Placement = "toolbar"; + # URL = "https://nixos.wiki/"; + # } + # { + # Title = "NixOS options"; + # Placement = "toolbar"; + # URL = "https://nixos.org/manual/nixos/stable/options"; + # } + # { + # Title = "NixOS home-manager options"; + # Placement = "toolbar"; + # URL = "https://nix-community.github.io/home-manager/options.xhtml"; + # } + # ]; + }; + }; +}