3

I would like to change the value of a particular about:config property via a script external to Firefox.

Have any of you tried this before? I've read that you can modify "prefs.js", but I was wondering if there was a simpler, more correct approach. For example, maybe a:

  • command-line argument to the Firefox executable (a batch file would work in this case)
  • a registry setting (a .reg file would work)
2

3 Answers 3

6

The comments in the prefs.js file:

# Mozilla User Preferences

/* Do not edit this file.
 *
 * If you make changes to this file while the application is running,
 * the changes will be overwritten when the application exits.
 *
 * To make a manual change to preferences, you can visit the URL about:config
 * For more information, see http://www.mozilla.org/unix/customizing.html#prefs
 */

That said, you should be able to edit the file with the application closed, and the new settings would take effect when it is launched.

Depending on what setting(s) you want to modify, however: I don't believe the registry or command-line options will get you the same settings. Registry settings are more system-specific and not per-user; and command-line parameters will give you specific instance switches for the application, such as window size and which profiles to load, etc.

If you know the specific setting you want to change, you could search for it in the prefs.js file with a regex (using VBScript would be my choice) write a new file with the replacement setting, then rename/delete files so that the new prefs.js replaces the previous one.

1
  • 1
    The above post was made in 2009. In 2020 in Windows 7 the "prefs.js" file is in "%APPDATA%\Mozilla\Firefox\Profiles\" then go to a folder which looks like "0om18h5n.default\" and you will see prefs.js.
    – Rublacava
    Nov 12, 2020 at 0:33
0

Here is how you can script FireFox's customization for one or many Linux computers

  1. Make a backup copy of the file ~/.mozilla/firefox/mr8jxm35.default/prefs.js
  2. Customize Firefox by about:config
  3. Compare the backup with the actual prefs.js
  4. Create your script based on the desired customization

CustFireFox.sh

#!/bin/sh   
function SetFirefoxPref() {
  for PropName in "$@"; do
    LINE=$(grep -n "$PropName" ~/.mozilla/firefox/mr8jxm35.default/prefs.js | cut -f1 -d:)
    sed -i $LINE"s/true/false/" ~/.mozilla/firefox/mr8jxm35.default/prefs.js
    echo $PropName
  done
unset PropName
unset LINE
}

SetFirefoxPref \
    "browser.download.useDownloadDir" \
    "browser.fixup.alternate.enabled" \
    "browser.urlbar.trimURLs" \
    "general.warnOnAboutConfig" \
    "keyword.enabled"

You can call your script from the /etc/profile to ensure all current or new users, will have the same customization - You can also include proxy's settings etc

0

Inspired by the solution proposed in https://superuser.com/a/575367/773792, I wrote a small script that can change the values of user preferences arbitrarily, and not simply set them from true to `false. Examples

PREFS_FILE=~/.mozilla/firefox/abc123def.default-release/prefs.js
set-pref $PREFS_FILE browser.tabs.closeWindowWithLastTab false  # changed from true
set-pref $PREFS_FILE places.frecency.bookmarkVisitBonus 100     # changed from 75
set-pref $PREFS_FILE my.weird.attribute true                    # this didn't exist before

Find the script here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .