summaryrefslogtreecommitdiff
path: root/common/programs/firefox.nix
blob: 77d1b2e4a9bf7f00215451356654f3423ac4fa9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
{
  pkgs,
  lib,
  config,
  ...
}:
{
  programs.firefox = {
    enable = true;
    package = pkgs.librewolf;

    policies = {
      # DisableTelemetry = true;
      # BlockAboutConfig = false;
      # DisableFirefoxAccounts = true;
      # DisablePocket = true;
      # DisableSetDesktopBackground = true;
      # DisableSystemAddonUpdate = true;
      # AutofillCreditCardEnabled = false;
      # AutofillAddressEnabled = false;
      # DisableFirefoxScreenshots = true;
      # DisableMasterPasswordCreation = true;
      # DontCheckDefaultBrowser = true;
      # NoDefaultBookmarks = true;
      # OfferToSaveLogins = false;
      # UserMessaging = {
      #   WhatsNew = false;
      #   ExtensionRecommendations = false;
      #   FeatureRecommendations = false;
      #   UrlbarInterventions = false;
      #   SkipOnboarding = true;
      #   MoreFromMozilla = false;
      #   Locked = true;
      # };
      # FirefoxHome = {
      #   Search = false;
      #   TopSites = false;
      #   SponsoredTopSites = false;
      #   Highlights = false;
      #   Pocket = false;
      #   Stories = false;
      #   SponsoredPocket = false;
      #   SponsoredStories = false;
      #   Snippets = false;
      #   Locked = true;
      # };
      # FirefoxSuggest = {
      #   WebSuggestions = false;
      #   SponsoredSuggestions = false;
      #   ImproveSuggest = false;
      #   Locked = true;
      # };
      ExtensionSettings = {
        # "uBlock0@raymondhill.net" = {
        #   default_area = "menupanel";
        #   installation_mode = "force_installed";
        #   install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
        #   private_browsing = true;
        # };
        "addon@darkreader.org" = {
          default_area = "menupanel";
          installation_mode = "force_installed";
          install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi";
          private_browsing = true;
        };
      };
    };

    profiles.default = {
      settings = {
        "privacy.trackingprotection.enabled" = true;
        "privacy.trackingprotection.socialtracking.enabled" = true;
        "privacy.globalprivacycontrol.enabled" = true;
        "browser.contentblocking.category" = "strict";

        "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
        "svg.context-properties.content.enabled" = true;

        # "beacon.enabled" = false;

        # Performance
        "gfx.webrender.all" = true; # Enable WebRender
        "layers.acceleration.enabled" = true;
        # "browser.cache.disk.enable" = false; # Disable disk cache
        # "browser.cache.memory.enable" = true; # Use memory cache
        # "browser.cache.memory.capacity" = 1048576; # 1gb memory cache
        # "browser.preferences.defaultPerformanceSettings.enabled" = false;
        "media.hardware-video-decoding.force-enabled" = true;
        "media.hardware-video-decoding.enabled" = true;
        "browser.tabs.unloadOnLowMemory" = true;
        "browser.low_commit_space_threshold_percent" = 100;
        "browser.tabs.min_inactive_duration_before_unload" = 3600000;
        "gfx.webrender.all" = true;
        "gfx.webrender.compositor" = true;
        "gfx.x11-egl.force-enabled" = true;
        "layers.acceleration.force-enabled" = true;
        "media.ffmpeg.vaapi.enabled" = true;
        "toolkit.legacyUserProfileCustomizations.stylesheets" = true;

        # Disable unnecessary features
        # "browser.aboutwelcome.enabled" = false;
        # "browser.discovery.enabled" = false;
        # "browser.onboarding.enabled" = false;

        "browser.tabs.inTitlebar" = 0;
        "browser.toolbars.bookmarks.visibility" = "never";
        "widget.use-xdg-desktop-portal.file-picker" = 1;
      };

      # search = {
      #   force = true;
      #   default = "ddg";
      #   engines = {
      #     nixos-packages = {
      #       name = "NixOS Packages";
      #       urls = [ { template = "https://search.nixos.org/packages?query={searchTerms}"; } ];
      #       iconMapObj."16" = "https://nixos.org/favicon.ico";
      #       definedAliases = [ ":n" ];
      #     };
      #     nixos-wiki = {
      #       name = "NixOS Wiki";
      #       urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
      #       iconMapObj."16" = "https://wiki.nixos.org/favicon.ico";
      #       definedAliases = [ ":nw" ];
      #     };
      #     amazon.metaData.hidden = true;
      #     ebay.metaData.hidden = true;
      #     perplexity.metaData.hidden = true;
      #
      #     google.metaData.alias = ":g";
      #     bing.metaData.alias = ":b";
      #   };
      # };
    };
  };
}