nix/modules/home-manager/web/firefox/default.nix

62 lines
1.5 KiB
Nix

{ lib, config, pkgs, ... }:
with lib;
let
merge = foldr (a: b: a // b) { };
cfg = config.modules.web.firefox;
in
{
options.modules.web.firefox = {
enable = mkEnableOption "enable Firefox web browser";
};
config = mkIf cfg.enable {
nixpkgs.overlays = [
inputs.nur.overlay
];
programs.browserpass = {
enable = true;
browsers = ["firefox"];
};
programs.firefox = {
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
nativeMessagingHosts = [
# Tridactyl native connector
pkgs.tridactyl-native
pkgs.browserpass
];
};
enable = true;
profiles.ephase = {
id = 0;
name = "ephase";
isDefault = true;
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
browserpass
consent-o-matic
cookie-autodelete
darkreader
decentraleyes
tridactyl
ublock-origin
];
search = {
force = true;
default = "DuckDuckGo";
};
settings = merge [
(import ./conf/doh.nix)
(import ./conf/drm.nix)
(import ./conf/experiments.nix)
(import ./conf/extensions.nix)
(import ./conf/preferences.nix)
(import ./conf/privacy.nix)
(import ./conf/safebrowsing.nix)
(import ./conf/suggest.nix)
(import ./conf/telemetry.nix)
(import ./conf/theme.nix)
(import ./conf/tracking.nix)
];
};
};
};
}