nix-configs

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

firefox.nix (2333B)


      1 { config, pkgs, ... }:
      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           "browser.aboutConfig.showWarning" = false;
     16           "browser.toolbars.bookmarks.visibility" = "never";
     17           "browser.ml.linkPreview.enabled" = false; # long press link previews
     18           "browser.tabs.groups.enabled" = false;
     19           "browser.newtab.extensionControlled" = true; # don't warn new tab page has changed
     20           "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; # recommend extensions while I browse
     21           "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; # recommend features while I browse
     22           "browser.startup.couldRestoreSession.count" = "2"; # restore tabs on startup banner
     23           "browser.startup.homepage" = "https://breadcat.github.io/startpage/";
     24           "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
     25           "extensions.autoDisableScopes" = 0; # enable extensions by default
     26           "general.autoScroll" = true; # middle mouse page scroll instead of paste
     27           "media.videocontrols.picture-in-picture.enabled" = false; # disable pip entirely
     28           "media.videocontrols.picture-in-picture.video-toggle.enabled" = false; # disable pip popup
     29         };
     30 
     31         extensions = {
     32           packages = with pkgs.nur.repos.rycee.firefox-addons; [
     33             cookie-autodelete
     34             new-tab-override
     35             ublock-origin
     36           ];
     37 
     38         };
     39 
     40       };
     41     };
     42 
     43     policies = {
     44       DisableFirefoxAccounts = true;
     45       DisableFirefoxStudies = true;
     46       DisablePocket = true;
     47       DisableTelemetry = true;
     48     };
     49   };
     50 
     51 
     52   wayland.windowManager.hyprland.extraConfig = ''
     53     hl.bind("SUPER + W", hl.dsp.exec_cmd("firefox"))
     54     hl.bind("SUPER + SHIFT + W", hl.dsp.exec_cmd("firefox -private-window"))
     55   '';
     56 
     57   home.sessionVariables = {
     58     BROWSER = "firefox";
     59     MOZ_ENABLE_WAYLAND = 1;
     60   };
     61 
     62   xdg.mimeApps.defaultApplications = {
     63     "text/html" = ["firefox.desktop"];
     64     "text/xml" = ["firefox.desktop"];
     65     "x-scheme-handler/http" = ["firefox.desktop"];
     66     "x-scheme-handler/https" = ["firefox.desktop"];
     67   };
     68 
     69 }