]> Git — Sourcephile - julm/julm-nix.git/blob - home-manager/profiles/firefox.nix
+user/updatability(nixos-unstable): pin latest
[julm/julm-nix.git] / home-manager / profiles / firefox.nix
1 {
2 config,
3 pkgs,
4 lib,
5 ...
6 }:
7 let
8 jsonFormat = pkgs.formats.json { };
9 cfg = config.programs.firefox;
10 in
11 {
12 options = {
13 programs.firefox = {
14 cfg = lib.mkOption {
15 type = lib.types.attrsOf jsonFormat.type;
16 default = { };
17 };
18 firejail.args = lib.mkOption {
19 description = "Arguments to pass to the firejail sandboxing firefox";
20 type = with lib.types; listOf str;
21 default = [
22 "--profile=${firejail/firefox.conf}"
23 ];
24 };
25 };
26 };
27 config = {
28 home.packages = lib.mkIf cfg.enable [
29 #pkgs.tor-browser-bundle-bin
30 ];
31 programs.browserpass.browsers = [ "firefox" ];
32 programs.firefox = {
33 enable = lib.mkDefault true;
34 package = pkgs.firejailWrap {
35 package = pkgs.wrapFirefox pkgs.firefox-unwrapped { inherit (cfg) cfg; };
36 inherit (cfg.firejail) args;
37 };
38 #configPath = "${config.xdg.configHome}/mozilla/firefox";
39 configPath = lib.mkDefault ".mozilla/firefox";
40 cfg = {
41 speechSynthesisSupport = lib.mkDefault false;
42 };
43 policies = {
44 CaptivePortal = false;
45 DNSOverHTTPS = {
46 Enabled = false;
47 Locked = true;
48 };
49 DisableAppUpdate = true;
50 DisableFirefoxAccounts = true;
51 DisableFirefoxStudies = true;
52 DisablePocket = true;
53 DisableTelemetry = true;
54 DontCheckDefaultBrowser = true;
55 FirefoxHome = {
56 Pocket = false;
57 Snippets = false;
58 };
59 NetworkPrediction = false;
60 PromptForDownloadLocation = true;
61 SearchEngines = {
62 PreventInstalls = true;
63 };
64 SearchSuggestEnabled = false;
65 UserMessaging = {
66 ExtensionRecommendations = false;
67 SkipOnboarding = true;
68 };
69 };
70 };
71 };
72 }