Modularize firefox

This commit is contained in:
DashieTM 2024-08-07 14:13:40 +02:00
parent c2c8e002b9
commit a608ed5b9f
4 changed files with 70 additions and 48 deletions

View file

@ -23,6 +23,7 @@
./keepassxc.nix ./keepassxc.nix
./gaming.nix ./gaming.nix
./stylix.nix ./stylix.nix
./firefox.nix
./hyprland ./hyprland
]; ];
} }

View file

@ -0,0 +1,69 @@
{ lib, config, options, pkgs, ... }: {
options.mods.firefox = {
enable = lib.mkOption {
default = true;
example = false;
type = lib.types.bool;
description = "Enables firefox";
};
configuration = lib.mkOption {
default = {
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisplayBookmarksToolbar = "never";
DisplayMenuBar = "default-off";
CaptivePortal = false;
DisableFirefoxStudies = true;
DisableTelemetry = true;
DisableFirefoxAccounts = false;
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OfferToSaveLoginsDefault = false;
PasswordManagerEnabled = false;
FirefoxHome = {
Search = true;
Pocket = false;
Snippets = false;
TopSites = true;
Highlights = false;
};
UserMessaging = {
ExtensionRecommendations = false;
SkipOnboarding = true;
};
};
example = { };
type = with lib.types; attrsOf anything;
description = "Firefox policy configuration";
};
extensions = lib.mkOption {
default = with pkgs.nur.repos.rycee.firefox-addons;[
ublock-origin
darkreader
privacy-badger
vimium
keepassxc-browser
i-dont-care-about-cookies
tokyo-night-v2
];
example = [ ];
type = with lib.types; listOf package;
description = "Firefox extensions (from nur)";
};
};
config = lib.mkIf config.mods.firefox.enable
(lib.optionalAttrs (options?programs.firefox.profiles) {
programs.firefox = {
enable = true;
policies = config.mods.firefox.configuration;
profiles.${config.conf.username} = {
extensions = config.mods.firefox.extensions;
};
};
});
}

View file

@ -4,7 +4,6 @@
./yazi.nix ./yazi.nix
./fish.nix ./fish.nix
./direnv.nix ./direnv.nix
./firefox.nix
./neovide.nix ./neovide.nix
]; ];
} }

View file

@ -1,47 +0,0 @@
{ pkgs, config, ... }: {
programs.firefox = {
enable = true;
policies = {
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisplayBookmarksToolbar = "never";
DisplayMenuBar = "default-off";
CaptivePortal = false;
DisableFirefoxStudies = true;
DisableTelemetry = true;
DisableFirefoxAccounts = false;
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OfferToSaveLoginsDefault = false;
PasswordManagerEnabled = false;
FirefoxHome = {
Search = true;
Pocket = false;
Snippets = false;
TopSites = true;
Highlights = false;
};
UserMessaging = {
ExtensionRecommendations = false;
SkipOnboarding = true;
};
};
profiles.${config.conf.username} = {
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
darkreader
privacy-badger
vimium
keepassxc-browser
i-dont-care-about-cookies
tokyo-night-v2
];
};
};
}