nix/modules/home/programs/firefox/default.nix

730 lines
35 KiB
Nix
Raw Normal View History

{ 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; # Dont 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 = { # Dont 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 = [
# "<all_urls>"
# ];
# 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
};
};
};
};
};
};
}