-
-
Notifications
You must be signed in to change notification settings - Fork 801
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reason Arkenfox is used with Librewolf instead of Firefox? #510
Comments
The reason Librewolf is default is just because as is, I know of absolutely no easy way to make it so the default search engine is not Google. There used to be I assume there are ways to deploy Firefox with a custom search engine, but they are not well-documented enough for me to have found them out in all my time searching. Additionally, as it is, add-ons like an ad-blocker are installed in a hacky way, but I still haven't been able to have them enabled by default. |
That makes sense. I'll also check out if it's possible to change the search engine using the script, as I'm also very interested in a hardened browser by default. Otherwise you could always fork and start Lukebrowser, haha. Shame that it's even needed. |
I've got some good news, it is possible to set the default search engine using a script, but it's just very very undocumented. I made a simple script which can set the default search engine of a fresh Firefox profile to DuckDuckGo, it only requires
Firefox stores the search engine configuration in the Upon starting the browser the address bar still shows "Search with Google", but this is purely visual and the default search engine has successfully changed. This visual bug remains until the next browser restart. If confidence is high enough that this file will not change too often, it is also possible to modify the file beforehand and ship it with larbs to then move it into the right place, which also drops the requirement for |
I'll also place some other stuff here which can help to create a hardened Firefox which can be shipped. Firefox by default has all kinds of menu entries for their sync service, which can all be disabled by setting
The "More from Mozilla" settings entry can also be disabled by setting
in It might also be useful to change Reference: https://github.com/arkenfox/user.js/wiki/3.4-Apply-&-Update-&-Maintain On my system I've also created a pacman hook to automatically update Arkenfox:
Looks messy, but could always be split into a separate script if you'd like to use it. It first checks for an Arkenfox update and if it finds one, it installs it into |
I also managed to enable the addons of a fresh Firefox profile by default, which is a bit more involved than setting the default search engine:
The copying addons step can be replaced with the existing loop, I just used an addons directory for debugging purposes. The id of the first addon in the First the addons are moved into the |
Also to avoid having to manually update the addon.xpi urls every so often, it is also possible to automatically fetch the download url of the latest addon xpi version:
|
All this just to do something so basic. It's a shame you have to fight against this software to do the bare minimum nowadays. I went ahead and added your suggestions to get the newest extensions automatically, as well as the disabling the Firefox Sync and "More from Mozilla." I'm aware of the I haven't tested your block that enables the add-ons. If it is robust and doesn't break too easily, I'll add something like it. |
Looks like there's even an Arkenfox updater in the AUR. I might add that as well in concert with your recommendation to link the overrides. |
You're right about
All compressing and decompressing of the file are done using the It feels wrong to call python in a pipe, but that's how far you need to go when dealing with browsers apparently. |
I've now set it so LARBS should use that AUR package with a wrapper script and hook to update all instances of Arkenfox's user.js on the update of Firefox or Librewolf. I haven't tested it on a fresh machine yet, but will soon. Any particular reason why it's impossible with |
mozlz4 is very similar to lz4, except for the fact that the header is different from the normal lz4 compression, as mozlz4 uses a special header, and has less metadata. This header difference means that the As a test I've decompressed the mozlz4 file and recompressed it with lz in order to check for differences with the mozlz4 file, and the only thing I saw was the different header and a different end, which might have to do with the normal mozlz4 not having an end signal like lz4 has. When I copied the header from the lz4 compressed file to the mozlz4 file, it successfully decompressed, even with the end header. I think the problem with decompression is that And for compression, I also tried replacing lz's generated header with the header from the mozlz4 file, but Firefox rejected the file and I suspect that it is because the end is different. (now that I say it, it might be possible to also strip the end signal in order to make Firefox not reject it) LZ4 libraries like Some references: lz4/lz4#880 |
I've looked for other available lz4 tools as well to see if they could also be used, but the only one that is available in the standard repos or the AUR which can be used for this is This would mean that The python part of the script is very stable, compared to a similar project like: https://gist.github.com/Tblue/62ff47bef7f894e92ed5 That tool works with the same library in the same way, and since its start in 2015 it has needed only one revision in order to keep supporting the mozlz4 format and the new lz4 versions. The
I've also tried just changing the default search engine as that is an available option in the configuration file, but the user chosen default search engine comes with some kind of hash which seems dependent on the Firefox installation somehow, because just copying the generated hash for DuckDuckGo to a fresh profile doesn't work. Therefore just hiding all search engines that are not default looks like the way to go. |
Default inner and outer gaps can now be changed in one place instead of changing the initialization and the shortcut to reset gaps to default.
Now that the Arkenfox user.js is used, wouldn't it be more beneficial to use default Firefox, or is there a reason for sticking with Librewolf? As far as I know, Firefox with the user.js should have about the same hardening as Librewolf, but with the advantage of quicker package updates.
The text was updated successfully, but these errors were encountered: