My favourite Firefox add-ons/extensions.
General
- Bypass Paywalls
- Cookie AutoDelete
- cookies.txt
- Dark Reader
- Firefox Multi-Account Containers
- Firefox Relay
- Firefox Translations
- Grammarly (note: content will be used for training models)
- Google Analytics Opt-out
- LanguageTool
- Proton VPN: Free version randomly selects the server, but still useful
- Redirector: See my redirects config below
- ScrollAnywhere
- SingleFile
- Temporary Mobile View
- Tracking Token Stripper
- NoScript
- uBlock Origin
- User Agent Switcher
AdBlock Tips
- Before creating a filer, check if you can fine-tune the rule, e.g. adding a wildcard
*
might make it more generic, or blocking a whole domain instead of a subdomain domain##div>a:has-text(/promoted post/)
: atdomain
, remove any<div>
containing a link with text"promoted post"
.
Personal individual tweaks
- Allow CORS with local
file://
urls:about:config
→privacy.file_unique_origin
→false
- Site Isolation on Firefox:
about:config
→fission.autostart
→true
(can check info atabout:processes
) - Disable media autoplay:
about:config
→media.autoplay.default
→0
andmedia.block-autoplay-until-in-foreground
→true
- Force dark mode under Linux:
about:config
→ui.systemUsesDarkTheme
→1
- Enabling DNS-over-HTTPS
- Bigger scrollbar:
widget.non-native-theme.scrollbar.size.override
→18
- Activating ECH:
about:config
→network.dns.echconfig.enabled
→true
andnetwork.dns.use_https_rr_as_altsvc
→true
- Zoomed devtools:
devtools.toolbox.zoomValue
→1.2
- Don't auto-close browser if all tabs closed:
browser.tabs.closeWindowWithLastTab
→false
- Show UA styles in dev tools:
devtools.inspector.showUserAgentStyles
→true
- Disable local development favicon annoyance:
browser.chrome.guess_favicon
-> →false
Configurations & Privacy
Redirector Redirects
"redirects": [
{
"description": "Medium -> Scribe",
"exampleUrl": "https://medium.com/@user/post-123456abcdef",
"exampleResult": "https://scribe.rip/@user/post-123456abcdef",
"error": null,
"includePattern": "^https?://(?:.*\\.)*(?<!link\\.)medium\\.com(/.*)?$",
"excludePattern": "",
"patternDesc": "https://scribe.rip/faq",
"redirectUrl": "https://scribe.rip$1",
"patternType": "R",
"processMatches": "noProcessing",
"disabled": false,
"grouped": false,
"appliesTo": [
"main_frame"
]
}
]