diff --git a/home/applications/browsers/default.nix b/home/applications/browsers/default.nix index a0312e3..d72b937 100644 --- a/home/applications/browsers/default.nix +++ b/home/applications/browsers/default.nix @@ -1,4 +1,8 @@ -{pkgs, ...}: { +{ + pkgs, + config, + ... +}: { programs = { chromium = { enable = true; @@ -7,349 +11,19 @@ }; firefox = { - policies = { - enable = true; - ExtensionSettings = { - # Allow extensions to be installed from anywhere - "*" = { - "installation_mode" = "allowed"; - }; - - # uBlock Origin - "uBlock0@raymondhill.net" = { - "installation_mode" = "force_installed"; - "install_url" = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; - }; - - # LocalCDN - "{b86e4813-687a-43e6-ab65-0bde4ab75758}" = { - "installation_mode" = "force_installed"; - "install_url" = "https://addons.mozilla.org/firefox/downloads/latest/localcdn-fork-of-decentraleyes/latest.xpi"; - }; - - # Sidebery - "{3c078156-979c-498b-8990-85f7987dd929}" = { - "installation_mode" = "force_installed"; - "install_url" = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi"; - }; - - # User-Agent Switcher and Manager - "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}" = { - "installation_mode" = "force_installed"; - "install_url" = "https://addons.mozilla.org/firefox/downloads/latest/user-agent-switcher-and-manager/latest.xpi"; - }; - }; - Preferences = { - # This is a sample Nix GPO file generated from Betterfox preferences - - # SECTION: FASTFOX - # GENERAL - "content.notify.interval" = 100000; - - # GFX - "gfx.canvas.accelerated.cache-items" = 4096; - "gfx.canvas.accelerated.cache-size" = 512; - "gfx.content.skia-font-cache-size" = 20; - - # DISK CACHE - "browser.cache.jsbc_compression_level" = 3; - - # MEDIA CACHE - "media.memory_cache_max_size" = 65536; - "media.cache_readahead_limit" = 7200; - "media.cache_resume_threshold" = 3600; - - # IMAGE CACHE - "image.mem.decode_bytes_at_a_time" = 32768; - - # NETWORK - "network.buffer.cache.size" = 262144; - "network.buffer.cache.count" = 128; - "network.http.max-connections" = 1800; - "network.http.max-persistent-connections-per-server" = 10; - "network.http.max-urgent-start-excessive-connections-per-host" = 5; - "network.http.pacing.requests.enabled" = false; - "network.dnsCacheExpiration" = 3600; - "network.dns.max_high_priority_threads" = 8; - "network.ssl_tokens_cache_capacity" = 10240; - - # SPECULATIVE LOADING - "network.dns.disablePrefetch" = true; - "network.prefetch-next" = false; - "network.predictor.enabled" = false; - - # EXPERIMENTAL - "layout.css.grid-template-masonry-value.enabled" = true; - "dom.enable_web_task_scheduling" = true; - "layout.css.has-selector.enabled" = true; - "dom.security.sanitizer.enabled" = true; - - # SECTION: SECUREFOX - # TRACKING PROTECTION - "browser.contentblocking.category" = "strict"; - "urlclassifier.trackingSkipURLs" = "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com"; - "urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com"; - "network.cookie.sameSite.noneRequiresSecure" = true; - "browser.download.start_downloads_in_tmp_dir" = true; - "browser.helperApps.deleteTempFileOnExit" = true; - "browser.uitour.enabled" = false; - "privacy.globalprivacycontrol.enabled" = true; - "privacy.globalprivacycontrol.functionality.enabled" = true; - - # OCSP & CERTS / HPKP - "security.OCSP.enabled" = 0; - "security.remote_settings.crlite_filters.enabled" = true; - "security.pki.crlite_mode" = 2; - - # SSL / TLS - "security.ssl.treat_unsafe_negotiation_as_broken" = true; - "browser.xul.error_pages.expert_bad_cert" = true; - "security.tls.enable_0rtt_data" = false; - - # DISK AVOIDANCE - "browser.privatebrowsing.forceMediaMemoryCache" = true; - "browser.sessionstore.interval" = 60000; - - # SHUTDOWN & SANITIZING - "privacy.history.custom" = true; - - # SEARCH / URL BAR - "browser.search.separatePrivateDefault.ui.enabled" = true; - "browser.urlbar.update2.engineAliasRefresh" = true; - "browser.search.suggest.enabled" = false; - "browser.urlbar.suggest.quicksuggest.sponsored" = false; - "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; - "browser.formfill.enable" = false; - "security.insecure_connection_text.enabled" = true; - "security.insecure_connection_text.pbmode.enabled" = true; - "network.IDN_show_punycode" = true; - - # HTTPS-FIRST POLICY - "dom.security.https_first" = true; - - # PASSWORDS - "signon.rememberSignons" = false; - "signon.formlessCapture.enabled" = false; - "signon.privateBrowsingCapture.enabled" = false; - "network.auth.subresource-http-auth-allow" = 1; - "editor.truncate_user_pastes" = false; - - # ADDRESS + CREDIT CARD MANAGER - "extensions.formautofill.addresses.enabled" = false; - "extensions.formautofill.creditCards.enabled" = false; - - # MIXED CONTENT + CROSS-SITE - "security.mixed_content.block_display_content" = true; - "security.mixed_content.upgrade_display_content" = true; - "security.mixed_content.upgrade_display_content.image" = true; - "pdfjs.enableScripting" = false; - "extensions.postDownloadThirdPartyPrompt" = false; - - # HEADERS / REFERERS - "network.http.referer.XOriginTrimmingPolicy" = 2; - - # CONTAINERS - "privacy.userContext.ui.enabled" = true; - - # WEBRTC - "media.peerconnection.ice.proxy_only_if_behind_proxy" = true; - "media.peerconnection.ice.default_address_only" = true; - - # SAFE BROWSING - "browser.safebrowsing.downloads.remote.enabled" = false; - - # MOZILLA - "permissions.default.desktop-notification" = 2; - "permissions.default.geo" = 2; - "geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"; - "permissions.manager.defaultsUrl" = ""; - "webchannel.allowObject.urlWhitelist" = ""; - - # TELEMETRY - "datareporting.policy.dataSubmissionEnabled" = false; - "datareporting.healthreport.uploadEnabled" = false; - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.server" = "data:,"; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; - "toolkit.telemetry.shutdownPingSender.enabled" = false; - "toolkit.telemetry.updatePing.enabled" = false; - "toolkit.telemetry.bhrPing.enabled" = false; - "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.coverage.opt-out" = true; - "toolkit.coverage.opt-out" = true; - "toolkit.coverage.endpoint.base" = ""; - "browser.ping-centre.telemetry" = false; - "browser.newtabpage.activity-stream.feeds.telemetry" = false; - "browser.newtabpage.activity-stream.telemetry" = false; - - # EXPERIMENTS - "app.shield.optoutstudies.enabled" = false; - "app.normandy.enabled" = false; - "app.normandy.api_url" = ""; - - # CRASH REPORTS - "breakpad.reportURL" = ""; - "browser.tabs.crashReporting.sendReport" = false; - "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; - - # DETECTION - "captivedetect.canonicalURL" = ""; - "network.captive-portal-service.enabled" = false; - "network.connectivity-service.enabled" = false; - - # SECTION: PESKYFOX - # MOZILLA UI - "browser.privatebrowsing.vpnpromourl" = ""; - "extensions.getAddons.showPane" = false; - "extensions.htmlaboutaddons.recommendations.enabled" = false; - "browser.discovery.enabled" = false; - "browser.shell.checkDefaultBrowser" = false; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; - "browser.preferences.moreFromMozilla" = false; - "browser.tabs.tabmanager.enabled" = false; - "browser.aboutConfig.showWarning" = false; - "browser.aboutwelcome.enabled" = false; - - # THEME ADJUSTMENTS - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "browser.compactmode.show" = true; - "browser.display.focus_ring_on_anything" = true; - "browser.display.focus_ring_style" = 0; - "browser.display.focus_ring_width" = 0; - "layout.css.prefers-color-scheme.content-override" = 2; - "browser.privateWindowSeparation.enabled" = false; # WINDOWS - - # COOKIE BANNER HANDLING - "cookiebanners.service.mode" = 1; - "cookiebanners.service.mode.privateBrowsing" = 1; - "cookiebanners.service.enableGlobalRules" = true; - - # FULLSCREEN NOTICE - "full-screen-api.transition-duration.enter" = "0 0"; - "full-screen-api.transition-duration.leave" = "0 0"; - "full-screen-api.warning.delay" = -1; - "full-screen-api.warning.timeout" = 0; - - # URL BAR - "browser.urlbar.suggest.calculator" = true; - "browser.urlbar.unitConversion.enabled" = true; - "browser.urlbar.trending.featureGate" = false; - - # NEW TAB PAGE - "browser.newtabpage.activity-stream.feeds.topsites" = false; - "browser.newtabpage.activity-stream.feeds.section.topstories" = false; - - # POCKET - "extensions.pocket.enabled" = false; - - # DOWNLOADS - "browser.download.useDownloadDir" = false; - "browser.download.always_ask_before_handling_new_types" = true; - "browser.download.manager.addToRecentDocs" = false; - - # PDF - "browser.download.open_pdf_attachments_inline" = true; - - # TAB BEHAVIOR - "browser.bookmarks.openInTabClosesMenu" = false; - "browser.menu.showViewImageInfo" = true; - "findbar.highlightAll" = true; - "layout.word_select.eat_space_to_next_word" = false; - - # SECTION: SMOOTHFOX - # SCROLLING OVERRIDES - # visit https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js - "apz.overscroll.enabled" = true; # DEFAULT NON-LINUX - "general.smoothScroll" = true; # DEFAULT - "general.smoothScroll.msdPhysics.continuousMotionMaxDeltaMS" = 12; - "general.smoothScroll.msdPhysics.enabled" = true; - "general.smoothScroll.msdPhysics.motionBeginSpringConstant" = 600; - "general.smoothScroll.msdPhysics.regularSpringConstant" = 650; - "general.smoothScroll.msdPhysics.slowdownMinDeltaMS" = 25; - "general.smoothScroll.msdPhysics.slowdownMinDeltaRatio" = 2.0; - "general.smoothScroll.msdPhysics.slowdownSpringConstant" = 250; - "general.smoothScroll.currentVelocityWeighting" = 1.0; - "general.smoothScroll.stopDecelerationWeighting" = 1.0; - "mousewheel.default.delta_multiplier_y" = 300; # 250-400; adjust this number to your liking - }; - }; - profiles.panotaka = { settings = { "widget.use-xdg-desktop-portal.file-picker" = 1; }; - userChrome = '' - /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/hide_tabs_toolbar.css made available under Mozilla Public License v. 2.0 - See the above repository for updates as well as full license text. */ - - /* Hides tabs toolbar */ - /* For OSX use hide_tabs_toolbar_osx.css instead */ - - /* Note, if you have either native titlebar or menubar enabled, then you don't really need this style. - * In those cases you can just use: #TabsToolbar{ visibility: collapse !important } - */ - - /* IMPORTANT */ - /* - Get window_control_placeholder_support.css - Window controls will be all wrong without it - */ - - :root[tabsintitlebar]{ --uc-toolbar-height: 40px; } - :root[tabsintitlebar][uidensity="compact"]{ --uc-toolbar-height: 32px } - #titlebar{ - will-change: unset !important; - transition: none !important; - opacity: 1 !important; - } - #TabsToolbar{ visibility: collapse !important } - - :root[sizemode="fullscreen"] #TabsToolbar > :is(#window-controls,.titlebar-buttonbox-container){ - visibility: visible !important; - z-index: 2; - } - - :root:not([inFullscreen]) #nav-bar{ - margin-top: calc(0px - var(--uc-toolbar-height,0px)); - } - - :root[tabsintitlebar] #toolbar-menubar[autohide="true"]{ - min-height: unset !important; - height: var(--uc-toolbar-height,0px) !important; - position: relative; - } - - #toolbar-menubar[autohide="false"]{ - margin-bottom: var(--uc-toolbar-height,0px) - } - - :root[tabsintitlebar] #toolbar-menubar[autohide="true"] #main-menubar{ - flex-grow: 1; - align-items: stretch; - background-color: var(--toolbar-bgcolor,--toolbar-non-lwt-bgcolor); - background-clip: padding-box; - border-right: 30px solid transparent; - border-image: linear-gradient(to left, transparent, var(--toolbar-bgcolor,--toolbar-non-lwt-bgcolor) 30px) 20 / 30px - } - - #toolbar-menubar:not([inactive]){ z-index: 2 } - #toolbar-menubar[autohide="true"][inactive] > #menubar-items { - opacity: 0; - pointer-events: none; - margin-left: var(--uc-window-drag-space-pre,0px) - } - - ''; }; - /* + # Wait for https://github.com/NixOS/nixpkgs/pull/269817 to be merged - package = pkgs.wrapFirefox pkgs.firefox-unwrapped { + package = pkgs.wrapFirefox pkgs.floorp-unwrapped { nixExtensions = with config.nur.repos.rycee.firefox-addons; [ ublock-origin localcdn + sidebery + user-agent-switcher-and-manager ]; extraPolicies = { @@ -368,7 +42,6 @@ }; }; }; - */ }; }; }