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.bat
version4.13
or higher - Windows 7: if the
updater.bat
doesn't work, you need to update PowerShell by upgrading to WMF 5.1- Go here
- Click
Download
and select the appropriate file: e.g.Win7-KB3191566-x86.zip
orWin7AndW2K8R2-KB3191566-x64.zip
- Unzip, run the
msu
file 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):
-esr
activate ESR-related preferences (new in v4.8).-MultiOverrides
use any and all .js files in auser.js-overrides
sub-folder as overrides instead of the defaultuser-overrides.js
file. Files are appended in alphabetical order.-singleBackup
use a single backup file and overwrite it on new updates, instead of cumulative backups. This was the default behavior before v4.3-unattended
run the script without user-input-updatebatch
the updater will auto-update itself on execution-log
write the console output to the logfileuser.js-update-log.txt
-LogP
just like-Log
but also open the logfile after updating-Merge
merge overrides instead of appending them_user.js.parrot
lines are not merged- Comments are appended normally
- Overrides for inactive (commented out) user.js prefs will be appended
- When
-Merge
and-MultiOverrides
are used together, auser-overrides-merged.js
file 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:
0405
was not merged because it's inactive in the user.js. Instead the override was appended at the bottom.0801
was merged with the override, including the comment from the overrides file.4504
was 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)