mirror of
https://github.com/yokoffing/Betterfox.git
synced 2026-06-28 07:31:17 +05:30
Compare commits
15 Commits
5064b94a1d
..
152.0
| Author | SHA1 | Date | |
|---|---|---|---|
| f2b656a74b | |||
| 29fc4c4df6 | |||
| 5d03962513 | |||
| 6d10adcba9 | |||
| c9ec39c8a6 | |||
| 8bd2f5d72e | |||
| 1119dc05de | |||
| 1e883d40af | |||
| 608030cc0c | |||
| a7818d1008 | |||
| eeb70c3e2c | |||
| a36a0f9ca7 | |||
| c97bc06396 | |||
| 392c62a03c | |||
| 0bc76714a9 |
@@ -1,13 +0,0 @@
|
|||||||
# These are supported funding model platforms
|
|
||||||
|
|
||||||
github: yokoffing
|
|
||||||
patreon: # Replace with a single Patreon username
|
|
||||||
open_collective: # Replace with a single Open Collective username
|
|
||||||
ko_fi: yokoffing
|
|
||||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
||||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
||||||
liberapay: yokoffing
|
|
||||||
issuehunt: # Replace with a single IssueHunt username
|
|
||||||
otechie: # Replace with a single Otechie username
|
|
||||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
|
||||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
||||||
+37
-54
@@ -53,17 +53,13 @@ user_pref("gfx.content.skia-font-cache-size", 20); // 20 MB; default=5; Chrome=2
|
|||||||
// [1] https://searchfox.org/mozilla-central/rev/c1180ea13e73eb985a49b15c0d90e977a1aa919c/modules/libpref/init/StaticPrefList.yaml#1824-1834
|
// [1] https://searchfox.org/mozilla-central/rev/c1180ea13e73eb985a49b15c0d90e977a1aa919c/modules/libpref/init/StaticPrefList.yaml#1824-1834
|
||||||
// [2] https://web.archive.org/web/20240115073722/https://dev.opera.com/articles/efficient-javascript/?page=3#reflow
|
// [2] https://web.archive.org/web/20240115073722/https://dev.opera.com/articles/efficient-javascript/?page=3#reflow
|
||||||
// [3] https://web.archive.org/web/20240115073722/https://dev.opera.com/articles/efficient-javascript/?page=3#smoothspeed
|
// [3] https://web.archive.org/web/20240115073722/https://dev.opera.com/articles/efficient-javascript/?page=3#smoothspeed
|
||||||
//user_pref("content.notify.interval", 100000); // (.10s); default=120000 (.12s)
|
user_pref("content.notify.interval", 100000); // (.10s); default=120000 (.12s)
|
||||||
//user_pref("content.max.tokenizing.time", 1000000); // (1.00s); alt=2000000; HIDDEN
|
//user_pref("content.max.tokenizing.time", 1000000); // (1.00s); alt=2000000; HIDDEN
|
||||||
//user_pref("content.interrupt.parsing", true); // HIDDEN
|
//user_pref("content.interrupt.parsing", true); // HIDDEN
|
||||||
|
|
||||||
// PREF: UI responsiveness threshold
|
// PREF: UI responsiveness threshold
|
||||||
//user_pref("content.switch.threshold", 300000); // HIDDEN; default= 750000; alt=500000
|
//user_pref("content.switch.threshold", 300000); // HIDDEN; default= 750000; alt=500000
|
||||||
|
|
||||||
// PREF: split text nodes to a length
|
|
||||||
// The number of bytes in a text node.
|
|
||||||
//user_pref("content.maxtextrun", 8191); // DEFAULT; HIDDEN
|
|
||||||
|
|
||||||
// PREF: new tab preload
|
// PREF: new tab preload
|
||||||
// [WARNING] Disabling this may cause a delay when opening a new tab in Firefox.
|
// [WARNING] Disabling this may cause a delay when opening a new tab in Firefox.
|
||||||
// [1] https://wiki.mozilla.org/Tiles/Technical_Documentation#Ping
|
// [1] https://wiki.mozilla.org/Tiles/Technical_Documentation#Ping
|
||||||
@@ -90,18 +86,6 @@ user_pref("gfx.content.skia-font-cache-size", 20); // 20 MB; default=5; Chrome=2
|
|||||||
// PREF: disable preSkeletonUI on startup [WINDOWS]
|
// PREF: disable preSkeletonUI on startup [WINDOWS]
|
||||||
//user_pref("browser.startup.preXulSkeletonUI", false);
|
//user_pref("browser.startup.preXulSkeletonUI", false);
|
||||||
|
|
||||||
// PREF: lazy load iframes
|
|
||||||
//user_pref("dom.iframe_lazy_loading.enabled", true); // DEFAULT [FF121+]
|
|
||||||
|
|
||||||
// PREF: Prioritized Task Scheduling API
|
|
||||||
// [1] https://github.com/yokoffing/Betterfox/issues/355
|
|
||||||
// [2] https://blog.mozilla.org/performance/2022/06/02/prioritized-task-scheduling-api-is-prototyped-in-nightly/
|
|
||||||
// [3] https://medium.com/airbnb-engineering/building-a-faster-web-experience-with-the-posttask-scheduler-276b83454e91
|
|
||||||
// [4] https://github.com/WICG/scheduling-apis/blob/main/explainers/prioritized-post-task.md
|
|
||||||
// [5] https://wicg.github.io/scheduling-apis/
|
|
||||||
// [6] https://caniuse.com/mdn-api_taskcontroller
|
|
||||||
//user_pref("dom.enable_web_task_scheduling", true); // DEFAULT [FF142+]
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* SECTION: GFX RENDERING TWEAKS *
|
* SECTION: GFX RENDERING TWEAKS *
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@@ -122,8 +106,8 @@ user_pref("gfx.content.skia-font-cache-size", 20); // 20 MB; default=5; Chrome=2
|
|||||||
// [2] https://www.reddit.com/r/firefox/comments/1p58qre/firefox_is_getting_ready_to_make_youtube_fast/
|
// [2] https://www.reddit.com/r/firefox/comments/1p58qre/firefox_is_getting_ready_to_make_youtube_fast/
|
||||||
// [3] https://www.ghacks.net/2025/11/24/these-two-tweaks-should-improve-firefoxs-performance-on-youtube-significantly/
|
// [3] https://www.ghacks.net/2025/11/24/these-two-tweaks-should-improve-firefoxs-performance-on-youtube-significantly/
|
||||||
//user_pref("gfx.webrender.layer-compositor", true);
|
//user_pref("gfx.webrender.layer-compositor", true);
|
||||||
// If your PC uses an AMD GPU, you might want to make a second change.
|
|
||||||
// This one improves CPU usage on AMD systems.
|
// PREF: improve CPU usage on AMD systems
|
||||||
//user_pref("media.wmf.zero-copy-nv12-textures-force-enabled", true);
|
//user_pref("media.wmf.zero-copy-nv12-textures-force-enabled", true);
|
||||||
|
|
||||||
// PREF: if your hardware doesn't support Webrender, you can fallback to Webrender's software renderer
|
// PREF: if your hardware doesn't support Webrender, you can fallback to Webrender's software renderer
|
||||||
@@ -146,29 +130,37 @@ user_pref("gfx.content.skia-font-cache-size", 20); // 20 MB; default=5; Chrome=2
|
|||||||
user_pref("gfx.canvas.accelerated.cache-size", 512); // default=256; Chrome=512; max=2048
|
user_pref("gfx.canvas.accelerated.cache-size", 512); // default=256; Chrome=512; max=2048
|
||||||
//user_pref("gfx.canvas.max-size", 32767); // [DEFAULT]
|
//user_pref("gfx.canvas.max-size", 32767); // [DEFAULT]
|
||||||
|
|
||||||
// PREF: WebGL
|
/****************************************************************************
|
||||||
//user_pref("webgl.max-size", 16384); // default=1024
|
* SECTION: JAVASCRIPT OPTIONS *
|
||||||
//user_pref("webgl.force-enabled", true);
|
****************************************************************************/
|
||||||
|
// PREF: lower the Baseline JIT compilation threshold
|
||||||
|
// Controls how many times a function runs before Firefox promotes it from the
|
||||||
|
// C++ interpreter to the Baseline JIT compiler. The Baseline JIT compiles each
|
||||||
|
// bytecode instruction into a small piece of machine code and uses Inline Caches
|
||||||
|
// (ICs) to both speed up execution and collect type info for the Ion optimizing JIT.
|
||||||
|
// Lowering this from 100 to 50 promotes "warm" functions to compiled machine code
|
||||||
|
// sooner, which reduces dropped frames while browsing.
|
||||||
|
// [1] https://ra1ahq.blog/en/optimizaciya-proizvoditelnosti-mozilla-firefox-chast-1
|
||||||
|
user_pref("javascript.options.baselinejit.threshold", 50); // default=100
|
||||||
|
|
||||||
// PREF: prefer GPU over CPU
|
// PREF: raise the IonMonkey (Ion) optimizing-JIT compilation threshold
|
||||||
// At best, the prefs do nothing on Linux/macOS.
|
// Controls how many times a function runs before Firefox promotes it from the
|
||||||
// At worst, it'll result in crashes if the sandboxing is a WIP.
|
// Baseline JIT to IonMonkey, the optimizing JIT. Ion applies advanced compiler
|
||||||
// [1] https://firefox-source-docs.mozilla.org/dom/ipc/process_model.html#gpu-process
|
// optimizations to produce fast code for "hot" functions, at the cost of slower
|
||||||
//user_pref("layers.gpu-process.enabled", true); // DEFAULT WINDOWS
|
// compilation. The Baseline JIT is quicker to produce but can't cope with the large
|
||||||
//user_pref("layers.gpu-process.force-enabled", true); // enforce
|
// amounts of code on heavy websites.
|
||||||
//user_pref("layers.mlgpu.enabled", true); // LINUX
|
// Raising this threshold keeps more code on the faster-to-compile Baseline JIT,
|
||||||
//user_pref("media.hardware-video-decoding.enabled", true); // DEFAULT WINDOWS macOS
|
// reserving the expensive Ion compilation for only the hottest functions.
|
||||||
//user_pref("media.hardware-video-decoding.force-enabled", true); // enforce
|
// [1] https://ra1ahq.blog/en/optimizaciya-proizvoditelnosti-mozilla-firefox-chast-1
|
||||||
//user_pref("media.gpu-process-decoder", true); // DEFAULT WINDOWS
|
//user_pref("javascript.options.ion.threshold", 1500); // DEFAULT
|
||||||
//user_pref("media.ffmpeg.vaapi.enabled", true); // LINUX
|
|
||||||
|
|
||||||
// PREF: hardware and software decoded video overlay [FF116+]
|
// PREF: decrease concurrent JavaScript garbage collection (GC) threads
|
||||||
// [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1829063
|
// Sets the divisor in the formula: GC threads = CPU threads ÷ divisor (min 1).
|
||||||
// [2] https://phabricator.services.mozilla.com/D175993
|
// A LOWER value = MORE parallel GC threads. A HIGHER value = FEWER threads.
|
||||||
//user_pref("gfx.webrender.dcomp-video-hw-overlay-win", true); // DEFAULT
|
// Example (24-thread CPU): divisor 1 → 24 threads | 2 → 12 | 4 (default) → 6 | 12 → 2
|
||||||
//user_pref("gfx.webrender.dcomp-video-hw-overlay-win-force-enabled", true); // enforce
|
// Power users with many cores should LOWER this value, not raise it.
|
||||||
//user_pref("gfx.webrender.dcomp-video-sw-overlay-win", true); // DEFAULT
|
// [NOTE] Mozilla's default of 4 is conservative to avoid thread contention on weak hardware.
|
||||||
//user_pref("gfx.webrender.dcomp-video-sw-overlay-win-force-enabled", true); // enforce
|
//user_pref("javascript.options.concurrent_multiprocess_gcs.cpu_divisor", 4); // DEFAULT
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* SECTION: DISK CACHE *
|
* SECTION: DISK CACHE *
|
||||||
@@ -246,9 +238,9 @@ user_pref("gfx.content.skia-font-cache-size", 20); // 20 MB; default=5; Chrome=2
|
|||||||
//user_pref("browser.cache.jsbc_compression_level", 3);
|
//user_pref("browser.cache.jsbc_compression_level", 3);
|
||||||
|
|
||||||
// PREF: strategy to use for when the bytecode should be encoded and saved [TESTING ONLY]
|
// PREF: strategy to use for when the bytecode should be encoded and saved [TESTING ONLY]
|
||||||
// -1 makes page load times marginally longer when a page is being loaded for the first time, while
|
// -1 = makes page load times marginally longer when a page is being loaded for the first time, while
|
||||||
// subsequent reload of websites will be much much faster.
|
// subsequent reload of websites will be much much faster.
|
||||||
// 0 means that the bytecode is created every 4 page loads [3].
|
// 0 = the bytecode is created every 4 page loads [3].
|
||||||
// [1] https://searchfox.org/mozilla-release/source/modules/libpref/init/StaticPrefList.yaml#3461-3488
|
// [1] https://searchfox.org/mozilla-release/source/modules/libpref/init/StaticPrefList.yaml#3461-3488
|
||||||
// [2] https://www.reddit.com/r/firefox/comments/12786yv/improving_performance_in_firefox_android_part_ii/
|
// [2] https://www.reddit.com/r/firefox/comments/12786yv/improving_performance_in_firefox_android_part_ii/
|
||||||
// [3] https://github.com/zen-browser/desktop/issues/217
|
// [3] https://github.com/zen-browser/desktop/issues/217
|
||||||
@@ -346,8 +338,8 @@ user_pref("image.mem.decode_bytes_at_a_time", 32768); // default=16384; chunk si
|
|||||||
// [1] https://www.mail-archive.com/support-seamonkey@lists.mozilla.org/msg74561.html
|
// [1] https://www.mail-archive.com/support-seamonkey@lists.mozilla.org/msg74561.html
|
||||||
// [2] https://github.com/yokoffing/Betterfox/issues/279
|
// [2] https://github.com/yokoffing/Betterfox/issues/279
|
||||||
// [3] https://ra1ahq.blog/en/optimizaciya-proizvoditelnosti-mozilla-firefox
|
// [3] https://ra1ahq.blog/en/optimizaciya-proizvoditelnosti-mozilla-firefox
|
||||||
//user_pref("network.buffer.cache.size", 65535); // default=32768 (32 kb); 262144 too large
|
user_pref("network.buffer.cache.size", 65535); // default=32768 (32 kb); 262144 too large
|
||||||
//user_pref("network.buffer.cache.count", 48); // default=24; 128 too large
|
user_pref("network.buffer.cache.count", 48); // default=24; 128 too large
|
||||||
|
|
||||||
// PREF: increase the absolute number of HTTP connections
|
// PREF: increase the absolute number of HTTP connections
|
||||||
// [1] https://kb.mozillazine.org/Network.http.max-connections
|
// [1] https://kb.mozillazine.org/Network.http.max-connections
|
||||||
@@ -390,15 +382,6 @@ user_pref("network.dnsCacheExpiration", 3600); // keep entries for 1 hour; defau
|
|||||||
// PREF: increase TLS token caching
|
// PREF: increase TLS token caching
|
||||||
//user_pref("network.ssl_tokens_cache_capacity", 8192); // TLS token caching (fast reconnects)
|
//user_pref("network.ssl_tokens_cache_capacity", 8192); // TLS token caching (fast reconnects)
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* SECTION: EXPERIMENTAL *
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
// PREF: CSS Masonry Layout [NIGHTLY]
|
|
||||||
// [1] https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Masonry_Layout
|
|
||||||
// [2] https://www.smashingmagazine.com/native-css-masonry-layout-css-grid/
|
|
||||||
//user_pref("layout.css.grid-template-masonry-value.enabled", true);
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* SECTION: TAB UNLOAD *
|
* SECTION: TAB UNLOAD *
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@@ -425,7 +408,7 @@ user_pref("network.dnsCacheExpiration", 3600); // keep entries for 1 hour; defau
|
|||||||
// and use this percent value (out of 100) to determine if Firefox is in a
|
// and use this percent value (out of 100) to determine if Firefox is in a
|
||||||
// low memory scenario.
|
// low memory scenario.
|
||||||
// [1] https://dev.to/msugakov/taking-firefox-memory-usage-under-control-on-linux-4b02
|
// [1] https://dev.to/msugakov/taking-firefox-memory-usage-under-control-on-linux-4b02
|
||||||
//user_pref("browser.low_commit_space_threshold_percent", 20); // default=5; LINUX
|
//user_pref("browser.low_commit_space_threshold_percent", 5); // default=5; LINUX
|
||||||
|
|
||||||
// PREF: determine how long (in ms) tabs are inactive before they unload
|
// PREF: determine how long (in ms) tabs are inactive before they unload
|
||||||
// 60000=1min; 300000=5min; 600000=10min (default)
|
// 60000=1min; 300000=5min; 600000=10min (default)
|
||||||
|
|||||||
+2
-2
@@ -472,7 +472,7 @@ user_pref("browser.download.open_pdf_attachments_inline", true);
|
|||||||
user_pref("browser.bookmarks.openInTabClosesMenu", false);
|
user_pref("browser.bookmarks.openInTabClosesMenu", false);
|
||||||
|
|
||||||
// PREF: restore "View image info" on right-click
|
// PREF: restore "View image info" on right-click
|
||||||
user_pref("browser.menu.showViewImageInfo", true);
|
//user_pref("browser.menu.showViewImageInfo", true);
|
||||||
|
|
||||||
// PREF: show all matches in Findbar
|
// PREF: show all matches in Findbar
|
||||||
user_pref("findbar.highlightAll", true);
|
user_pref("findbar.highlightAll", true);
|
||||||
@@ -506,7 +506,7 @@ user_pref("findbar.highlightAll", true);
|
|||||||
//user_pref("browser.meta_refresh_when_inactive.disabled", true);
|
//user_pref("browser.meta_refresh_when_inactive.disabled", true);
|
||||||
|
|
||||||
// PREF: do not select the space next to a word when selecting a word
|
// PREF: do not select the space next to a word when selecting a word
|
||||||
user_pref("layout.word_select.eat_space_to_next_word", false);
|
//user_pref("layout.word_select.eat_space_to_next_word", false);
|
||||||
|
|
||||||
// PREF: controls if a double-click word selection also deletes one adjacent whitespace
|
// PREF: controls if a double-click word selection also deletes one adjacent whitespace
|
||||||
// This mimics native behavior on macOS.
|
// This mimics native behavior on macOS.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[](https://github.com/yokoffing/betterfox/stargazers)
|
[](https://github.com/yokoffing/betterfox/stargazers)
|
||||||
|
|
||||||
Do not trust sites that claim to be Betterfox. This page is the only official source.
|
:warning: Do not trust sites that claim to be Betterfox. This page is the only official source.
|
||||||
|
|
||||||
# Betterfox
|
# Betterfox
|
||||||
[about:config](https://support.mozilla.org/en-US/kb/about-config-editor-firefox) tweaks to enhance [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/).
|
[about:config](https://support.mozilla.org/en-US/kb/about-config-editor-firefox) tweaks to enhance [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/).
|
||||||
|
|||||||
+9
-7
@@ -99,7 +99,7 @@ def _get_default_profile_folder(firefox_root):
|
|||||||
print(f"Reading {config_path}...")
|
print(f"Reading {config_path}...")
|
||||||
|
|
||||||
config_parser = ConfigParser(strict=False)
|
config_parser = ConfigParser(strict=False)
|
||||||
config_parser.read(config_path)
|
config_parser.read(config_path, encoding = "utf8")
|
||||||
|
|
||||||
path = None
|
path = None
|
||||||
for section in config_parser.sections():
|
for section in config_parser.sections():
|
||||||
@@ -174,12 +174,17 @@ def download_betterfox(url):
|
|||||||
def extract_betterfox(data, profile_folder):
|
def extract_betterfox(data, profile_folder):
|
||||||
zipfile = ZipFile(data)
|
zipfile = ZipFile(data)
|
||||||
userjs_zipinfo = None
|
userjs_zipinfo = None
|
||||||
|
depth = 1 # default to firefox user.js living at root dir
|
||||||
|
if args.browser != "firefox":
|
||||||
|
depth = 2 # ignore the outside
|
||||||
for file in zipfile.filelist:
|
for file in zipfile.filelist:
|
||||||
if "/zen/" in file.filename and not args.zen:
|
path = file.filename.split("/")
|
||||||
|
if len(path)-1 != depth or (args.browser not in path and depth != 1) :
|
||||||
continue
|
continue
|
||||||
if file.filename.endswith("user.js"):
|
if file.filename.endswith("user.js"):
|
||||||
userjs_zipinfo = file
|
userjs_zipinfo = file
|
||||||
userjs_zipinfo.filename = Path(userjs_zipinfo.filename).name
|
userjs_zipinfo.filename = Path(userjs_zipinfo.filename).name
|
||||||
|
break
|
||||||
|
|
||||||
if not userjs_zipinfo:
|
if not userjs_zipinfo:
|
||||||
raise BaseException("Could not find user.js!")
|
raise BaseException("Could not find user.js!")
|
||||||
@@ -212,18 +217,15 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
default_profile_folder = _get_default_profile_folder(firefox_root)
|
default_profile_folder = _get_default_profile_folder(firefox_root)
|
||||||
|
|
||||||
argparser = ArgumentParser(
|
argparser = ArgumentParser()
|
||||||
|
|
||||||
)
|
|
||||||
argparser.add_argument("--overrides", "-o", default=default_profile_folder.joinpath("user-overrides.js"), help="if the provided file exists, add overrides to user.js. Defaults to " + str(default_profile_folder.joinpath("user-overrides.js"))),
|
argparser.add_argument("--overrides", "-o", default=default_profile_folder.joinpath("user-overrides.js"), help="if the provided file exists, add overrides to user.js. Defaults to " + str(default_profile_folder.joinpath("user-overrides.js"))),
|
||||||
argparser.add_argument("--zen", "-z", action="store_true", default=False, help="Install user.js for the Zen browser instead. Defaults to False"),
|
|
||||||
|
|
||||||
|
|
||||||
advanced = argparser.add_argument_group("Advanced")
|
advanced = argparser.add_argument_group("Advanced")
|
||||||
advanced.add_argument("--betterfox-version", "-bv", default=None, help=f"Which version of Betterfox to install. Defaults to the latest compatible release for your installed Firefox version")
|
advanced.add_argument("--betterfox-version", "-bv", default=None, help=f"Which version of Betterfox to install. Defaults to the latest compatible release for your installed Firefox version")
|
||||||
advanced.add_argument("--profile-dir", "-p", "-pd", default=default_profile_folder, help=f"Which profile dir to install user.js in. Defaults to {default_profile_folder}")
|
advanced.add_argument("--profile-dir", "-p", "-pd", default=default_profile_folder, help=f"Which profile dir to install user.js in. Defaults to {default_profile_folder}")
|
||||||
advanced.add_argument("--repository-owner", "-ro", default="yokoffing", help="owner of the Betterfox repository. Defaults to yokoffing")
|
advanced.add_argument("--repository-owner", "-ro", default="yokoffing", help="owner of the Betterfox repository. Defaults to yokoffing")
|
||||||
advanced.add_argument("--repository-name", "-rn", default="Betterfox", help="name of the Betterfox repository. Defaults to Betterfox")
|
advanced.add_argument("--repository-name", "-rn", default="Betterfox", help="name of the Betterfox repository. Defaults to Betterfox")
|
||||||
|
advanced.add_argument("--browser", "-b", default="firefox", help="Which browser should Betterfox install to. Defaults to firefox. Available options: firefox, zen, waterfox")
|
||||||
|
|
||||||
disable = argparser.add_argument_group("Disable functionality")
|
disable = argparser.add_argument_group("Disable functionality")
|
||||||
disable.add_argument("--no-backup", "-nb", action="store_true", default=False, help="disable backup of current profile (not recommended)"),
|
disable.add_argument("--no-backup", "-nb", action="store_true", default=False, help="disable backup of current profile (not recommended)"),
|
||||||
|
|||||||
@@ -20,9 +20,17 @@
|
|||||||
/** FASTFOX ***/
|
/** FASTFOX ***/
|
||||||
user_pref("browser.sessionstore.restore_pinned_tabs_on_demand", true);
|
user_pref("browser.sessionstore.restore_pinned_tabs_on_demand", true);
|
||||||
user_pref("browser.sessionstore.interval", 900000); // save session every 15 minutes
|
user_pref("browser.sessionstore.interval", 900000); // save session every 15 minutes
|
||||||
|
user_pref("browser.newtab.preload", false); // disable new tab if not using
|
||||||
|
user_pref("nglayout.initialpaint.delay", 50); // delay painting new tabs
|
||||||
|
user_pref("javascript.options.baselinejit.threshold", 50); // default=100
|
||||||
|
//user_pref("javascript.options.ion.threshold", 5000);
|
||||||
|
user_pref("network.buffer.cache.size", 65535);
|
||||||
|
user_pref("network.buffer.cache.count", 48);
|
||||||
|
user_pref("javascript.options.concurrent_multiprocess_gcs.cpu_divisor", 2); // default=4
|
||||||
|
|
||||||
/** SECUREFOX ***/
|
/** SECUREFOX ***/
|
||||||
user_pref("privacy.trackingprotection.allow_list.convenience.enabled", false); // disable Strict allowlist of convenience features
|
user_pref("privacy.trackingprotection.allow_list.convenience.enabled", false); // disable Strict allowlist of convenience features
|
||||||
|
user_pref("security.webauth.webauthn", false); // disable passkeys
|
||||||
user_pref("signon.rememberSignons", false); // disable password manager
|
user_pref("signon.rememberSignons", false); // disable password manager
|
||||||
user_pref("extensions.formautofill.addresses.enabled", false); // disable address manager
|
user_pref("extensions.formautofill.addresses.enabled", false); // disable address manager
|
||||||
user_pref("extensions.formautofill.creditCards.enabled", false); // disable credit card manager
|
user_pref("extensions.formautofill.creditCards.enabled", false); // disable credit card manager
|
||||||
@@ -47,16 +55,15 @@ user_pref("browser.firefox-view.feature-tour", "{\"screen\":\"\",\"complete\":tr
|
|||||||
user_pref("accessibility.force_disabled", 1); // disable Accessibility features
|
user_pref("accessibility.force_disabled", 1); // disable Accessibility features
|
||||||
user_pref("dom.security.https_only_mode", false); // disable HTTPS Only in normal windows
|
user_pref("dom.security.https_only_mode", false); // disable HTTPS Only in normal windows
|
||||||
user_pref("dom.security.https_only_mode_pbm", true); // HTTPS Only in PB windows
|
user_pref("dom.security.https_only_mode_pbm", true); // HTTPS Only in PB windows
|
||||||
user_pref("media.eme.enabled", false); // disable DRM
|
//user_pref("media.eme.enabled", false); // disable DRM
|
||||||
user_pref("browser.eme.ui.enabled", false); // hide the UI setting; this also disables the DRM prompt
|
//user_pref("browser.eme.ui.enabled", false); // hide the UI setting; this also disables the DRM prompt
|
||||||
//user_pref("dom.serviceWorkers.enabled", false); // disable service workers in Normal Browsing
|
//user_pref("dom.serviceWorkers.enabled", false); // disable service workers in Normal Browsing
|
||||||
user_pref("dom.serviceWorkers.privateBrowsing.enabled", false); // disable service workers in Private Browsing
|
user_pref("dom.serviceWorkers.privateBrowsing.enabled", false); // disable service workers in Private Browsing
|
||||||
user_pref("privacy.restrict3rdpartystorage.heuristic.navigation", false); // restrict dynamic storage access
|
user_pref("privacy.restrict3rdpartystorage.heuristic.navigation", false); // restrict dynamic storage access
|
||||||
user_pref("privacy.restrict3rdpartystorage.heuristic.opened_window_after_interaction", false); // restrict dynamic storage access
|
user_pref("privacy.restrict3rdpartystorage.heuristic.opened_window_after_interaction", false); // restrict dynamic storage access
|
||||||
user_pref("security.cert_pinning.enforcement_level", 2); // strict public key pinning
|
user_pref("security.cert_pinning.enforcement_level", 2); // strict public key pinning
|
||||||
//user_pref("browser.download.enableDeletePrivate", true); // Delete files downloaded in private browsing when all private windows are closed
|
user_pref("dom.fs.enabled", false); // FROST
|
||||||
//user_pref("browser.download.deletePrivateChosen", true); // Delete files downloaded in private browsing when all private windows are closed
|
user_pref("dom.fs.writable_file_stream.enabled", false); // FROST
|
||||||
//user_pref("browser.download.deletePrivate", true); // Delete files downloaded in private browsing when all private windows are closed
|
|
||||||
|
|
||||||
/** PESKYFOX ***/
|
/** PESKYFOX ***/
|
||||||
user_pref("devtools.accessibility.enabled", false); // removes un-needed "Inspect Accessibility Properties" on right-click
|
user_pref("devtools.accessibility.enabled", false); // removes un-needed "Inspect Accessibility Properties" on right-click
|
||||||
@@ -107,6 +114,7 @@ user_pref("geo.provider.ms-windows-location", false); // [WINDOWS]
|
|||||||
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
|
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
|
||||||
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100);
|
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100);
|
||||||
user_pref("gfx.font_rendering.cleartype_params.enhanced_contrast", 100);
|
user_pref("gfx.font_rendering.cleartype_params.enhanced_contrast", 100);
|
||||||
|
//user_pref("browser.display.auto_quality_min_font_size", 0);
|
||||||
//user_pref("font.name.serif.x-western", "Roboto Slab"); // serif font
|
//user_pref("font.name.serif.x-western", "Roboto Slab"); // serif font
|
||||||
//user_pref("font.name.sans-serif.x-western", "Roboto"); // sans-serif font
|
//user_pref("font.name.sans-serif.x-western", "Roboto"); // sans-serif font
|
||||||
//user_pref("font.name.monospace.x-western", "Fira Code"); // monospace font
|
//user_pref("font.name.monospace.x-western", "Fira Code"); // monospace font
|
||||||
@@ -123,6 +131,7 @@ user_pref("network.dnsCacheExpiration", 3600); // keep entries for 1 hour; defau
|
|||||||
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
|
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
|
||||||
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100);
|
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100);
|
||||||
user_pref("gfx.font_rendering.cleartype_params.enhanced_contrast", 100);
|
user_pref("gfx.font_rendering.cleartype_params.enhanced_contrast", 100);
|
||||||
|
//user_pref("browser.display.auto_quality_min_font_size", 0);
|
||||||
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", false); // no need for userChrome
|
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", false); // no need for userChrome
|
||||||
|
|
||||||
/** DELETE IF NOT macOS ***/
|
/** DELETE IF NOT macOS ***/
|
||||||
@@ -149,5 +158,6 @@ user_pref("app.update.auto", false); // disable auto-installing Firefox updates
|
|||||||
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
|
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
|
||||||
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100);
|
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100);
|
||||||
user_pref("gfx.font_rendering.cleartype_params.enhanced_contrast", 100);
|
user_pref("gfx.font_rendering.cleartype_params.enhanced_contrast", 100);
|
||||||
|
//user_pref("browser.display.auto_quality_min_font_size", 0);
|
||||||
user_pref("gfx.font_rendering.directwrite.use_gdi_table_loading", false);
|
user_pref("gfx.font_rendering.directwrite.use_gdi_table_loading", false);
|
||||||
user_pref("privacy.userContext.enabled", false); // disable Container Tabs
|
user_pref("privacy.userContext.enabled", false); // disable Container Tabs
|
||||||
|
|||||||
@@ -173,9 +173,7 @@ user_pref("browser.download.open_pdf_attachments_inline", true);
|
|||||||
|
|
||||||
/** TAB BEHAVIOR ***/
|
/** TAB BEHAVIOR ***/
|
||||||
user_pref("browser.bookmarks.openInTabClosesMenu", false);
|
user_pref("browser.bookmarks.openInTabClosesMenu", false);
|
||||||
user_pref("browser.menu.showViewImageInfo", true);
|
|
||||||
user_pref("findbar.highlightAll", true);
|
user_pref("findbar.highlightAll", true);
|
||||||
user_pref("layout.word_select.eat_space_to_next_word", false);
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* SECTION: SMOOTHFOX *
|
* SECTION: SMOOTHFOX *
|
||||||
|
|||||||
Reference in New Issue
Block a user