{ config, lib, pkgs, ... }: { options.snowflake.home.programs.firefox.enable = lib.mkEnableOption "enable custom firefox"; config = lib.mkIf config.snowflake.home.programs.firefox.enable { programs.firefox = { enable = true; # Policies apply at firefox global level policies = { "3rdparty" = { # Set policies that WebExtensions can access via chrome.storage.managed. Extensions = { # "uBlock0@raymondhill.net" = { # adminSettings = { # selectedFilterLists = [ # "ublock-privacy" # "ublock-badware" # "ublock-filters" # "user-filters" # ]; # }; # }; }; }; # AllowedDomainsForApps = ""; # Define domains allowed to access Google Workspace. AllowFileSelectionDialogs = true; # Allow file selection dialogs. AppAutoUpdate = false; # Enable or disable automatic application update. # AppUpdatePin = ""; # Prevent Firefox from being updated beyond the specified version. # AppUpdateURL = ""; # Change the URL for application update. # Authentication = ""; # Configure sites that support integrated authentication. AutoLaunchProtocolsFromOrigins = [ # Define a list of external protocols that can be used from listed origins without prompting the user. { protocol = "zoommtg"; allowed_origins = [ "https://asu.zoom.us" ]; } ]; BackgroundAppUpdate = false; # Enable or disable the background updater (Windows only). # BlockAboutAddons = true; # Block access to the Add-ons Manager (about:addons). # BlockAboutConfig = true; # Block access to about:config. # BlockAboutProfiles = true; # Block access to About Profiles (about:profiles). # BlockAboutSupport = true; # Block access to Troubleshooting Information (about:support). # Bookmarks = ""; # use ManagedBookmarks instead - Add bookmarks in either the bookmarks toolbar or menu. # CaptivePortal = ""; # Enable or disable the detection of captive portals. # Certificates = { # ImportEnterpriseRoots = ""; # Trust certificates that have been added to the operating system certificate store by a user or administrator. # Install = ""; # Install certificates into the Firefox certificate store. # }; # Containers = { # Set policies related to containers. - doesn't work, managing via individual profile # quasar = [ # { # name = "TheFourHorsemen"; # color = "orange"; # icon = "fingerprint"; # } # { # name = "Grapevine-Ameya"; # color = "purple"; # icon = "briefcase"; # } # { # name = "Grapevine"; # color = "pink"; # icon = "dollar"; # } # { # name = "Trized"; # color = "green"; # icon = "tree"; # } # ]; # }; # Cookies = { # Configure cookie preferences. # Allow = ["http://example.org/"]; # AllowSession = ["http://example.edu/"]; # Block = ["http://example.edu/"]; # Default = true; # AcceptThirdParty = "never"; # RejectTracker = true; # Locked = true; # Behavior = "reject-tracker"; # BehaviorPrivateBrowsing = "accept"; # }; # DefaultDownloadDirectory = ""; # Set the default download directory. DisableAppUpdate = true; # Turn off application updates. DisableBuiltinPDFViewer = true; # Disable the built in PDF viewer. said to have vulnerabilities; using PDFjs instead # DisabledCiphers = { # Disable ciphers. # TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = true; # TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = true; # TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = true; # TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = true; # TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = true; # TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = true; # TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = true; # TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = true; # TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = true; # TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = true; # TLS_DHE_RSA_WITH_AES_128_CBC_SHA = true; # TLS_DHE_RSA_WITH_AES_256_CBC_SHA = true; # TLS_RSA_WITH_AES_128_GCM_SHA256 = true; # TLS_RSA_WITH_AES_256_GCM_SHA384 = true; # TLS_RSA_WITH_AES_128_CBC_SHA = true; # TLS_RSA_WITH_AES_256_CBC_SHA = true; # TLS_RSA_WITH_3DES_EDE_CBC_SHA = true; # }; # DisableDefaultBrowserAgent = ""; # Prevent the default browser agent from taking any actions (Windows only). DisableDeveloperTools = false; # Remove access to all developer tools. # DisableFeedbackCommands = false; # Disable the menus for reporting sites. DisableFirefoxAccounts = true; # Disable Firefox Accounts integration (Sync). DisableFirefoxScreenshots = true; # Remove access to Firefox Screenshots. DisableFirefoxStudies = true; # Disable Firefox studies (Shield). # DisableForgetButton = ""; # Disable the “Forget” button. # DisableFormHistory = false; # Turn off saving information on web forms and the search bar. DisableMasterPasswordCreation = true; # Remove the master password functionality. # DisablePasswordReveal = false; # Do not allow passwords to be revealed in saved logins. DisablePocket = true; # Remove Pocket in the Firefox UI. DisablePrivateBrowsing = false; # Remove access to private browsing. DisableProfileImport = true; # Disables the “Import data from another browser” option in the bookmarks window. DisableProfileRefresh = true; # Disable the Refresh Firefox button on about:support and support.mozilla.org DisableSafeMode = false; # Disable safe mode within the browser. # DisableSecurityBypass = { # Prevent the user from bypassing security in certain cases. # InvalidCertificate = true; # SafeBrowsing = true; # }; DisableSetDesktopBackground = true; # Remove the “Set As Desktop Background…” menuitem when right clicking on an image. DisableSystemAddonUpdate = true; # Prevent system add-ons from being installed or updated. DisableTelemetry = true; # DisableTelemetry # DisableThirdPartyModuleBlocking = ""; # Do not allow blocking third-party modules (windows only) DisplayBookmarksToolbar = "never"; # Set the initial state of the bookmarks toolbar. DisplayMenuBar = "default-off"; # Set the state of the menubar. DNSOverHTTPS = { # Configure DNS over HTTPS - test using -> https://one.one.one.one/help/ Enabled = true; # determines whether DNS over HTTPS is enabled ProviderURL = "https://mozilla.cloudflare-dns.com/dns-query"; # is a URL to another provider Locked = true; # prevents the user from changing DNS over HTTPS preferences ExcludedDomains = [ "example.com" ]; # excludes domains from DNS over HTTPS Fallback = true; # determines whether or not Firefox will use your default DNS resolver if there is a problem with the secure DNS provider }; DontCheckDefaultBrowser = true; # Don’t check if Firefox is the default browser at startup. # DownloadDirectory = "/home/cc/Downloads/"; # Set and lock the download directory. EnableTrackingProtection = { # Configure tracking protection. Value = true; Locked = true; Cryptomining = true; Fingerprinting = true; EmailTracking = true; # Exceptions = [ # "https://example.com" # ]; }; EncryptedMediaExtensions = { # Enable or disable Encrypted Media Extensions (like widevine) and optionally lock it. Enabled = true; Locked = true; }; # EnterprisePoliciesEnabled = ""; # Enable policy support on macOS. # ExemptDomainFileTypePairsFromFileTypeDownloadWarnings = [ # Disable warnings based on file extension for specific file types on domains. # { # file_extension = "jnlp"; # domains = ["example.com"]; # } # ]; # Extensions = ""; # use ExtensionSettings instead - Control the installation, uninstallation and locking of extensions. # you can find the extension names in about:support -> Add-ons ExtensionSettings = { # Manage all aspects of extensions. "*" = { installation_mode = "blocked"; blocked_install_message = "You cannot install additional extensions without a declarative config! :)"; }; # "addons-search-detection@mozilla.com" = { # installation_mode = "force_installed"; # install_url = ""; # }; # "bing@search.mozilla.org" = { # installation_mode = "force_installed"; # install_url = ""; # }; # "ddg@search.mozilla.org" = { # installation_mode = "force_installed"; # install_url = ""; # }; # "google@search.mozilla.org" = { # installation_mode = "force_installed"; # install_url = ""; # }; # Vimium "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4259790/vimium_ff-2.1.2.xpi"; # vimium-ff }; # "wikipedia@search.mozilla.org" = { # installation_mode = "force_installed"; # install_url = ""; # }; # "default-theme@mozilla.org" = { # installation_mode = "force_installed"; # install_url = ""; # }; # 'Improve YouTube!' 🎧 (for YouTube & Videos)' "{3c6bf0cc-3ae2-42fb-9993-0d33104fdcaf}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4375372/youtube_addon-4.1122.xpi"; # youtube-addon }; # Tampermonkey "firefox@tampermonkey.net" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4379021/tampermonkey-5.3.2.xpi"; # tampermonkey }; # AI-based Grammar Checker & Paraphraser – LanguageTool "languagetool-webextension@languagetool.org" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4341696/languagetool-8.11.8.xpi"; # languagetool }; # Auto Discard Tab "{c2c003ee-bd69-42a2-b0e9-6f34222cb046}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4045009/auto_tab_discard-0.6.7.xpi"; # auto-tab-discard }; # Bitwarden - Free Password Manager "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4371752/bitwarden_password_manager-2024.10.1.xpi"; # bitwarden-password-manager }; # TODO: Bypass Paywalls Clean - not working, need to debug "magnolia@12.34" = { installation_mode = "force_installed"; install_url = "https://gitflic.ru/project/magnolia1234/bpc_uploads/blob/raw?file=bypass_paywalls_clean-3.8.9.0.xpi"; # bypass paywalls clean }; # CanvasBlocker "CanvasBlocker@kkapsner.de" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4262820/canvasblocker-1.10.1.xpi"; # canvasblocker }; # ClearURLs "{74145f27-f039-47ce-a470-a662b129930a}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4064884/clearurls-1.26.1.xpi"; # clearurls }; # Dark Reader "addon@darkreader.org" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4378073/darkreader-4.9.96.xpi"; # darkreader }; # Decentraleyes "jid1-BoFifL9Vbdl2zQ@jetpack" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4255788/decentraleyes-2.0.19.xpi"; # decentraleyes }; # Firefox Multi-Account Containers "@testpilot-containers" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4355970/multi_account_containers-8.2.0.xpi"; # multi-account-containers }; # Open external links in a container "{f069aec0-43c5-4bbf-b6b4-df95c4326b98}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/3566167/open_url_in_container-1.0.3.xpi"; # open-url-in-container }; # Privacy Badger "jid1-MnnxcxisBPnSXQ@jetpack" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4321653/privacy_badger17-2024.7.17.xpi"; # privacy-badger17 }; # React Developer Tools "@react-devtools" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4360002/react_devtools-6.0.0.xpi"; # react-devtools }; # Read Aloud: A Text to Speech Voice Reader "{ddc62400-f22d-4dd3-8b4a-05837de53c2e}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4350883/read_aloud-1.73.0.xpi"; # read-aloud }; # Return YouTube Dislike "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4371820/return_youtube_dislikes-3.0.0.18.xpi"; # return-youtube-dislikes }; # Search by Image "{2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/2821476/search-2.0.xpi"; # search_by_image }; # Sidebery "{3c078156-979c-498b-8990-85f7987dd929}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4246774/sidebery-5.2.0.xpi"; # sidebery }; # SponsorBlock for YouTube - Skip Sponsorships "sponsorBlocker@ajay.app" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4372080/sponsorblock-5.9.5.xpi"; # sponsorblock }; # GSConnect "gsconnect@andyholmes.github.io" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/3626312/gsconnect-8.xpi"; # gsconnect }; # # DeArrow # # removing this since it's not that useful and also slows down the loading speed of youtube # "deArrow@ajay.app" = { # installation_mode = "force_installed"; # install_url = "https://addons.mozilla.org/firefox/downloads/file/4254118/dearrow-1.5.11.xpi"; # }; # Stylebot "{52bda3fd-dc48-4b3d-a7b9-58af57879f1e}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/3979493/stylebot_web-3.1.3.xpi"; # stylebot-web }; # Tab Stash "tab-stash@condordes.net" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4361352/tab_stash-3.1.1.xpi"; # tab-stash }; # Tabliss "extension@tabliss.io" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/3940751/tabliss-2.6.0.xpi"; # tabliss }; # uBlacklist "@ublacklist" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4327308/ublacklist-8.9.2.xpi"; # ublacklist }; # uBlock Origin "uBlock0@raymondhill.net" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4359936/ublock_origin-1.60.0.xpi"; # ublock-origin }; # User-Agent Switcher and Manager "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4098688/user_agent_string_switcher-0.5.0.xpi"; # user-agent-string-switcher }; # Video Speed Controller "{7be2ba16-0f1e-4d93-9ebc-5164397477a9}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/3756025/videospeed-0.6.3.3.xpi"; # videospeed }; # Web Archives "{d07ccf11-c0cd-4938-a265-2a4d6ad01189}" = { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4361316/view_page_archive-7.0.0.xpi"; # view-page-archive }; # "firefox-compact-dark@mozilla.org" = { # installation_mode = "force_installed"; # install_url = ""; # }; # "firefox-alpenglow@mozilla.org" = { # installation_mode = "force_installed"; # install_url = ""; # }; # "firefox-compact-light@mozilla.org" = { # installation_mode = "force_installed"; # install_url = ""; # }; # "uBlock0@raymondhill.net": { # "installation_mode": "force_installed", # "install_url": "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" # }, # "https-everywhere@eff.org": { # "installation_mode": "allowed", # "updates_disabled": false # } }; ExtensionUpdate = false; # Control extension updates. FirefoxHome = { # Customize the Firefox Home page. Search = false; TopSites = false; SponsoredTopSites = false; Highlights = false; Pocket = false; SponsoredPocket = false; Snippets = false; # Locked = true; }; FirefoxSuggest = { # Customize Firefox Suggest. WebSuggestions = false; SponsoredSuggestions = false; ImproveSuggest = false; # Locked = true; }; GoToIntranetSiteForSingleWordEntryInAddressBar = false; # Force direct intranet site navigation instead of searching when typing single word entries in the address bar. Handlers = { # Configure default application handlers. # mimeTypes = { # "application/msword" = { # action = "useSystemDefault"; # ask = false; # }; # }; schemes = { mailto = { action = "useHelperApp"; ask = true; handlers = [{ name = "Gmail"; uriTemplate = "https://mail.google.com/mail/?extsrc=mailto&url=%s"; }]; }; }; # extensions = { # pdf = { # action = "useHelperApp"; # ask = true; # handlers = [ # { # name = "Adobe Acrobat"; # path = "/usr/bin/acroread"; # } # ]; # }; # }; }; # Control hardware acceleration. # - this exposis points for fingerprinting, so disabling it helps # - but when enabled it gives a massive performace improvement # To check: See about:support. If your compositor is WebRender without any caveats (like software), your Firefox is hardware accelerated HardwareAcceleration = true; Homepage = { # Configure the default homepage and how Firefox starts. # URL = "http://example.com/"; # Locked = true; # Additional = [ # "http://example.org/" # "http://example.edu/" # ]; StartPage = "previous-session"; }; # InstallAddonsPermission = { # Configure the default extension install policy as well as origins for extension installs are allowed. # Allow = []; # Default = false; # }; # LegacyProfiles = ""; # Disable the feature enforcing a separate profile for each installation. # LegacySameSiteCookieBehaviorEnabled = ""; # Enable default legacy SameSite cookie behavior setting. # LegacySameSiteCookieBehaviorEnabledForDomainList = ""; # Revert to legacy SameSite behavior for cookies on specified sites. # LocalFileLinks = ""; # Enable linking to local files by origin. ManagedBookmarks = [ # Configures a list of bookmarks managed by an administrator that cannot be changed by the user. { toplevel_name = "My managed bookmarks folder"; } { url = "codingcoffee.dev"; name = "CodingCoffee"; } { name = "LLM"; children = [ { url = "https://claude.ai/chats"; name = "Claude"; } { url = "https://chat.openai.com/chats"; name = "ChatGPT"; } ]; } ]; ManualAppUpdateOnly = true; # Allow manual updates only and do not notify the user about updates. NetworkPrediction = true; # Enable or disable network prediction (DNS prefetching). # NewTabPage = true; # Enable or disable the New Tab page. NoDefaultBookmarks = true; # Disable the creation of default bookmarks. OfferToSaveLogins = false; # Control whether or not Firefox offers to save passwords. Managed by KeepAss instead # OfferToSaveLoginsDefault = false; # ignored because OfferToSaveLogins is present - Set the default value for whether or not Firefox offers to save passwords. # OverrideFirstRunPage = ""; # Override the first run page. # OverridePostUpdatePage = ""; # Override the upgrade page. PasswordManagerEnabled = false; # Remove (some) access to the password manager. # PasswordManagerExceptions = []; # Prevent Firefox from saving passwords for specific sites. PDFjs = { # Disable or configure PDF.js, the built-in PDF viewer. Enabled = true; EnablePermissions = false; }; Permissions = { # Set permissions associated with camera, microphone, location, and notifications. Camera = { Allow = [ "https://meet.google.com" ]; Block = [ ]; BlockNewRequests = false; Locked = false; }; Microphone = { Allow = [ "https://meet.google.com" ]; Block = [ ]; BlockNewRequests = false; Locked = false; }; Location = { Allow = [ ]; Block = [ ]; BlockNewRequests = false; Locked = false; }; Notification = { Allow = [ ]; Block = [ ]; BlockNewRequests = false; Locked = false; }; Autoplay = { Allow = [ ]; Block = [ ]; Default = "block-audio-video"; Locked = false; }; }; PictureInPicture = { # Enable or disable Picture-in-Picture. Enabled = false; Locked = true; }; PopupBlocking = { # Configure the default pop-up window policy as well as origins for which pop-up windows are allowed. Allow = [ "https://mail.google.com" ]; Default = false; Locked = true; }; # Preferences = ""; # Set and lock preferences. # PrimaryPassword = ""; # Require or prevent using a primary (formerly master) password. PrintingEnabled = true; # Enable or disable printing. PromptForDownloadLocation = true; # Ask where to save each file before downloading. # Proxy = ""; # Configure proxy settings. # RequestedLocales = "en-US"; # Set the the list of requested locales for the application in order of preference. SearchBar = "unified"; # Set whether or not search bar is displayed. SearchSuggestEnabled = false; # Enable search suggestions. # SecurityDevices = ""; # Install PKCS #11 modules. ShowHomeButton = false; # Show the home button on the toolbar. # SSLVersionMax = ""; # Set and lock the maximum version of TLS. # SSLVersionMin = ""; # Set and lock the minimum version of TLS. StartDownloadsInTempDirectory = true; # Force downloads to start off in a local, temporary location rather than the default download directory. # SupportMenu = ""; # Add a menuitem to the help menu for specifying support information. UserMessaging = { # Don’t show certain messages to the user. WhatsNew = false; ExtensionRecommendations = true; FeatureRecommendations = true; UrlbarInterventions = true; SkipOnboarding = true; MoreFromMozilla = true; Locked = true; }; UseSystemPrintDialog = false; # Print using the system print dialog instead of print preview. # WebsiteFilter = { # Block websites from being visited. # Block = [ # "" # ]; # Exceptions = [ # "http://example.org/*" # ]; # }; # WindowsSSO = ""; # Allow Windows single sign-on for Microsoft, work, and school accounts. }; profiles = { quasar = { id = 0; name = "quasar"; isDefault = true; # to remove the file containers.json and force replace it with a symlink containersForce = true; containers = { "TheFourHorsemen" = { id = 1; color = "orange"; icon = "fingerprint"; }; "Grapevine-Ameya" = { id = 2; color = "purple"; icon = "briefcase"; }; "Grapevine" = { id = 3; color = "pink"; icon = "dollar"; }; "Trized" = { id = 5; color = "green"; icon = "tree"; }; }; # NOTE: the way to figure this out is to # 1. take a backup of the prefs.js file # 2. make the change manually in firefox setting # 3. see the diff of the backed up pref.js file with the new pref.js file # These will apply at the individual profile level. Policies apply at firefox global level settings = { # Open previous windows and tabs "browser.startup.page" = 3; # Confirm before closing multiple tabs "browser.tabs.warnOnClose" = true; # When you open a link, image or media in a new tab, switch to it # immediately within firefox, not when coming from outside of firefox "browser.tabs.loadInBackground" = true; # What should Firefox do with other files? "browser.download.always_ask_before_handling_new_types" = true; # Play DRM-controlled content "media.eme.enabled" = true; # Show search suggestions ahead of browsing history in address bar results "browser.urlbar.showSearchSuggestionsFirst" = false; # Tell websites not to sell or share my data "privacy.donottrackheader.enabled" = true; # Send websites a “Do Not Track” request "privacy.globalprivacycontrol.enabled" = true; "privacy.globalprivacycontrol.was_ever_enabled" = true; # Allow Firefox to install and run studies "app.shield.optoutstudies.enabled" = false; # Allow Firefox to send technical and interaction data to Mozilla "datareporting.healthreport.uploadEnabled" = false; # Pocket - Recommend Stories "browser.newtabpage.activity-stream.feeds.section.topstories" = false; "browser.disableResetPrompt" = true; "browser.download.panel.shown" = true; "browser.download.useDownloadDir" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.shell.checkDefaultBrowser" = false; # "browser.shell.defaultBrowserCheckCount" = 1; # "browser.startup.homepage" = "https://start.duckduckgo.com"; "browser.uiCustomization.state" = '' {"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["_3c6bf0cc-3ae2-42fb-9993-0d33104fdcaf_-browser-action","sponsorblocker_ajay_app-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action","_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_7be2ba16-0f1e-4d93-9ebc-5164397477a9_-browser-action","_c2c003ee-bd69-42a2-b0e9-6f34222cb046_-browser-action","_react-devtools-browser-action","_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action","_ublacklist-browser-action","canvasblocker_kkapsner_de-browser-action","magnolia_12_34-browser-action","jid1-bofifl9vbdl2zq_jetpack-browser-action","firefox_tampermonkey_net-browser-action","languagetool-webextension_languagetool_org-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","customizableui-special-spring1","urlbar-container","customizableui-special-spring2","downloads-button","fxa-toolbar-menu-button","_testpilot-containers-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","addon_darkreader_org-browser-action","_52bda3fd-dc48-4b3d-a7b9-58af57879f1e_-browser-action","_ddc62400-f22d-4dd3-8b4a-05837de53c2e_-browser-action","ublock0_raymondhill_net-browser-action","unified-extensions-button","_3c078156-979c-498b-8990-85f7987dd929_-browser-action","tab-stash_condordes_net-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["managed-bookmarks","import-button","personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action","_3c078156-979c-498b-8990-85f7987dd929_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_7be2ba16-0f1e-4d93-9ebc-5164397477a9_-browser-action","_c2c003ee-bd69-42a2-b0e9-6f34222cb046_-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","_react-devtools-browser-action","_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action","addon_darkreader_org-browser-action","_ublacklist-browser-action","canvasblocker_kkapsner_de-browser-action","_testpilot-containers-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action","sponsorblocker_ajay_app-browser-action","magnolia_12_34-browser-action","tab-stash_condordes_net-browser-action","jid1-bofifl9vbdl2zq_jetpack-browser-action","ublock0_raymondhill_net-browser-action","firefox_tampermonkey_net-browser-action","languagetool-webextension_languagetool_org-browser-action","_3c6bf0cc-3ae2-42fb-9993-0d33104fdcaf_-browser-action","_52bda3fd-dc48-4b3d-a7b9-58af57879f1e_-browser-action","_ddc62400-f22d-4dd3-8b4a-05837de53c2e_-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","unified-extensions-area","toolbar-menubar","TabsToolbar"],"currentVersion":20,"newElementCount":7}''; "dom.security.https_only_mode" = true; "identity.fxaccounts.enabled" = false; "privacy.trackingprotection.enabled" = true; "signon.rememberSignons" = false; # ensure hardware video decoding on ff to save battery "media.hardware-video-decoding.enabled" = true; }; search = { force = true; default = "Google"; order = [ "Google" ]; engines = { "Nix Packages" = { 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 = [ "@np" ]; }; "NixOS Wiki" = { urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; iconUpdateURL = "https://nixos.wiki/favicon.png"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ "@nw" ]; }; "Bing".metaData.hidden = true; "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias }; }; }; }; }; }; }