{ pkgs, lib, stdenv, specialArgs, ... }: let extensions = with specialArgs.ff-addons; [ bitwarden darkreader i-dont-care-about-cookies privacy-badger ublock-origin tree-style-tab tridactyl ]; customChrome = '' @-moz-document url(chrome://browser/content/browser.xhtml) { /* tabs on bottom of window */ /* requires that you set * toolkit.legacyUserProfileCustomizations.stylesheets = true * in about:config */ #main-window body { flex-direction: column-reverse !important; } #navigator-toolbox { flex-direction: column-reverse !important; } #urlbar { top: unset !important; bottom: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2) !important; box-shadow: none !important; display: flex !important; flex-direction: column !important; } #urlbar-input-container { order: 2; } #urlbar > .urlbarView { order: 1; border-bottom: 1px solid #666; } #urlbar-results { display: flex; flex-direction: column-reverse; } .search-one-offs { display: none !important; } .tab-background { border-top: none !important; } #navigator-toolbox::after { border: none; } #TabsToolbar .tabbrowser-arrowscrollbox, #tabbrowser-tabs, .tab-stack { min-height: 28px !important; } .tabbrowser-tab { font-size: 80%; } .tab-content { padding: 0 5px; } .tab-close-button .toolbarbutton-icon { width: 12px !important; height: 12px !important; } toolbox[inFullscreen=true] { display: none; } } ''; userChrome = customChrome; # ~/.mozilla/firefox/PROFILE_NAME/prefs.js | user.js settings = { "app.normandy.first_run" = false; "app.shield.optoutstudies.enabled" = false; # disable updates (pretty pointless with nix) "app.update.channel" = "default"; "browser.contentblocking.category" = "standard"; # "strict" "browser.ctrlTab.recentlyUsedOrder" = false; "browser.download.viewableInternally.typeWasRegistered.svg" = true; "browser.download.viewableInternally.typeWasRegistered.webp" = true; "browser.download.viewableInternally.typeWasRegistered.xml" = true; "browser.search.region" = "DE"; "browser.shell.checkDefaultBrowser" = false; "browser.tabs.loadInBackground" = true; "browser.urlbar.placeholderName" = "EnteEnteLauf"; "browser.urlbar.showSearchSuggestionsFirst" = false; # disable all the annoying quick actions "browser.urlbar.quickactions.enabled" = false; "browser.urlbar.quickactions.showPrefs" = false; "browser.urlbar.shortcuts.quickactions" = false; "browser.urlbar.suggest.quickactions" = false; "distribution.searchplugins.defaultLocale" = "en-US"; "doh-rollout.balrog-migration-done" = true; "doh-rollout.doneFirstRun" = true; "general.useragent.locale" = "en-US"; "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org"; "extensions.extensions.activeThemeID" = "firefox-compact-dark@mozilla.org"; "extensions.update.enabled" = false; "extensions.webcompat.enable_picture_in_picture_overrides" = true; "extensions.webcompat.enable_shims" = true; "extensions.webcompat.perform_injections" = true; "extensions.webcompat.perform_ua_overrides" = true; "privacy.donottrackheader.enabled" = true; "browser.translations.enable" = false; # Yubikey "security.webauth.u2f" = true; "security.webauth.webauthn" = true; "security.webauth.webauthn_enable_softtoken" = false; "security.webauth.webauthn_enable_usbtoken" = true; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; "layout.word_select.stop_at_punctuation" = false; }; in { programs.firefox = { enable = true; package = pkgs.firefox-bin; profiles = { default = { isDefault = true; id = 0; inherit extensions settings userChrome; }; }; }; }