From 8c8c3c7565749dc992a9048f43731b10c6e9eac3 Mon Sep 17 00:00:00 2001 From: Stefan Weigl-Bosker Date: Tue, 17 Jun 2025 13:33:30 -0400 Subject: wip: experimental firefox module --- modules/default.nix | 1 + modules/firefox.nix | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++ modules/global.nix | 1 + 3 files changed, 89 insertions(+) create mode 100644 modules/firefox.nix (limited to 'modules') diff --git a/modules/default.nix b/modules/default.nix index 5eacabf..48dd052 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -23,5 +23,6 @@ ./colors ./zathura.nix ./zoxide.nix + ./firefox.nix ]; } diff --git a/modules/firefox.nix b/modules/firefox.nix new file mode 100644 index 0000000..5d9f16f --- /dev/null +++ b/modules/firefox.nix @@ -0,0 +1,87 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.modules.firefox; + scheme = config.modules.scheme; + fmt = col: lib.strings.removePrefix "#" col; + lock-false = { + Value = false; + Status = "locked"; + }; + lock-true = { + Value = true; + Status = "locked"; + }; + lock-empty-string = { + Value = ""; + Status = "locked"; + }; +in +{ + options.modules.firefox = { + enable = lib.mkEnableOption "firefox"; + }; + + config = { + programs.firefox = lib.mkIf cfg.enable { + enable = true; + nativeMessagingHosts = [ + pkgs.tridactyl-native + ]; + policies = { + DisableTelemetry = true; + DisableFirefoxStudies = true; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + SearchBar = "unified"; + DisablePocket = true; + DisableFirefoxAccounts = true; + DisableAccounts = true; + DisableFirefoxScreenshots = true; + OverrideFirstRunPag = ""; + OverridePostUpdatePag = ""; + DisplayBookmarksToolbar = "never"; + DisplayMenuBar = "default-off"; + + ExtensionSettings = { + "tridactyl.vim.betas@cmcaine.co.uk" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4405615/tridactyl_vim-1.24.2.xpi"; + installation_mode = "force_installed"; + }; + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4492375/ublock_origin-1.64.0.xpi"; + installation_mode = "force_installed"; + }; + }; + + Preferences = { + "browser.contentblocking.category" = { Value = "strict"; Status = "locked"; }; + "extensions.pocket.enabled" = lock-false; + "extensions.screenshots.disabled" = lock-true; + "browser.topsites.contile.enabled" = lock-false; + "browser.formfill.enable" = lock-false; + "browser.search.suggest.enabled" = lock-false; + "browser.search.suggest.enabled.private" = lock-false; + "browser.urlbar.suggest.searches" = lock-false; + "browser.urlbar.showSearchSuggestionsFirst" = lock-false; + "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; + "browser.newtabpage.activity-stream.feeds.snippets" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; + "browser.newtabpage.activity-stream.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; + "sidebar.verticalTabs" = lock-true; + "sidebar.visibility" = "expand-on-hover"; + "sidebar.animation.enabled" = "false"; + "sidebar.main.tools" = ""; + }; + }; + }; + }; +} diff --git a/modules/global.nix b/modules/global.nix index e99b3e2..7bb28be 100644 --- a/modules/global.nix +++ b/modules/global.nix @@ -39,6 +39,7 @@ in global = { wayland = lib.mkDefault true; }; + firefox.enable = true; sway = { wrapWithNixGL = cfg.notNixOS; }; -- cgit v1.2.3