Table of Contents
🟩 FOREWORD
Unless you want to use the user.js exactly as it is, you must follow our naming convention for overrides for our updater scripts to work
- profile\
user-overrides.js - profile\
user.js-overrides\*.js[optional for Windows updater script only, multiple js files]
** Special thanks to claustromaniac for the updater.bat and overdodactyl for the updater.sh.
🟪 MAC/LINUX
Download the updater.sh script and save it in your profile folder. You can run it without any command line arguments and it will backup your current user.js, download the latest arkenfox user.js and if it finds a user-overrides.js in the same folder it will append that to the user.js.
By default the updater script also compares its version number to the one online. If there's a newer version of updater.sh online, it asks you for confirmation to download and run it. Two command-line parameters are available to change this behavior (-d or -u).
Available command-line parameters in v2.0+ (case-sensitive!):
Optional Arguments:
-h Show this help message and exit
-p PROFILE absolute path to your Firefox profile (if different than the dir of this script)
IMPORTANT: if the path include spaces, wrap the entire argument in quotes!
-l Choose your Firefox profile from a list. (will auto-select the profile if only 1 exists)
-u Update updater.sh and execute silently. Do not seek confirmation.
-d Do not look for updates to updater.sh
-s Silently update user.js. Do not seek confirmation.
-b Only keep one backup of user.js
-o OVERRIDE Filename(s) and/or path(s) to override file(s) (if different than user-overrides.js).
If used with -p, paths should be relative to PROFILE or absolute paths.
If given a directory, all *.js files inside will be appended recursively.
You can pass multiple files or directories by passing a comma separated list.
IMPORTANT: do not add spaces between files/paths! Ex: -o file1.js,file2.js,dir1
IMPORTANT: if any files/paths include spaces, wrap the entire argument in quotes!
Ex: -o "override folder"
-n Do not append any overrides, even if user-overrides.js exists
-c Create a diff file comparing old and new user.js
-v Open the resulting user.js file
-r Only download user.js to a temporary file and open it
-e Activate ESR related preferences
🟪 WINDOWS
-
🟦 NOTE GitHub requires TLS1.2 minimum
- You will need
updater.batversion4.13or higher - Windows 7: if the
updater.batdoesn't work, you need to update PowerShell by upgrading to WMF 5.1- Go here
- Click
Downloadand select the appropriate file: e.g.Win7-KB3191566-x86.ziporWin7AndW2K8R2-KB3191566-x64.zip - Unzip, run the
msufile and follow the instructions (reboot required)
- You will need
--
Download the updater.bat script and save it in your profile folder. You can run it without any command line arguments and it will backup your current user.js, download the latest arkenfox user.js and if it finds a user-overrides.js in the same folder it will append that to the user.js.
!! Unicode encoded override files should be stored without the BOM header !!
Available command-line parameters (case-insensitive):
-esractivate ESR-related preferences (new in v4.8).-MultiOverridesuse any and all .js files in auser.js-overridessub-folder as overrides instead of the defaultuser-overrides.jsfile. Files are appended in alphabetical order.-singleBackupuse a single backup file and overwrite it on new updates, instead of cumulative backups. This was the default behavior before v4.3-unattendedrun the script without user-input-updatebatchthe updater will auto-update itself on execution-logwrite the console output to the logfileuser.js-update-log.txt-LogPjust like-Logbut also open the logfile after updating-Mergemerge overrides instead of appending them_user.js.parrotlines are not merged- Comments are appended normally
- Overrides for inactive (commented out) user.js prefs will be appended
- When
-Mergeand-MultiOverridesare used together, auser-overrides-merged.jsfile is also generated in the root directory for quick reference. It contains only the merged data from override files and can be safely discarded after updating, or used as the new user-overrides.js. - When there are conflicting records for the same pref, the value of the last one declared will be used.
- v4.5+ supports commenting-out active user_pref lines (see example below)
🟪 WINDOWS -MERGE
The following example illustrates how -merge works:
🔹 arkenfox user.js file contains this:
/* 0405: disable "ignore this warning" on SB warnings [FF45+] ***/
// user_pref("browser.safebrowsing.allowOverride", false);
/* 0801: disable location bar using search ***/
user_pref("keyword.enabled", false);
/* 4504: enable RFP letterboxing [FF67+] ***/
user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
🔹 user-overrides.js:
/*** my user.js overrides ***/
user_pref("browser.safebrowsing.allowOverride", false); // 0405 - remove SB bypass button
user_pref("keyword.enabled", true); // 0801 - I use a privacy respecting engine
//// --- comment-out --- 'privacy.resistFingerprinting.letterboxing' -4504- too distracting
🔹 final user.js after update + merging:
/* 0405: disable "ignore this warning" on SB warnings [FF45+] ***/
// user_pref("browser.safebrowsing.allowOverride", false);
/* 0801: disable location bar using search ***/
user_pref("keyword.enabled", true); // 0801 - I use a privacy respecting engine
/* 4504: enable RFP letterboxing [FF67+] ***/
//user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
/*** my user.js overrides ***/
user_pref("browser.safebrowsing.allowOverride", false); // 0405 - remove SB bypass button
//// --- comment-out --- 'privacy.resistFingerprinting.letterboxing' -4504- too distracting
🔹 a couple things to note here:
0405was not merged because it's inactive in the user.js. Instead the override was appended at the bottom.0801was merged with the override, including the comment from the overrides file.4504was commented out and the original value and comment are kept intact- the special comment-out command was also appended at the bottom as a reminder that you gave that command
With -merge it's best to always add a comment behind your overrides to make them easily noticeable when you compare your new user.js with one of your backups. A good way is to use the number of the pref's section.
If you want the -merge function to comment-out a pref, you have to use this exact format:
//// --- comment-out --- 'prefname.goes.here'
Anything after the closing single-quote is optional and can be used for comments/reminders. (see example above)