Ghacks user.js goes github - gHacks Tech News

Ghacks user.js goes github

When Pants approached me in 2015 about publishing his Firefox user.js configuration file on Ghacks, I never imagined how far the project would come.

Now, 20 months later, the project has made a huge step by moving to GitHub. Among the many improvements are openness, better manageability, change tracking, faster releases, support for user contributions, and a lot more.

Pants was kind enough to keep the Ghacks name for the project, and I will publish information on new releases whenever they are made available here on Ghacks. This means that I will post a new article shortly after stable Firefox releases that highlight the changes of that particular release, and provide you with links to the latest versions of the user.js file on the Github project page.

You can use this link as an entry point on Github to explore the project there.

Without further Ado, here is Pants announcement:

Hi ghacks

After v11 (FF51), I decided to put the ghacks user.js on GitHub. This brings a lot of benefits that I don't need to list here. It's been a busy 6 weeks, and now that all the noise (number of posts and discussions and issues) have died down, I can tell you about it... here's what we've done... so far:

PS: I'm crap at writing, so I'm doing this bullet style

PPS: I just want to say thanks to the guys (and gals) who have been contributing at GitHub, but a MASSIVE thanks to Earthlng, who is the only MEMBER (and I am the owner) of the ghacksuserjs  GitHub organization, and as such he has full control over the repository. His contributions have really helped bring the ghacks user.js to another level in so many ways, and the work put in with generating diffs, research, and the changelog are fantastic.


ghacks user js

Ghacks User.js changes

ghacks user js changes

  • Changed version numbering to match Firefox stable (see the release section below)
  • Stripped out all non essential sections, such as Firefox Add-ons and Test Sites to the wiki section, and Palemoon and Things to Investigate to issues
  • Removed the troubleshooting list (see tags below)
  • Super-simplified and shortened the original intro/readme - most of this moved to the "Wiki: Getting Started" pages
  • Formatted the js so all multi-line text can collapse and fold
  • Cleaned up all the typos, expanded acronyms, fixed grammar, used same syntax for parts (such as version start and end numbering)
  • Added tags such as [WARNING], [SETUP], [SETTINGS], [TEST] and numbered references [1], [2] etc.
  • As a result the entire js is much easier to visually parse, read, and search
  • Revamped entire sections to be more logically ordered, with section sub-grouping if needed, and better explanations, including section descriptions when required. Even made some groupings and order based on commenting them out for more convenience. These sections include:
    • 0800: location bar / search bar / forms etc
    • 1000: cache
    • 1200: https / ciphers etc
    • 1600: headers / referers
    • 2800: shutdown
  • Section revamps included improving some preferences (some were found to be deprecated or legacy, others were changed, some preferences are new, better descriptions and all that)
  • Created a new section 2697: UA Spoofing
  • Compared ghacks vs pyllyukko: we added 4 minor obscure preferences. (Documented in issue #10). Created a diff for pyllyukko to compare, and so far they have added almost 2 dozen items from ghacks, and still going
  • Compared ghacks values vs pyllyukko values for what we have in common: no changes. We differ on only 8 preferences due to a slightly different strategy. That's a good sign. (Documented in issue #18)
  • Upgraded to Firefox 52 compliant



  • Add-ons Appendix is more informational with flags for e10s, WebExtension etc
  • Test Sites Appendix expanded as well
  • References Appendix (Mozilla, MDN, TOR, CVE etc sites) added
  • The "readme section" from the old js has become an in-depth "Getting Started" wiki section, and expanded (with pictures!), including a full overview of how a user.js works, how to backup properly, an implementation page, and even how to troubleshoot a preference.
  • The implementation page led me to create a How To section on working with multiple profiles for both installed and portable Firefox, and how to run concurrent profiles. I will create the Lock Pref pages in due time.
  • Added a "Scripts" section, including some greasemonkey (or similar) scripts and pointers for NoScript, uBlock Origin and uMatrix (this is a work in progress)
  • Note: There are "sticky" issues for various wiki section suggestions
  • Future plans include expanding the wiki even further with Tutorials and Articles and more How To's


user js releases

  • As mentioned, we changed the version number to match Firefox stable
  • You can read all about how we manage "releases" here ( )
    • Basically, the current "live" master user.js is always current stable and always being improved
    • At the end of stable life-cycle, we now archive off a "release" for legacy and archival reasons
    • Then we change the master version number and as quickly as we can test and add preferences and deprecate items as per the new stable version. We know in advance a lot of the changes due to Earthlng's diffs
    • As soon as we have worked through all the changes, we create a "pre-release", and from this we can generate a user friendly changelog (Earthlng authors these, and they use the changelog label in issues). You can click labels to filter issues. We will always have an open "Changelog" issue, and older ones will be closed, but there for historical pruposes. They are a lot more user friendly than the atomic level commit history.
    • Martin will republish Earthlng's changelog here at ghacks as soon as we do them, just like he does a "What's new in Firefox X", there will be a "What's new in ghacks user,js X"
    • The delay last time was around 7 days from when stable landed. So expect that to be the approximate time frame, as we have to upgrade ourselves, test items and so on.
  • Again, the "Pre-release" is a snapshot, the master user.js (here: ) is the one always being worked on.

Future Plans

  • Besides the obvious
    • stable compliant releases
    • improving the js
    • improving tags and info on breakage and setup
    • updating and improving the wiki
  • Providing branches
    • preset versions eg: "Relaxed", "Hardened", "Social Media" etc for use with multiple profiles
    • when Firefox 57 lands, maybe start an ESR branch

That's about all. Everyone is welcome to come visit and contribute.



Ghacks user.js goes github
Article Name
Ghacks user.js goes github
The Ghacks Firefox user.js project has moved to the project hosting website Github for better manageability and other improvements.
Ghacks Technology News

We need your help

Advertising revenue is falling fast across the Internet, and independently-run sites like Ghacks are hit hardest by it. The advertising model in its current form is coming to an end, and we have to find other ways to continue operating this site.

We are committed to keeping our content free and independent, which means no paywalls, no sponsored posts, no annoying ad formats or subscription fees.

If you like our content, and would like to help, please consider making a contribution:

Previous Post: «
Next Post: »


  1. Chris said on April 13, 2017 at 9:10 am

    Well done!

    I thought Pants was a “her”. No?

    1. Pants said on April 13, 2017 at 9:32 am

      It’s a well known fact that Dwarves like their wimmins stout and hairy!

      “… female Dwarves look and sound (and dress, if journeying—which is rare) so alike to Dwarf-males that other folk cannot distinguish them, and thus others wrongly believe Dwarves grow out of stone” – Tolkien

      1. Chris said on April 13, 2017 at 11:08 am

        ROTFL! Pants, outside of your amazing brain, your stoutness and hairiness make you a beautiful woman… I mean wommin.

        You know, sooner or later, we are going to insist on a photo. As the kids say, pics or fake.

      2. v1adimir said on January 6, 2018 at 8:14 pm

        <3 btw., the editor used here is Atom?! Notepad++ (& Notepadqq) and Kate (KDE) are nice; but, eye like that THEME – the dark won, w/the colors.. although all of these programs *do* have lang. highlighting.

      3. Pants said on January 31, 2018 at 3:50 am

        v1adimir – its Notepad++ and the Theme is Obsdian (and the font is Hack)

      4. v1adimir said on April 2, 2018 at 7:44 pm

        @Pants Hey, um… Thanks (so much!) for the reply!.. I’d been here earlier, but haven’t said anything. Anyway, thank you!! :))

  2. Guest703 said on April 13, 2017 at 9:59 am

    Cool cool, but where are the previews? How do I know that I would like to try this user.js without previews? Or is this just a security mod, not something to make Firefox look good?

    1. Martin Brinkmann said on April 13, 2017 at 10:05 am

      The user.js config file changes Firefox configuration. It focuses heavily on privacy and security, and not looks. So, if you want to harden your browser, this is the thing you need.

      There are not any images because it does not really change how Firefox looks at all.

    2. v1adimir said on January 6, 2018 at 8:34 pm

      Firefox has a Profile Manager, “In the Run dialog box, type in: firefox.exe -P (Note: You can use -P, -p or -ProfileManager (any of them should work))”

      That would be the easiest way to test and see. Under Linux, bash shell, it’s: “firefox –ProfileManager”. :)

  3. Pants said on April 13, 2017 at 10:22 am

    True story .. If you play the punch card ( backwards in a pianola (like the one in Westworld), you will unlock your conscious and become self-aware

    1. Tom Hawack said on April 13, 2017 at 1:50 pm

      When I see what happened to Lucy in Besson’s movie when she hit the 100% of her brain potential I’m not truly in a hurry to unlock my conscious. But increasing from 10% to, say, 15% would be helpful!

      Not to mention that imperfection is so delightful.

      1. v1adimir said on January 6, 2018 at 8:41 pm

        It’s an old concept, today we know that the (human) brain is utilized to the full potential. Any reserves that there might be are just that – reserves, in case of damage for example. Just, btw.

  4. Andy said on April 13, 2017 at 9:46 pm

    I’ve been reading about Pants’s user.js on here for a while, but haven’t really taken the time to dig into it and see which parts I want to implement. I surely will now, though.

    I’m also excited to see a section of the wiki devoted to extension tips for UBlock Origin. I’ve been keen lately on finding ways to harden my browser, yet allow “harmless” advertisements (those that don’t track me, etc) to abide freely. I don’t want to adversely impact content providers (such as Martin!) who rely on ad revenue.

    1. Martin Brinkmann said on April 13, 2017 at 9:51 pm

      That’s very kind of you Andy, thanks ;)

  5. Psy said on April 13, 2017 at 10:32 pm

    “Martin Brinkmann at ghacks
    100% genuine super-nice all-round good guy”

    I’m now imagining Martin as a sphere, like PacMan…

  6. Ken Saunders said on April 15, 2017 at 7:27 pm

    Gives ZERO fkcus (misspelled purposefully so that it isn’t removed) and has a funny avatar.

    Who is “earthlng “?

    1. Pants said on April 16, 2017 at 12:38 am

      in the original Aug 2015 article, you can see “earthling” ‘s comments over the last 18 months ( a couple of hundred of them). On GitHub his/her handle is earthlng (without the i) as seen here:

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

Please note that your comment may not appear immediately after you post it.