aboutsummaryrefslogtreecommitdiff
path: root/home/programs/firefox
diff options
context:
space:
mode:
authorFranck Cuny <fcuny@roblox.com>2025-08-21 17:46:28 -0700
committerFranck Cuny <fcuny@roblox.com>2025-08-21 17:46:28 -0700
commitc192c1f2ad4ecb4058c231dc455fbfc738917bcd (patch)
treef5b3b97fa407b82bd983677c73fbb801be8389f6 /home/programs/firefox
parentinitial configuration for firefox (diff)
downloadinfra-c192c1f2ad4ecb4058c231dc455fbfc738917bcd.tar.gz
split-up firefox configuration
Ensure we install the bin package, so that we can use the 1password extension (we need a signed binary for that).
Diffstat (limited to 'home/programs/firefox')
-rw-r--r--home/programs/firefox/bookmarks.nix19
-rw-r--r--home/programs/firefox/containers.nix17
-rw-r--r--home/programs/firefox/default.nix28
-rw-r--r--home/programs/firefox/extensions.nix7
-rw-r--r--home/programs/firefox/policies.nix31
-rw-r--r--home/programs/firefox/settings.nix9
6 files changed, 111 insertions, 0 deletions
diff --git a/home/programs/firefox/bookmarks.nix b/home/programs/firefox/bookmarks.nix
new file mode 100644
index 0000000..ede02bd
--- /dev/null
+++ b/home/programs/firefox/bookmarks.nix
@@ -0,0 +1,19 @@
+{
+ force = true;
+ settings = [
+ {
+ name = "main";
+ toolbar = true;
+ bookmarks = [
+ {
+ name = "hackernews";
+ url = "https://news.ycombinator.com/";
+ }
+ {
+ name = "lobsters";
+ url = "https://lobste.rs/";
+ }
+ ];
+ }
+ ];
+}
diff --git a/home/programs/firefox/containers.nix b/home/programs/firefox/containers.nix
new file mode 100644
index 0000000..c96ec1c
--- /dev/null
+++ b/home/programs/firefox/containers.nix
@@ -0,0 +1,17 @@
+{
+ personal = {
+ color = "red";
+ icon = "tree";
+ id = 1;
+ };
+ work = {
+ color = "pink";
+ icon = "briefcase";
+ id = 2;
+ };
+ google = {
+ color = "blue";
+ id = 3;
+ icon = "circle";
+ };
+}
diff --git a/home/programs/firefox/default.nix b/home/programs/firefox/default.nix
new file mode 100644
index 0000000..61fd457
--- /dev/null
+++ b/home/programs/firefox/default.nix
@@ -0,0 +1,28 @@
+{ pkgs, ... }:
+let
+ extensions = import ./extensions.nix { inherit pkgs; };
+ containers = import ./containers.nix;
+ settings = import ./settings.nix;
+ bookmarks = import ./bookmarks.nix;
+ policies = import ./policies.nix;
+in
+{
+ programs.firefox = {
+ enable = true;
+ # we want to use a signed binary so that extensions like 1password work with it
+ package = pkgs.firefox-bin;
+ inherit policies;
+ profiles = {
+ franck = {
+ isDefault = true;
+ containersForce = false;
+ inherit containers;
+ inherit settings;
+ inherit bookmarks;
+ extensions = {
+ packages = extensions;
+ };
+ };
+ };
+ };
+}
diff --git a/home/programs/firefox/extensions.nix b/home/programs/firefox/extensions.nix
new file mode 100644
index 0000000..9f641c9
--- /dev/null
+++ b/home/programs/firefox/extensions.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }:
+with pkgs.nur.repos.rycee.firefox-addons;
+[
+ consent-o-matic
+ sponsorblock
+ ublock-origin
+]
diff --git a/home/programs/firefox/policies.nix b/home/programs/firefox/policies.nix
new file mode 100644
index 0000000..4fba91b
--- /dev/null
+++ b/home/programs/firefox/policies.nix
@@ -0,0 +1,31 @@
+{
+ DisablePocket = true;
+ DisableFirefoxStudies = true;
+ AppAutoUpdate = false; # Disable automatic application update
+ ManualAppUpdateOnly = true; # No update prompts
+ DontCheckDefaultBrowser = true;
+
+ DisableTelemetry = true;
+ EnableTrackingProtection = {
+ Value = true;
+ Cryptomining = true;
+ Fingerprinting = true;
+ EmailTracking = true;
+ };
+ DisableSetDesktopBackground = true;
+ OfferToSaveLogins = false;
+ OfferToSaveLoginsDefault = false;
+
+ NoDefaultBookmarks = true;
+
+ PasswordManagerEnabled = false; # we use 1password
+
+ FirefoxHome = {
+ TopSites = false;
+ SponsoredTopSites = false;
+ Highlights = false;
+ Pocket = false;
+ SponsoredPocket = false;
+ Snippets = false;
+ };
+}
diff --git a/home/programs/firefox/settings.nix b/home/programs/firefox/settings.nix
new file mode 100644
index 0000000..304c99f
--- /dev/null
+++ b/home/programs/firefox/settings.nix
@@ -0,0 +1,9 @@
+{
+ "browser.tabs.groups.enabled" = true; # https://support.mozilla.org/en-US/kb/tab-groups
+ "browser.tabs.groups.smart.enabled" = true; # https://support.mozilla.org/en-US/kb/tab-groups
+ "browser.toolbars.bookmarks.visibility" = "never"; # don't show bookmark tabs
+ "browser.urlbar.trimURLs" = false; # show the complete URL
+ "sidebar.main.tools" = "aichat,history,bookmarks";
+ "sidebar.revamp" = true;
+ "sidebar.verticalTabs" = true; # vertical tabs
+}