Personal Nix setup
at main 2.6 kB view raw
1{ lib, config, pkgs, helpers, ... }: 2 3with lib; 4let 5 cfg = config.modules.apps; 6in { 7 options.modules.apps.firefox = { 8 enable = mkOption { 9 default = false; 10 description = "Whether to enable Firefox."; 11 type = types.bool; 12 }; 13 }; 14 15 config.modules.apps.firefox = { 16 enable = if helpers.isLinux then (mkDefault false) else (mkForce false); 17 }; 18} // helpers.linuxAttrs { 19 config = mkIf (cfg.enable && cfg.firefox.enable) { 20 programs.firefox = { 21 enable = true; 22 package = with pkgs; (wrapFirefox (firefox-unwrapped.override { pipewireSupport = true; }) {}); 23 profiles.default = { 24 settings = { 25 "browser.aboutConfig.showWarning" = false; 26 "browser.contentblocking.category" = "strict"; 27 "browser.newtabpage.enabled" = false; 28 "browser.shell.checkDefaultBrowser" = false; 29 "privacy.annotate_channels.strict_list.enabled" = true; 30 "privacy.trackingprotection.enabled" = true; 31 "privacy.trackingprotection.socialtracking.enabled" = true; 32 "browser.startup.homepage" = "about:blank"; 33 "trailhead.firstrun.didSeeAboutWelcome" = true; 34 "media.ffmpeg.vaapi.enabled" = true; 35 "media.hardware-video-decoding.force-enabled" = true; 36 "media.hardwaremediakeys.enabled" = true; 37 "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org"; 38 "font.default.x-western" = "sans-serif"; 39 "font.name.sans-serif.x-western" = "Inter"; 40 "toolkit.legacyUserProfileCustomizations.stylesheets" = true; 41 "gfx.webrender.all" = true; 42 }; 43 }; 44 }; 45 46 systemd.user.sessionVariables = { 47 MOZ_ENABLE_WAYLAND = 1; 48 MOZ_WEBRENDER = 1; 49 NIXOS_OZONE_WL = mkDefault 1; 50 BROWSER = "firefox"; 51 }; 52 53 xdg = { 54 mimeApps = { 55 enable = mkDefault true; 56 defaultApplications = let 57 browser = [ "firefox.desktop" ]; 58 in { 59 "application/json" = browser; 60 "application/pdf" = browser; 61 "application/xml" = browser; 62 "application/xhtml+xml" = browser; 63 "application/xhtml_xml" = browser; 64 "application/x-extension-htm" = browser; 65 "application/x-extension-html" = browser; 66 "x-scheme-handler/about" = browser; 67 "x-scheme-handler/ftp" = browser; 68 "x-scheme-handler/http" = browser; 69 "x-scheme-handler/https" = browser; 70 "x-scheme-handler/unknown" = browser; 71 "text/html" = browser; 72 "text/xml" = browser; 73 }; 74 }; 75 }; 76 }; 77}