{ pkgs, config, ... }: let # FireFox theme, based on https://github.com/Dook97/firefox-qutebrowser-userchrome themeFont = '' --tab-font: '${config.look.fonts.main}'; --urlbar-font: '${config.look.fonts.main}'; ''; themeJim = '' :root { --tab-active-bg-color: #${config.look.colors.prime}; --tab-hover-bg-color: #${config.look.colors.accent}; --tab-inactive-bg-color: #${config.look.colors.dark}; --tab-active-fg-fallback-color: #FFFFFF; --tab-inactive-fg-fallback-color: #${config.look.colors.text}; --urlbar-focused-bg-color: #${config.look.colors.dark}; --urlbar-not-focused-bg-color: #${config.look.colors.dark}; --toolbar-bgcolor: #${config.look.colors.dark} !important; ''; themeAlt = '' :root { --tab-active-bg-color: #${config.look.colors.dark}; --tab-hover-bg-color: #${config.look.colors.accent}; --tab-inactive-bg-color: #${config.look.colors.prime}; --tab-active-fg-fallback-color: #${config.look.colors.text}; --tab-inactive-fg-fallback-color: #FFFFFF; --urlbar-focused-bg-color: #${config.look.colors.prime}; --urlbar-not-focused-bg-color: #${config.look.colors.prime}; --toolbar-bgcolor: #${config.look.colors.prime} !important; ''; in { # Enable Librewolf and extensions programs.firefox = let commonExtensions = with config.nur.repos.rycee.firefox-addons; [ ublock-origin bitwarden darkreader sponsorblock return-youtube-dislikes simple-tab-groups vimium ]; commonSearch = { force = true; default = "Ecosia"; order = [ "Ecosia" "NixPKGs" "MyNixOS" "YouTube" ]; engines = { "Ecosia" = { urls = [ { template = "https://www.ecosia.org/search"; params = [ { name = "q"; value = "{searchTerms}"; } ]; } ]; definedAliases = [ "@e" ]; }; "NixPKGs" = { urls = [ { template = "https://search.nixos.org/packages"; params = [ { name = "type"; value = "packages"; } { name = "query"; value = "{searchTerms}"; } ]; } ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@pkgs" ]; }; "MyNixOS" = { urls = [ { template = "https://mynixos.com/search"; params = [ { name = "q"; value = "{searchTerms}"; } ]; } ]; definedAliases = [ "@my" ]; }; "YouTube" = { urls = [ { template = "https://www.youtube.com/results"; params = [ { name = "search_query"; value = "{searchTerms}"; } ]; } ]; definedAliases = [ "@y" ]; }; }; }; commonSettings = { "general.autoScroll" = true; "places.history.enabled" = false; "font.name.serif.x-western" = config.look.fonts.main; "font.name.sans-serif.x-western" = config.look.fonts.main; "font.name.monospace.x-western" = config.look.fonts.nerd; "browser.uidensity" = 1; "browser.compactmode.show" = true; "browser.toolbars.bookmarks.visibility" = "never"; "browser.contentblocking.category" = "strict"; "browser.helperApps.deleteTempFileOnExit" = true; "browser.search.separatePrivateDefault" = false; "browser.download.useDownloadDir" = true; "browser.startup.page" = 3; "browser.newtabpage.enabled" = false; "browser.tabs.inTitlebar" = 0; "extensions.pocket.enabled" = false; "extensions.autoDisableScopes" = 0; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; "toolkit.tabbox.switchByScrolling" = true; "privacy.resistFingerprinting" = true; "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = true; "privacy.fingerprintingProtection" = true; "privacy.donottrackheader.enabled" = true; "privacy.globalprivacycontrol.enabled" = true; "privacy.globalprivacycontrol.functionality.enabled" = true; "privacy.clearOnShutdown.history" = true; "privacy.clearOnShutdown.cookies" = false; "privacy.clearOnShutdown_v2.cookiesAndStorage" = false; "privacy.clearOnShutdown_v2.historyFormDataAndDownloads" = true; "urlclassifier.trackingSkipURLs" = "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com"; "urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com"; "network.trr.mode" = 3; "network.trr.uri" = "https://doh.libredns.gr/noads"; "network.http.referer.XOriginPolicy" = true; "network.cookie.sameSite.noneRequiresSecure" = true; "media.ffmpeg.vaapi.enabled" = true; "media.rdd-ffmpeg.enabled" = true; "media.hardware-video-decoding.force-enabled" = true; "gfx.webrender.all" = true; "gfx.x11-egl.force-enabled" = true; "clipboard.autocopy" = false; "middlemouse.paste" = false; "svg.context-properties.content.enabled" = true; "device.sensors.motion.enabled" = false; "gnomeTheme.hideSingleTab" = true; "webgl.disabled" = false; }; in { enable = true; package = pkgs.librewolf; profiles = { Main = { id = 0; extensions = commonExtensions; search = commonSearch; settings = commonSettings; userChrome = '' ${themeJim} ${themeFont} ${builtins.readFile ./quteFox.css} ''; }; Alt = { id = 1; extensions = commonExtensions; search = commonSearch; settings = commonSettings; userChrome = '' ${themeAlt} ${themeFont} ${builtins.readFile ./quteFox.css} ''; }; Misc = { id = 2; extensions = commonExtensions; search = commonSearch; settings = commonSettings; containersForce = true; }; }; }; # Fixes home.file = { # Symlinks to Librewolf ".librewolf".source = config.lib.file.mkOutOfStoreSymlink "/home/jimbo/.mozilla/firefox"; # Gnome theme ".mozilla/firefox/Misc/chrome".source = fetchTarball { url = "https://github.com/rafaelmardojai/firefox-gnome-theme/archive/refs/tags/v132.zip"; sha256 = "095sv1ann2v7q5bfy65i118ylhp2vkpbgyf6fz84nd9yrx14rzwm"; }; }; }