Personal-use NixOS configuration
1{
2 lib,
3 ...
4}:
5
6{
7 programs.firefox = {
8 enable = true;
9
10 policies = {
11 BlockAboutConfig = true;
12 };
13
14 profiles.default = {
15 settings = {
16 "extensions.autoDisableScopes" = 0;
17
18 # Fastfox
19 "content.notify.interval" = 100000;
20
21 "gfx.canvas.accelerated.cache-size" = 512;
22 "gfx.content.skia-font-cache-size" = 20;
23
24 "browser.cache.disk.enable" = false;
25 "browser.sessionhistory.max_total_viewers" = 4;
26 "media.memory_cache_max_size" = 65536;
27 "media.cache_readahead_limit" = 7200;
28 "media.cache_resume_threshold" = 3600;
29 "image.mem.decode_bytes_at_a_time" = 32768;
30
31 "network.http.max-connections" = 1800;
32 "network.http.max-persistent-connections-per-server" = 10;
33 "network.http.max-urgent-start-excessive-connections-per-host" = 5;
34 "network.http.pacing.requests.enabled" = false;
35 "network.dnsCacheExpiration" = 3600;
36 "network.ssl_tokens_cache_capacity" = 10240;
37
38 "network.http.speculative-parallel-limit" = 0;
39 "network.dns.disablePrefetch" = true;
40 "network.dns.disablePrefetchFromHTTPS" = true;
41 "browser.urlbar.speculativeConnect.enabled" = false;
42 "browser.places.speculativeConnect.enabled" = false;
43 "network.prefetch-next" = false;
44 "network.predictor.enabled" = false;
45
46 "layout.css.grid-template-masonry-value.enabled" = true;
47
48 # Securefox
49 "browser.contentblocking.category" = "strict";
50 "browser.download.start_downloads_in_tmp_dir" = true;
51 "browser.helperApps.deleteTempFileOnExit" = true;
52 "browser.uitour.enabled" = false;
53 "privacy.globalprivacycontrol.enabled" = true;
54
55 "security.OCSP.enabled" = 0;
56 "security.pki.crlite_mode" = 2;
57
58 "security.ssl.treat_unsafe_negotiation_as_broken" = true;
59 "browser.xul.error_pages.expert_bad_cert" = true;
60 "security.tls.enable_0rtt_data" = false;
61
62 "browser.privatebrowsing.forceMediaMemoryCache" = true;
63 "browser.sessionstore.interval" = 60000;
64
65 "browser.privatebrowsing.resetPBM.enabled" = true;
66 "privacy.history.custom" = true;
67
68 "browser.urlbar.trimHttps" = true;
69 "browser.urlbar.untrimOnUserInteraction.featureGate" = true;
70 "browser.search.separatePrivateDefault.ui.enabled" = true;
71 "browser.search.suggest.enabled" = false;
72 "browser.urlbar.quicksuggest.enabled" = false;
73 "browser.urlbar.groupLabels.enabled" = false;
74 "browser.formfill.enable" = false;
75 "network.IDN_show_punycode" = true;
76
77 "signon.formlessCapture.enabled" = false;
78 "signon.privateBrowsingCapture.enabled" = false;
79 "network.auth.subresource-http-auth-allow" = 1;
80 "editor.truncate_user_pastes" = false;
81
82 "security.mixed_content.block_display_content" = true;
83 "pdfjs.enableScripting" = false;
84
85 "extensions.enabledScopes" = 5;
86
87 "network.http.referer.XOriginTrimmingPolicy" = 2;
88
89 "privacy.userContext.ui.enabled" = true;
90
91 "browser.safebrowsing.downloads.remote.enabled" = false;
92
93 "permissions.default.desktop-notification" = 2;
94 "permissions.default.geo" = 2;
95 "geo.provider.network.url" = "https://beacondb.net/v1/geolocate";
96 "browser.search.update" = false;
97 "permissions.manager.defaultsUrl" = "";
98 "extensions.getAddons.cache.enabled" = false;
99
100 "datareporting.policy.dataSubmissionEnabled" = false;
101 "datareporting.healthreport.uploadEnabled" = false;
102 "toolkit.telemetry.unified" = false;
103 "toolkit.telemetry.enabled" = false;
104 "toolkit.telemetry.server" = "data:,";
105 "toolkit.telemetry.archive.enabled" = false;
106 "toolkit.telemetry.newProfilePing.enabled" = false;
107 "toolkit.telemetry.shutdownPingSender.enabled" = false;
108 "toolkit.telemetry.updatePing.enabled" = false;
109 "toolkit.telemetry.bhrPing.enabled" = false;
110 "toolkit.telemetry.firstShutdownPing.enabled" = false;
111 "toolkit.telemetry.coverage.opt-out" = true;
112 "toolkit.coverage.opt-out" = true;
113 "toolkit.coverage.endpoint.base" = "";
114 "browser.newtabpage.activity-stream.feeds.telemetry" = false;
115 "browser.newtabpage.activity-stream.telemetry" = false;
116 "datareporting.usage.uploadEnabled" = false;
117
118 "app.shield.optoutstudies.enabled" = false;
119 "app.normandy.enabled" = false;
120 "app.normandy.api_url" = "";
121
122 "breakpad.reportURL" = "";
123 "browser.tabs.crashReporting.sendReport" = false;
124
125 # Peskyfox
126 "browser.privatebrowsing.vpnpromourl" = "";
127 "extensions.getAddons.showPane" = false;
128 "extensions.htmlaboutaddons.recommendations.enabled" = false;
129 "browser.discovery.enabled" = false;
130 "browser.shell.checkDefaultBrowser" = false;
131 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
132 "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
133 "browser.preferences.moreFromMozilla" = false;
134 "browser.aboutConfig.showWarning" = false;
135 "browser.aboutwelcome.enabled" = false;
136 "browser.profiles.enabled" = true;
137
138 "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
139 "browser.compactmode.show" = true;
140
141 "full-screen-api.transition-duration.enter" = "0 0";
142 "full-screen-api.transition-duration.leave" = "0 0";
143 "full-screen-api.warning.timeout" = 0;
144
145 "browser.urlbar.unitConversion.enabled" = true;
146 "browser.urlbar.trending.featureGate" = false;
147
148 "browser.newtabpage.activity-stream.default.sites" = "";
149 "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
150 "browser.newtabpage.activity-stream.feeds.section.topstories" = false;
151 "browser.newtabpage.activity-stream.showSponsored" = false;
152
153 "extensions.pocket.enabled" = false;
154
155 "browser.download.manager.addToRecentDocs" = false;
156
157 "browser.download.open_pdf_attachments_inline" = true;
158
159 "browser.bookmarks.openInTabClosesMenu" = false;
160 "browser.menu.showViewImageInfo" = true;
161 "findbar.highlightAll" = true;
162 "layout.word_select.eat_space_to_next_word" = false;
163 };
164
165 search = {
166 force = true;
167
168 default = lib.mkDefault "ddg";
169
170 order = lib.mkDefault [
171 "ddg"
172 "google"
173 ];
174 };
175 };
176 };
177}