Targeted threat model: corporations, ISPs, state-level actors. Assumes Firefox as primary browser, Brave as fallback.
Arkenfox is a maintained user.js file that overrides
Firefox's defaults at the config level — no extension required. It
covers fingerprint resistance, telemetry, network leaks, and history
handling that extensions can't touch.
about:profilesFind your active profile — it will say "This is the profile in use"# Navigate to your profile directory cd ~/Library/Application\ Support/Firefox/Profiles/YOURPROFILE # Download user.js and the updater script curl -O https://raw.githubusercontent.com/arkenfox/user.js/master/user.js curl -O https://raw.githubusercontent.com/arkenfox/user.js/master/updater.sh # Make updater executable chmod +x updater.sh
Never edit user.js directly — it gets overwritten on updates. Instead, create user-overrides.js in the same directory with your personal tweaks:
/* ---- Arkenfox overrides — tuned for your threat model ---- */ /* Keep search suggestions off (you use SearXNG locally) */ user_pref("browser.search.suggest.enabled", false); user_pref("browser.urlbar.suggest.searches", false); /* Point default search to your local SearXNG instance */ /* Set this manually in Firefox settings after setup */ /* Re-enable smooth scrolling (arkenfox disables it) */ user_pref("general.smoothScroll", true); /* Allow custom fonts — arkenfox blocks them; re-enable if sites break */ user_pref("browser.display.use_document_fonts", 1); /* Keep containers enabled — arkenfox doesn't touch this but explicit is better */ user_pref("privacy.userContext.enabled", true); user_pref("privacy.userContext.ui.enabled", true); /* WebRTC: disable to prevent IP leaks over VPN */ user_pref("media.peerconnection.enabled", false); /* Disable pocket — not needed */ user_pref("extensions.pocket.enabled", false); /* letterboxing: enabled — rounds window dimensions to reduce fingerprint */ user_pref("privacy.resistFingerprinting.letterboxing", true); /* Disable Firefox telemetry and studies explicitly */ user_pref("datareporting.healthreport.uploadEnabled", false); user_pref("app.shield.optoutstudies.enabled", false); user_pref("browser.discovery.enabled", false);
./updater.sh — this merges user.js + user-overrides.jsSay yes when asked if you want to run the cleaner scriptabout:config — search resistFingerprinting — should be true./updater.sh again after every Firefox major updateAdd a calendar reminder — arkenfox releases align with Firefox ESR cyclesEasy mode blocks cosmetic ads. Medium mode blocks all third-party scripts and frames by default — you whitelist selectively. This is the biggest single tracking reduction available without breaking your browsing model entirely.
# Block all third-party scripts by default * * 3p-script block # Block all third-party frames by default * * 3p-frame block
| List | Purpose | Priority |
|---|---|---|
uBlock filters (default) |
Core ad/tracker blocking | must |
EasyList |
Ad network coverage | must |
EasyPrivacy |
Tracker network coverage | must |
uBlock – Annoyances |
Cookie banners, overlays | recommended |
Peter Lowe's list |
Ad servers + tracking | recommended |
AdGuard Tracking Protection |
Supplements EasyPrivacy | recommended |
Privacy Badger |
Redundant — you have uBO | remove |
The goal is identity isolation — each container has a separate cookie jar, session store, and indexedDB. Sites in different containers cannot correlate your activity even if they share trackers. Install Firefox Multi-Account Containers + Container Tabs extensions, then build this structure:
Keep Brave as your fallback for sites that break under hardened Firefox. But strip the features that reintroduce telemetry:
user.js installed and user-overrides.js applieduser-overrides.js — verify at browserleaks.com/webrtccoveryourtracks.eff.org — should show "strong protection"updater.sh after every Firefox major version update — add a calendar reminder