nix-configs

Personal NixOS and home-manager configuration files
Log | Files | Refs

firefox.nix (7120B)


      1 { lib, config, ... }:
      2 
      3   {
      4     programs.firefox = {
      5       enable = true;
      6       configPath = "${config.xdg.configHome}/mozilla/firefox";
      7 
      8       profiles = {
      9         default = {
     10           id = 0;
     11           name = "default";
     12           isDefault = true;
     13 
     14           settings = {
     15             # sort:start
     16             "accessibility.browsewithcaret_shortcut.enabled" = false; # disable F7 caret browsing shortcut
     17             "browser.aboutConfig.showWarning" = false; # disable about:config warning
     18             "browser.aboutwelcome.enabled" = false; # disable welcome screen
     19             "browser.ai.control.default" = "blocked"; # ai blocking
     20             "browser.ai.control.linkPreviewKeyPoints" = "blocked"; # ai blocking
     21             "browser.ai.control.pdfjsAltText" = "blocked"; # ai blocking
     22             "browser.ai.control.sidebarChatbot" = "blocked"; # ai blocking
     23             "browser.ai.control.smartTabGroups" = "blocked"; # ai blocking
     24             "browser.ai.control.smartWindow" = "blocked"; # ai blocking
     25             "browser.ai.control.translations" = "blocked"; # ai blocking
     26             "browser.discovery.containers.enabled" = false; # disable containers
     27             "browser.download.alwaysOpenPanel" = true; # show downloads when started, even after hiding button
     28             "browser.gesture.swipe.left" = "cmd_scrollLeft"; # disable trackpad swipe gestures
     29             "browser.gesture.swipe.right" = "cmd_scrollRight"; # disable trackpad swipe gestures
     30             "browser.ml.linkPreview.enabled" = false; # long press link previews
     31             "browser.newtab.extensionControlled" = true; # don't warn new tab page has changed
     32             "browser.newtab.privateAllowed" = true; # hide new tab warning in private too
     33             "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; # recommend extensions while I browse
     34             "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; # recommend features while I browse
     35             "browser.nova.enabled" = false; # disable new ugly gradient themes
     36             "browser.profiles.enabled" = false; # disable profiles
     37             "browser.search.suggest.enabled" = false; # disable search suggestions in urlbar
     38             "browser.sessionstore.resume_from_crash" = false; # don't prompt to restore the previous session on startup
     39             "browser.startup.couldRestoreSession.count" = "2"; # disable restore tabs on startup banner
     40             "browser.startup.homepage" = "https://breadcat.github.io/startpage/";
     41             "browser.tabs.groups.enabled" = false; # disable tab grouping
     42             "browser.toolbars.bookmarks.visibility" = "never"; # always hide bookmarks bar
     43             "browser.uiCustomization.state" = builtins.toJSON { placements = { "nav-bar" = [ "back-button" "forward-button" "stop-reload-button" "urlbar-container" ]; "TabsToolbar" = [ "tabbrowser-tabs" ]; }; currentVersion = 26; newElementCount = 0; }; # toolbar layout
     44             "browser.urlbar.showSearchTerms.enabled" = false; # always show address in address bar
     45             "browser.urlbar.suggest.quicksuggest.all" = false; # disable suggestions in urlbar
     46             "browser.urlbar.suggest.quicksuggest.sponsored" = false; # disable sponsored suggestions in urlbar
     47             "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
     48             "extensions.autoDisableScopes" = 0; # enable extensions by default
     49             "extensions.formautofill.creditCards.enabled" = false; # disable credit card saving
     50             "general.autoScroll" = true; # middle mouse page scroll instead of paste
     51             "media.videocontrols.picture-in-picture.enabled" = false; # disable pip entirely
     52             "media.videocontrols.picture-in-picture.video-toggle.enabled" = false; # disable pip popup
     53             "media.webspeech.synth.dont_notify_on_error" = true; # disable speech errors
     54             "media.webspeech.synth.enabled" = false; # disable speech entirely
     55             "privacy.reducePageProtection.infobar.enabled.pbmode" = false; # reloading page tracker protecion bar
     56             # sort:end
     57           };
     58 
     59           extensions = {
     60             force = true;
     61             settings = { "newtaboverride@agenedia.com".settings = { type = "homepage"; focus_website = true; }; };
     62           };
     63 
     64         };
     65       };
     66 
     67       policies = {
     68         DisableFirefoxAccounts = true;
     69         DisableFirefoxStudies = true;
     70         DisablePocket = true;
     71         DisableMasterPasswordCreation = true;
     72         DisableTelemetry = true;
     73         ExtensionSettings = {
     74           "*".installation_mode = "blocked";
     75           "uBlock0@raymondhill.net" = {
     76             installation_mode = "force_installed";
     77             install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
     78             private_browsing = true;
     79             default_area = "menupanel";
     80             "adminSettings" = builtins.toJSON {
     81               userSettings = [ [ "prefetchingDisabled" "true" ] ];
     82               selectedFilterLists = [
     83                 "ublock-filters"
     84                 "ublock-badware"
     85                 "ublock-privacy"
     86                 "ublock-unbreak"
     87                 "easylist"
     88                 "easyprivacy"
     89                 "plowe-0"
     90                 "fanboy-cookiemonster"
     91                 "ublock-cookies-easylist"
     92                 "adguard-cookies"
     93                 "ublock-annoyances"
     94               ];
     95               # externalLists = ''
     96               #   https://example.com/my-filter-list.txt
     97               # '';
     98             };
     99           };
    100           "newtaboverride@agenedia.com" = {
    101             installation_mode = "force_installed";
    102             install_url = "https://addons.mozilla.org/firefox/downloads/latest/new-tab-override/latest.xpi";
    103             private_browsing = true;
    104             default_area = "menupanel";
    105           };
    106           "CookieAutoDelete@kennydo.com" = {
    107             installation_mode = "force_installed";
    108             install_url = "https://addons.mozilla.org/firefox/downloads/latest/cookie-autodelete/latest.xpi";
    109             private_browsing = true;
    110             default_area = "menupanel";
    111           };
    112           "sponsorBlocker@ajay.app" = {
    113             installation_mode = "force_installed";
    114             install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi";
    115             private_browsing = true;
    116             default_area = "menupanel";
    117           };
    118         };
    119         UserMessaging = {
    120           "ExtensionRecommendations" = false;
    121           "FeatureRecommendations" = false;
    122           "UrlbarInterventions" = false;
    123           "FirefoxLabs" = false;
    124           "MoreFromMozzilla" = false;
    125           "SkipOnboarding" = true;
    126           "Locked" = true;
    127         };
    128       };
    129     };
    130 
    131       home.sessionVariables = {
    132         BROWSER = "firefox";
    133         MOZ_ENABLE_WAYLAND = 1;
    134       };
    135 
    136       xdg.mimeApps.defaultApplications = {
    137         "text/html" = ["firefox.desktop"];
    138         "text/xml" = ["firefox.desktop"];
    139         "x-scheme-handler/http" = ["firefox.desktop"];
    140         "x-scheme-handler/https" = ["firefox.desktop"];
    141       };
    142 
    143     }