prefs.js is modified by browser itself. And it contains lots of stuff by default already.
You can store your custom preferences in user.js file - Firefox will copy those to prefs.js at startup.
From your link:
The user.js[1] file is optional. If you have one whenever the application is started it will overwrite any settings in prefs.js with the corresponding settings from user.js.
geo.provider.use_corelocation: true/false # presumably for tracking on MacOS
geo.provider.use_geoclue: true/false # presumably for tracking Linux users with Geoclue2 provider [1]
geo.enabled: true/false # presumably, turns the whole thing off
Some say[2][3], use_ options take precedence over network.url, so you need to set those to false.
It also appears[3][4], that setting geo.provider.testing to true might be required.
> Also profiles can be configured and used with CLI, no need for UI (old or new).
AFAIK, they can only be created at the command line, not configured. If you want to do things like change default settings or install extensions from the Firefox Add-On store, you can't really do that at the command line.
You can do that by mucking around in the user.js file and manually adding .xpi files to the extensions/ subfolder, but that's probably stretching the definition of "done at the command-line" since most people aren't creating Puppet modules to manage Firefox profiles.
Perhaps someone knows an easier way to do this, though.
Instead of needing to know scripting for a core feature, it would be nice if I could tell the program to ask me every time I open a new window which profile that window used. Right click would have an option like their containers "opening new profile window" .
That's great for part of HN users, just not for most Firefox users. I guess that's they already had the old interface and are making it more user friendly with the new UI :-)
You can store your custom preferences in user.js file - Firefox will copy those to prefs.js at startup.
From your link:
[1] https://kb.mozillazine.org/User.js_file