From ecdb362f60a16b22d5a06fb90617b51d49df9e8b Mon Sep 17 00:00:00 2001
From: clerie <git@clerie.de>
Date: Sun, 27 Apr 2025 13:55:33 +0200
Subject: [PATCH] profiles/firefox: Provide default configuration

---
 hosts/krypton/programs.nix   |  4 +-
 hosts/zinc/programs.nix      |  4 +-
 profiles/default.nix         |  1 +
 profiles/firefox/default.nix | 82 ++++++++++++++++++++++++++++++++++++
 4 files changed, 86 insertions(+), 5 deletions(-)
 create mode 100644 profiles/firefox/default.nix

diff --git a/hosts/krypton/programs.nix b/hosts/krypton/programs.nix
index 8bbd595..85ed21f 100644
--- a/hosts/krypton/programs.nix
+++ b/hosts/krypton/programs.nix
@@ -1,9 +1,7 @@
 { pkgs, ... }:
 
 {
-  environment.systemPackages = with pkgs; [
-    firefox-wayland
-  ];
+  profiles.clerie.firefox.enable = true;
 
   users.users.clerie.packages = with pkgs; [
     keepassxc
diff --git a/hosts/zinc/programs.nix b/hosts/zinc/programs.nix
index 34808b1..df35c8a 100644
--- a/hosts/zinc/programs.nix
+++ b/hosts/zinc/programs.nix
@@ -2,9 +2,9 @@
 
 {
 
-  users.users.clerie.packages = with pkgs; [
-    firefox
+  profiles.clerie.firefox.enable = true;
 
+  users.users.clerie.packages = with pkgs; [
     blender
     #cura # libarcus library is currently broken, required for curaengine
 
diff --git a/profiles/default.nix b/profiles/default.nix
index 0b0b95f..5b6be2a 100644
--- a/profiles/default.nix
+++ b/profiles/default.nix
@@ -9,6 +9,7 @@
     ./cybercluster-vm
     ./dn42-router
     ./fem-net
+    ./firefox
     ./hetzner-cloud
     ./mercury-vm
     ./netcup
diff --git a/profiles/firefox/default.nix b/profiles/firefox/default.nix
new file mode 100644
index 0000000..2d5b489
--- /dev/null
+++ b/profiles/firefox/default.nix
@@ -0,0 +1,82 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+
+  options.profiles.clerie.firefox = {
+    enable = mkEnableOption "Firefox setup";
+  };
+
+  config = mkIf config.profiles.clerie.firefox.enable {
+
+    programs.firefox.enable = true;
+
+    programs.firefox.package = pkgs.firefox-wayland;
+
+    programs.firefox.policies = {
+      AutofillAddressEnabled = false;
+      AutofillCreditCardEnabled = false;
+      CaptivePortal = false;
+      DisableFeedbackCommands = true;
+      DisableFirefoxStudies = true;
+      DisablePocket = true;
+      DisableSetDesktopBackground = true;
+      DisableTelemetry = true;
+
+      DisplayBookmarksToolbar = "never";
+      DisplayMenuBar = "default-off";
+
+      DontCheckDefaultBrowser = true;
+
+      Extensions = {
+        Locked = [
+          "uBlock0@raymondhill.net" # uBlock Origin
+          "@testpilot-containers" # Firefox Multi-Account Containers
+        ];
+        Install = [
+          "{c2c003ee-bd69-42a2-b0e9-6f34222cb046}" # Auto Tab Discard
+          "keepassxc-browser@keepassxc.org" # KeePassXC-Browser
+        ];
+      };
+
+      ExtensionSettings = {
+        "uBlock0@raymondhill.net" = {
+          private_browsing = true;
+        };
+      };
+
+      FirefoxHome = {
+        Search = false;
+        TopSites = false;
+        SponsoredTopSites = false;
+        Highlights = false;
+        Pocket = false;
+        SponsoredPocket = false;
+        Snippets = false;
+      };
+
+      HttpsOnlyMode = "enabled";
+
+      NewTabPage = false;
+      NoDefaultBookmarks = true;
+
+      OfferToSaveLogins = false;
+      PasswordManagerEnabled = false;
+
+      RequestedLocales = [ "en" ];
+
+      SearchBar = "unified";
+      ShowHomeButton = false;
+
+      UserMessaging = {
+        ExtensionRecommendations = false;
+        FeatureRecommendations = false;
+        SkipOnboarding = true;
+        MoreFromMozilla = false;
+      };
+
+    };
+
+  };
+}