]> Git — Sourcephile - julm/julm-nix.git/blob - home-manager/profiles/firefox.nix
Usability/Operability(neovim): enable trouble.nvim
[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=${pkgs.firejail}/etc/firejail/firefox.profile"
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 cfg = {
39 speechSynthesisSupport = lib.mkDefault false;
40 };
41 policies = {
42 CaptivePortal = false;
43 DNSOverHTTPS = {
44 Enabled = false;
45 Locked = true;
46 };
47 DisableAppUpdate = true;
48 DisableFirefoxAccounts = true;
49 DisableFirefoxStudies = true;
50 DisablePocket = true;
51 DisableTelemetry = true;
52 DontCheckDefaultBrowser = true;
53 FirefoxHome = {
54 Pocket = false;
55 Snippets = false;
56 };
57 NetworkPrediction = false;
58 PromptForDownloadLocation = true;
59 SearchEngines = {
60 PreventInstalls = true;
61 };
62 SearchSuggestEnabled = false;
63 UserMessaging = {
64 ExtensionRecommendations = false;
65 SkipOnboarding = true;
66 };
67 };
68 };
69 };
70 }