diff --git a/de/home/.librewolf/config/js/betterfox.js b/de/home/.librewolf/config/js/betterfox.js new file mode 100644 index 0000000..62f430a --- /dev/null +++ b/de/home/.librewolf/config/js/betterfox.js @@ -0,0 +1,238 @@ +// +/* You may copy+paste this file and use it as it is. + * + * If you make changes to your about:config while the program is running, the + * changes will be overwritten by the user.js when the application restarts. + * + * To make lasting changes to preferences, you will have to edit the user.js. + */ + +/**************************************************************************** + * Betterfox * + * "Ad meliora" * + * version: 142 * + * url: https://github.com/yokoffing/Betterfox * +****************************************************************************/ + +/**************************************************************************** + * SECTION: FASTFOX * +****************************************************************************/ +/** GENERAL ***/ +user_pref("content.notify.interval", 100000); + +/** GFX ***/ +user_pref("gfx.canvas.accelerated.cache-size", 512); +user_pref("gfx.content.skia-font-cache-size", 20); + +/** DISK CACHE ***/ +user_pref("browser.cache.disk.enable", false); + +/** MEMORY CACHE ***/ +user_pref("browser.sessionhistory.max_total_viewers", 4); + +/** MEDIA CACHE ***/ +user_pref("media.memory_cache_max_size", 65536); +user_pref("media.cache_readahead_limit", 7200); +user_pref("media.cache_resume_threshold", 3600); + +/** IMAGE CACHE ***/ +user_pref("image.mem.decode_bytes_at_a_time", 32768); + +/** NETWORK ***/ +user_pref("network.http.max-connections", 1800); +user_pref("network.http.max-persistent-connections-per-server", 10); +user_pref("network.http.max-urgent-start-excessive-connections-per-host", 5); +user_pref("network.http.pacing.requests.enabled", false); +user_pref("network.dnsCacheExpiration", 3600); +user_pref("network.ssl_tokens_cache_capacity", 10240); + +/** SPECULATIVE LOADING ***/ +user_pref("network.http.speculative-parallel-limit", 0); +user_pref("network.dns.disablePrefetch", true); +user_pref("network.dns.disablePrefetchFromHTTPS", true); +user_pref("browser.urlbar.speculativeConnect.enabled", false); +user_pref("browser.places.speculativeConnect.enabled", false); +user_pref("network.prefetch-next", false); +user_pref("network.predictor.enabled", false); + +/** EXPERIMENTAL ***/ +user_pref("layout.css.grid-template-masonry-value.enabled", true); + +/**************************************************************************** + * SECTION: SECUREFOX * +****************************************************************************/ +/** TRACKING PROTECTION ***/ +user_pref("browser.contentblocking.category", "strict"); +user_pref("privacy.trackingprotection.allow_list.baseline.enabled", true); +user_pref("privacy.trackingprotection.allow_list.convenience.enabled", true); +user_pref("browser.download.start_downloads_in_tmp_dir", true); +user_pref("browser.helperApps.deleteTempFileOnExit", true); +user_pref("browser.uitour.enabled", false); +user_pref("privacy.globalprivacycontrol.enabled", true); + +/** OCSP & CERTS / HPKP ***/ +user_pref("security.OCSP.enabled", 0); +user_pref("security.pki.crlite_mode", 2); +user_pref("security.csp.reporting.enabled", false); + +/** SSL / TLS ***/ +user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true); +user_pref("browser.xul.error_pages.expert_bad_cert", true); +user_pref("security.tls.enable_0rtt_data", false); + +/** DISK AVOIDANCE ***/ +user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); +user_pref("browser.sessionstore.interval", 60000); + +/** SHUTDOWN & SANITIZING ***/ +user_pref("browser.privatebrowsing.resetPBM.enabled", true); +user_pref("privacy.history.custom", true); + +/** SEARCH / URL BAR ***/ +user_pref("browser.urlbar.trimHttps", true); +user_pref("browser.urlbar.untrimOnUserInteraction.featureGate", true); +user_pref("browser.search.separatePrivateDefault.ui.enabled", true); +user_pref("browser.search.suggest.enabled", false); +user_pref("browser.urlbar.quicksuggest.enabled", false); +user_pref("browser.urlbar.groupLabels.enabled", false); +user_pref("browser.formfill.enable", false); +user_pref("network.IDN_show_punycode", true); + +/** PASSWORDS ***/ +user_pref("signon.formlessCapture.enabled", false); +user_pref("signon.privateBrowsingCapture.enabled", false); +user_pref("network.auth.subresource-http-auth-allow", 1); +user_pref("editor.truncate_user_pastes", false); + +/** MIXED CONTENT + CROSS-SITE ***/ +user_pref("security.mixed_content.block_display_content", true); +user_pref("pdfjs.enableScripting", false); + +/** EXTENSIONS ***/ +user_pref("extensions.enabledScopes", 5); + +/** HEADERS / REFERERS ***/ +user_pref("network.http.referer.XOriginTrimmingPolicy", 2); + +/** CONTAINERS ***/ +user_pref("privacy.userContext.ui.enabled", true); + +/** SAFE BROWSING ***/ +user_pref("browser.safebrowsing.downloads.remote.enabled", false); + +/** MOZILLA ***/ +user_pref("permissions.default.desktop-notification", 2); +user_pref("permissions.default.geo", 2); +user_pref("geo.provider.network.url", "https://beacondb.net/v1/geolocate"); +user_pref("browser.search.update", false); +user_pref("permissions.manager.defaultsUrl", ""); +user_pref("extensions.getAddons.cache.enabled", false); + +/** TELEMETRY ***/ +user_pref("datareporting.policy.dataSubmissionEnabled", false); +user_pref("datareporting.healthreport.uploadEnabled", false); +user_pref("toolkit.telemetry.unified", false); +user_pref("toolkit.telemetry.enabled", false); +user_pref("toolkit.telemetry.server", "data:,"); +user_pref("toolkit.telemetry.archive.enabled", false); +user_pref("toolkit.telemetry.newProfilePing.enabled", false); +user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); +user_pref("toolkit.telemetry.updatePing.enabled", false); +user_pref("toolkit.telemetry.bhrPing.enabled", false); +user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); +user_pref("toolkit.telemetry.coverage.opt-out", true); +user_pref("toolkit.coverage.opt-out", true); +user_pref("toolkit.coverage.endpoint.base", ""); +user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); +user_pref("browser.newtabpage.activity-stream.telemetry", false); +user_pref("datareporting.usage.uploadEnabled", false); + +/** EXPERIMENTS ***/ +user_pref("app.shield.optoutstudies.enabled", false); +user_pref("app.normandy.enabled", false); +user_pref("app.normandy.api_url", ""); + +/** CRASH REPORTS ***/ +user_pref("breakpad.reportURL", ""); +user_pref("browser.tabs.crashReporting.sendReport", false); + +/**************************************************************************** + * SECTION: PESKYFOX * +****************************************************************************/ +/** MOZILLA UI ***/ +user_pref("browser.privatebrowsing.vpnpromourl", ""); +user_pref("extensions.getAddons.showPane", false); +user_pref("extensions.htmlaboutaddons.recommendations.enabled", false); +user_pref("browser.discovery.enabled", false); +user_pref("browser.shell.checkDefaultBrowser", false); +user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); +user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); +user_pref("browser.preferences.moreFromMozilla", false); +user_pref("browser.aboutConfig.showWarning", false); +user_pref("browser.aboutwelcome.enabled", false); +user_pref("browser.profiles.enabled", true); + +/** THEME ADJUSTMENTS ***/ +user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); +user_pref("browser.compactmode.show", true); +user_pref("browser.privateWindowSeparation.enabled", false); // WINDOWS + +/** AI ***/ +user_pref("browser.ml.enable", false); +user_pref("browser.ml.chat.enabled", false); + +/** FULLSCREEN NOTICE ***/ +user_pref("full-screen-api.transition-duration.enter", "0 0"); +user_pref("full-screen-api.transition-duration.leave", "0 0"); +user_pref("full-screen-api.warning.timeout", 0); + +/** URL BAR ***/ +user_pref("browser.urlbar.trending.featureGate", false); + +/** NEW TAB PAGE ***/ +user_pref("browser.newtabpage.activity-stream.default.sites", ""); +user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); +user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); +user_pref("browser.newtabpage.activity-stream.showSponsored", false); +user_pref("browser.newtabpage.activity-stream.showSponsoredCheckboxes", false); + +/** POCKET ***/ +user_pref("extensions.pocket.enabled", false); + +/** DOWNLOADS ***/ +user_pref("browser.download.manager.addToRecentDocs", false); + +/** PDF ***/ +user_pref("browser.download.open_pdf_attachments_inline", true); + +/** TAB BEHAVIOR ***/ +user_pref("browser.bookmarks.openInTabClosesMenu", false); +user_pref("browser.menu.showViewImageInfo", true); +user_pref("findbar.highlightAll", true); +user_pref("layout.word_select.eat_space_to_next_word", false); + +/**************************************************************************** + * START: MY OVERRIDES * +****************************************************************************/ +// visit https://github.com/yokoffing/Betterfox/wiki/Common-Overrides +// visit https://github.com/yokoffing/Betterfox/wiki/Optional-Hardening +// Enter your personal overrides below this line: + + + +/**************************************************************************** + * SECTION: SMOOTHFOX * +****************************************************************************/ +// visit https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js +// Enter your scrolling overrides below this line: + + + +/**************************************************************************** + * END: BETTERFOX * +****************************************************************************/ + + + + + diff --git a/de/home/.librewolf/config/js/global.js b/de/home/.librewolf/config/js/global.js new file mode 100644 index 0000000..06cd157 --- /dev/null +++ b/de/home/.librewolf/config/js/global.js @@ -0,0 +1,18 @@ +user_pref("browser.display.os-zoom-behavior", 1); +user_pref("layout.css.devPixelsPerPx", "-1"); +user_pref("ui.textScaleFactor", 85); + +user_pref("browser.tabs.allow_transparent_browser",true); + +user_pref("svg.context-properties.content.enabled", true); +user_pref("media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled", true); + +user_pref("privacy.fingerprintingProtection", true); +user_pref("privacy.resistFingerprinting", true); +user_pref("privacy.resistFingerprinting.randomization.daily_reset.enabled", true); +user_pref("privacy.resistFingerprinting.randomization.daily_reset.private.enabled", true); + +user_pref("widget.use-xdg-desktop-portal.file-picker",1); +user_pref("widget.use-xdg-desktop-portal.mime-handler",1); + +user_pref("browser.urlbar.switchTabs.adoptIntoActiveWindow",true); diff --git a/de/home/.librewolf/config/profiles/development/user.js b/de/home/.librewolf/config/profiles/development/user.js new file mode 100644 index 0000000..02af7fb --- /dev/null +++ b/de/home/.librewolf/config/profiles/development/user.js @@ -0,0 +1 @@ +user_pref("privacy.resistFingerprinting.exemptedDomains", "*.pogmom.me,*.pog.mom"); diff --git a/de/home/.librewolf/config/profiles/development/vars.json b/de/home/.librewolf/config/profiles/development/vars.json new file mode 100644 index 0000000..2eaae0b --- /dev/null +++ b/de/home/.librewolf/config/profiles/development/vars.json @@ -0,0 +1,14 @@ +{ + "color": { + "r": "121", + "g": "95", + "b": "124", + "a": "0.5" + }, + "background_color": { + "r": "17", + "g": "19", + "b": "23", + "a": "0.3" + } +} diff --git a/de/home/.librewolf/config/profiles/housing/user.js b/de/home/.librewolf/config/profiles/housing/user.js new file mode 100644 index 0000000..02af7fb --- /dev/null +++ b/de/home/.librewolf/config/profiles/housing/user.js @@ -0,0 +1 @@ +user_pref("privacy.resistFingerprinting.exemptedDomains", "*.pogmom.me,*.pog.mom"); diff --git a/de/home/.librewolf/config/profiles/housing/vars.json b/de/home/.librewolf/config/profiles/housing/vars.json new file mode 100644 index 0000000..88635a9 --- /dev/null +++ b/de/home/.librewolf/config/profiles/housing/vars.json @@ -0,0 +1,14 @@ +{ + "color": { + "r": "215", + "g": "175", + "b": "135", + "a": "0.2" + }, + "background_color": { + "r": "17", + "g": "19", + "b": "23", + "a": "0.4" + } +} diff --git a/de/home/.librewolf/config/profiles/penelope/user.js b/de/home/.librewolf/config/profiles/penelope/user.js new file mode 100644 index 0000000..02af7fb --- /dev/null +++ b/de/home/.librewolf/config/profiles/penelope/user.js @@ -0,0 +1 @@ +user_pref("privacy.resistFingerprinting.exemptedDomains", "*.pogmom.me,*.pog.mom"); diff --git a/de/home/.librewolf/config/profiles/penelope/vars.json b/de/home/.librewolf/config/profiles/penelope/vars.json new file mode 100644 index 0000000..d4b20c5 --- /dev/null +++ b/de/home/.librewolf/config/profiles/penelope/vars.json @@ -0,0 +1,14 @@ +{ + "color": { + "r": "116", + "g": "97", + "b": "99", + "a": "0.6" + }, + "background_color": { + "r": "17", + "g": "19", + "b": "23", + "a": "0.4" + } +} diff --git a/de/home/.librewolf/config/profiles/work/user.js b/de/home/.librewolf/config/profiles/work/user.js new file mode 100644 index 0000000..5d9f664 --- /dev/null +++ b/de/home/.librewolf/config/profiles/work/user.js @@ -0,0 +1 @@ +user_pref("privacy.resistFingerprinting.exemptedDomains", "*.pogmom.me,*.pog.mom,app.slack.com,na01.alma.exlibrisgroup.com,mail.google.com,*.livechatinc.com,*.lanecc.edu"); diff --git a/de/home/.librewolf/config/profiles/work/vars.json b/de/home/.librewolf/config/profiles/work/vars.json new file mode 100644 index 0000000..2e47586 --- /dev/null +++ b/de/home/.librewolf/config/profiles/work/vars.json @@ -0,0 +1,14 @@ +{ + "color": { + "r": "74", + "g": "95", + "b": "118", + "a": "0.45" + }, + "background_color": { + "r": "17", + "g": "19", + "b": "23", + "a": "0.5" + } +} diff --git a/de/home/.librewolf/config/update.sh b/de/home/.librewolf/config/update.sh new file mode 100755 index 0000000..86617f1 --- /dev/null +++ b/de/home/.librewolf/config/update.sh @@ -0,0 +1,92 @@ +#!/bin/bash + +if [[ ! $(find ./js/betterfox.js -cmin -10080 -print 2>/dev/null) ]]; then + if curl 'https://raw.githubusercontent.com/yokoffing/Betterfox/main/user.js' > 'betterfox.js.part'; then + printf 'successfully downloaded latest betterfox user.js\n' + mv betterfox.js.part ./js/betterfox.js + else + printf 'failed to download latest betterfox user.js\n' + rm betterfox.js.part + # exit 1 + fi +fi + +rgba_to_hex(){ + r="${1}" + g="${2}" + b="${3}" + a="${4}" + aa=$(echo "${a}*255"|bc) + printf '#%x%x%x%x\n' "${r}" "${g}" "${b}" "${aa%.*}" +} +#rgba_to_hex 100 150 200 0.5 +jq_parse(){ + json_file="${1}" + jq_query="${2}" + jq -r "${2}" "${1}" +} +#jq_parse ./profiles/penelope/vars.json '.color.r' +#exit 1 + +gen_hex(){ + json="${1}" + colorvar="${2}" + r=$(jq_parse "${json}" ".${colorvar}.r") + g=$(jq_parse "${json}" ".${colorvar}.g") + b=$(jq_parse "${json}" ".${colorvar}.b") + a=$(jq_parse "${json}" ".${colorvar}.a") + rgba_to_hex "${r}" "${g}" "${b}" "${a}" +} + +for profile in ./profiles/*/;do + profile="${profile%/}" + profile_name=$(basename "${profile}") + mkdir -p "../${profile_name}" + browser_profile_dir=$(realpath "../${profile_name}") + mkdir -p "${browser_profile_dir}" + if [[ -L "${browser_profile_dir}/chrome" ]];then + rm "${browser_profile_dir}/chrome" + fi + if [[ -f "${profile}/vars.json" ]];then + mkdir -p "${browser_profile_dir}/chrome" + json="${profile}/vars.json" +# bg_r=$(jq_parse "${json}" '.background_color.r') +# bg_g=$(jq_parse "${json}" '.background_color.g') +# bg_b=$(jq_parse "${json}" '.background_color.b') +# bg_a=$(jq_parse "${json}" '.background_color.a') +# css_bg_rgba=$(printf 'rgba(%s,%s,%s,%s)' "${bg_r}" "${bg_g}" "${bg_b}" "${bg_a}") +# css_bg_hex=$(rgba_to_hex "${bg_r}" "${bg_g}" "${bg_b}" "${bg_a}") +# p_r=$(jq_parse "${json}" '.color.r') +# p_g=$(jq_parse "${json}" '.color.g') +# p_b=$(jq_parse "${json}" '.color.b') +# p_a=$(jq_parse "${json}" '.color.a') +# css_bg_rgba=$(printf 'rgba(%s,%s,%s,%s)' "${p_r}" "${p_g}" "${p_b}" "${p_a}") +# css_p_hex=$(rgba_to_hex "${p_r}" "${p_g}" "${p_b}" "${p_a}") + + css_bg_hex=$(gen_hex "${json}" 'background_color') +# css_nav_hex=$(gen_hex "${json}" 'nav_color') + css_p_hex=$(gen_hex "${json}" 'color') + + for c in ./chrome/*.css;do + css_name=$(basename "${c}") + sed "s/\[\[\[BACKGROUNDHEX\]\]\]/${css_bg_hex}/" "${c}" | tee "${browser_profile_dir}/chrome/${css_name}" + done + for pc in "${browser_profile_dir}/chrome/"*.css;do + css_name=$(basename "${c}") + sed -i "s/\[\[\[COLORHEX\]\]\]/${css_p_hex}/" "${pc}" + done + +# sed "s/\[\[\[BACKGROUNDHEX\]\]\]/${css_bg_hex}/" ./chrome/userChrome.css | tee "${browser_profile_dir}/chrome/userChrome.css" +# sed "s/\[\[\[BACKGROUNDHEX\]\]\]/${css_bg_hex}/" ./chrome/userChrome.css | tee "${browser_profile_dir}/chrome/userChrome.css" + +# echo "${css_bg_rgba}" +# echo "${css_bg_hex}" + fi +# if [[ -L "${browser_profile_dir}/user.js" ]];then +# rm "${browser_profile_dir}/user.js" +# fi +# if [[ -f "${profile}/user.js" ]];then +# echo "joining js files" +# cat "./js/betterfox.js" "./js/global.js" "${profile}/user.js" | tee "${browser_profile_dir}/user.js" > /dev/null +# fi +done