nix/modules/home/programs/firefox/default.nix
Ameya Shenoy 4998e822a7 feat: init
Signed-off-by: Ameya Shenoy <shenoy.ameya@gmail.com>
2024-11-11 01:48:40 +05:30

729 lines
35 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ 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
};
};
};
};
};
};
}