diff --git a/config.default.nix b/config.default.nix index 03463fc..f102ffe 100644 --- a/config.default.nix +++ b/config.default.nix @@ -27,13 +27,15 @@ allowUnfree = true; # allows installation of commercial apps. touchpadSupport = false; - gamingDesktop = true; # Custom Applications - linux-apps = pkgs: - with pkgs; [ - jellyfin-media-player - ]; + linux-apps = { + gamingDesktop = true; # adds steam + my-apps = pkgs: + with pkgs; [ + jellyfin-media-player + ]; + }; hyprconf = { monitor = [ diff --git a/modules/desktop/app.nix b/modules/desktop/app.nix index f6e6aec..319c9ef 100644 --- a/modules/desktop/app.nix +++ b/modules/desktop/app.nix @@ -1,5 +1,8 @@ {pkgs, ...}: let info = import ../../config.nix; in { - home.packages = info.linux-apps pkgs; + home.packages = info.linux-apps.my-apps pkgs; + import = [ + ../../pkgs/firefox/default.nix + ]; } diff --git a/modules/misc.nix b/modules/misc.nix index d3d2831..bb72d01 100644 --- a/modules/misc.nix +++ b/modules/misc.nix @@ -1,12 +1,12 @@ { - gamingDesktop, + linux-apps, lib, ... }: { imports = [ ] - ++ lib.optionals (gamingDesktop == true) [ + ++ lib.optionals (linux-apps.gamingDesktop == true) [ ../../pkgs/steam/default.nix ]; } diff --git a/pkgs/firefox/default.nix b/pkgs/firefox/default.nix new file mode 100644 index 0000000..079c4e8 --- /dev/null +++ b/pkgs/firefox/default.nix @@ -0,0 +1,107 @@ +{ + config, + pkgs, + ... +}: let + lock-false = { + Value = false; + Status = "locked"; + }; + lock-true = { + Value = true; + Status = "locked"; + }; +in { + programs = { + firefox = { + enable = true; + languagePacks = ["en-US"]; + + /* + ---- POLICIES ---- + */ + # Check about:policies#documentation for options. + policies = { + DisableTelemetry = true; + DisableFirefoxStudies = true; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + DisablePocket = true; + DisableFirefoxAccounts = true; + DisableAccounts = true; + DisableFirefoxScreenshots = true; + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + DontCheckDefaultBrowser = true; + DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab" + DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" + SearchBar = "unified"; # alternative: "separate" + + /* + ---- EXTENSIONS ---- + */ + # Check about:support for extension/add-on ID strings. + # Valid strings for installation_mode are "allowed", "blocked", + # "force_installed" and "normal_installed". + ExtensionSettings = { + "*".installation_mode = "blocked"; # blocks all addons except the ones specified below + # uBlock Origin: + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + installation_mode = "force_installed"; + }; + "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4493940/bitwarden_password_manager-2025.5.0.xpi"; + installation_mode = "force_installed"; + }; + "tridactyl.vim@cmcaine.co.uk" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4405615/tridactyl_vim-1.24.2.xpi"; + installation_mode = "force_installed"; + } + # Privacy Badger: + # "jid1-MnnxcxisBPnSXQ@jetpack" = { + # install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi"; + # installation_mode = "force_installed"; + # }; + # 1Password: + # "{d634138d-c276-4fc8-924b-40a0ea21d284}" = { + # install_url = "https://addons.mozilla.org/firefox/downloads/latest/1password-x-password-manager/latest.xpi"; + # installation_mode = "force_installed"; + }; + }; + + /* + ---- PREFERENCES ---- + */ + # Check about:config for options. + 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; + }; + }; + }; + }; +}