From 1c36018092f18d40a10da9bd6b0dbe2ea450ce46 Mon Sep 17 00:00:00 2001 From: "Chinmay D. Pai" Date: Wed, 9 Oct 2024 18:12:59 +0530 Subject: [PATCH] feat: add firefox home module * move existing firefox setup from thonkpad to a home module * move firefox-specific environment variable to the home module Signed-off-by: Chinmay D. Pai --- homes/x86_64-linux/chnmy@thonkpad/default.nix | 166 +---------------- modules/home/desktop/firefox/default.nix | 176 ++++++++++++++++++ modules/nixos/desktop/default.nix | 2 - 3 files changed, 177 insertions(+), 167 deletions(-) create mode 100644 modules/home/desktop/firefox/default.nix diff --git a/homes/x86_64-linux/chnmy@thonkpad/default.nix b/homes/x86_64-linux/chnmy@thonkpad/default.nix index c02eeef..6a316fd 100644 --- a/homes/x86_64-linux/chnmy@thonkpad/default.nix +++ b/homes/x86_64-linux/chnmy@thonkpad/default.nix @@ -1,6 +1,5 @@ { config, - lib, pkgs, ... }: { @@ -8,6 +7,7 @@ snowfallorg.user.name = "chnmy"; snowflake.desktop.wezterm.enable = true; + snowflake.desktop.firefox.enable = true; snowflake.development.git.enable = true; snowflake.development.git.user = { @@ -29,170 +29,6 @@ snowflake.development.tmux.enable = true; snowflake.shell.fish.enable = true; - programs.firefox = { - enable = true; - policies = { - DisableFirefoxStudies = true; - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - OfferToSaveLoginsDefault = false; - DisableTelemetry = true; - DisablePocket = true; - DisableFirefoxAccounts = true; - OverrideFirstRunPage = ""; - OverridePostUpdatePage = ""; - DontCheckDefaultBrowser = true; - DisplayMenuBar = "default-off"; - SearchBar = "unified"; - NoDefaultBookmarks = true; - DisplayBookmarksToolbar = "never"; - Preferences = let - lock-false = { - Value = false; - Status = "locked"; - }; - lock-true = { - Value = false; - Status = "locked"; - }; - lock-empty-string = { - Value = false; - Status = "locked"; - }; - in { - "toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true; - - # Remove poluting defaults - "extensions.pocket.enabled" = lock-false; - - # Remove default top sites - "browser.topsites.contile.enabled" = lock-false; - "browser.urlbar.suggest.topsites" = lock-false; - - # Remove sponsored sites - "browser.newtabpage.pinned" = lock-empty-string; - "browser.newtabpage.activity-stream.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; - - # Remove firefox shiny buttons - "browser.tabs.firefox-view" = false; - "browser.tabs.firefox-view-next" = false; - # Style - "browser.compactmode.show" = lock-true; - "browser.uidensity" = { - Value = 1; - Status = "locked"; - }; - # Fonts - make web pages follow system font - "browser.display.use_document_fonts" = { - Value = 1; - Status = "locked"; - }; - }; - }; - profiles.ff = { - extensions = with config.nur.repos.rycee.firefox-addons; [ - bitwarden - clearurls - duckduckgo-privacy-essentials - reddit-enhancement-suite - sponsorblock - ublock-origin - ]; - bookmarks = {}; - settings = { - "browser.startup.homepage" = "about:home"; - - # Disable irritating first-run stuff - "browser.disableResetPrompt" = true; - "browser.download.panel.shown" = true; - "browser.feeds.showFirstRunUI" = false; - "browser.messaging-system.whatsNewPanel.enabled" = false; - "browser.rights.3.shown" = true; - "browser.shell.checkDefaultBrowser" = false; - "browser.shell.defaultBrowserCheckCount" = 1; - "browser.startup.homepage_override.mstone" = "ignore"; - "browser.uitour.enabled" = false; - "startup.homepage_override_url" = ""; - "trailhead.firstrun.didSeeAboutWelcome" = true; - "browser.bookmarks.restore_default_bookmarks" = false; - "browser.bookmarks.addedImportButton" = true; - - # Don't ask for download dir - "browser.download.useDownloadDir" = false; - - # Disable crappy home activity stream page - "browser.newtabpage.activity-stream.feeds.topsites" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false; - "browser.newtabpage.blocked" = lib.genAttrs [ - # Youtube - "26UbzFJ7qT9/4DhodHKA1Q==" - # Facebook - "4gPpjkxgZzXPVtuEoAL9Ig==" - # Wikipedia - "eV8/WsSLxHadrTL1gAxhug==" - # Reddit - "gLv0ja2RYVgxKdp0I5qwvA==" - # Amazon - "K00ILysCaEq8+bEqV/3nuw==" - # Twitter - "T9nJot5PurhJSy8n038xGA==" - ] (_: 1); - - # Disable some telemetry - "app.shield.optoutstudies.enabled" = false; - "browser.discovery.enabled" = false; - "browser.newtabpage.activity-stream.feeds.telemetry" = false; - "browser.newtabpage.activity-stream.telemetry" = false; - "browser.ping-centre.telemetry" = false; - "datareporting.healthreport.service.enabled" = false; - "datareporting.healthreport.uploadEnabled" = false; - "datareporting.policy.dataSubmissionEnabled" = false; - "datareporting.sessions.current.clean" = true; - "devtools.onboarding.telemetry.logged" = false; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.bhrPing.enabled" = false; - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.hybridContent.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; - "toolkit.telemetry.prompted" = 2; - "toolkit.telemetry.rejected" = true; - "toolkit.telemetry.reportingpolicy.firstRun" = false; - "toolkit.telemetry.server" = ""; - "toolkit.telemetry.shutdownPingSender.enabled" = false; - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.unifiedIsOptIn" = false; - "toolkit.telemetry.updatePing.enabled" = false; - - # Disable fx accounts - "identity.fxaccounts.enabled" = false; - # Disable "save password" prompt - "signon.rememberSignons" = false; - # Harden - "privacy.trackingprotection.enabled" = true; - "dom.security.https_only_mode" = true; - "browser.tabs.loadInBackground" = true; - "gfx.canvas.accelerated" = true; - "gfx.webrender.enabled" = true; - "gfx.x11-egl.force-enabled" = true; - "layers.acceleration.force-enabled" = true; - "media.av1.enabled" = false; - "media.ffmpeg.vaapi.enabled" = true; - "media.hardware-video-decoding.force-enabled" = true; - "media.rdd-ffmpeg.enabled" = true; - "widget.dmabuf.force-enabled" = true; - "svg.context-properties.content.enabled" = true; - }; - }; - }; - home.packages = [ pkgs.mpv ]; diff --git a/modules/home/desktop/firefox/default.nix b/modules/home/desktop/firefox/default.nix new file mode 100644 index 0000000..88bbd94 --- /dev/null +++ b/modules/home/desktop/firefox/default.nix @@ -0,0 +1,176 @@ +{ + config, + lib, + ... +}: { + options.snowflake.desktop.firefox.enable = lib.mkEnableOption "Enable firefox home configuration"; + + config = lib.mkIf config.snowflake.desktop.firefox.enable { + programs.firefox = { + enable = true; + policies = { + DisableFirefoxStudies = true; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + OfferToSaveLoginsDefault = false; + DisableTelemetry = true; + DisablePocket = true; + DisableFirefoxAccounts = true; + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + DontCheckDefaultBrowser = true; + DisplayMenuBar = "default-off"; + SearchBar = "unified"; + NoDefaultBookmarks = true; + DisplayBookmarksToolbar = "never"; + Preferences = let + lock-false = { + Value = false; + Status = "locked"; + }; + lock-true = { + Value = false; + Status = "locked"; + }; + lock-empty-string = { + Value = false; + Status = "locked"; + }; + in { + "toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true; + + # Remove poluting defaults + "extensions.pocket.enabled" = lock-false; + + # Remove default top sites + "browser.topsites.contile.enabled" = lock-false; + "browser.urlbar.suggest.topsites" = lock-false; + + # Remove sponsored sites + "browser.newtabpage.pinned" = lock-empty-string; + "browser.newtabpage.activity-stream.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; + + # Remove firefox shiny buttons + "browser.tabs.firefox-view" = false; + "browser.tabs.firefox-view-next" = false; + # Style + "browser.compactmode.show" = lock-true; + "browser.uidensity" = { + Value = 1; + Status = "locked"; + }; + # Fonts - make web pages follow system font + "browser.display.use_document_fonts" = { + Value = 1; + Status = "locked"; + }; + }; + }; + profiles.ff = { + extensions = with config.nur.repos.rycee.firefox-addons; [ + bitwarden + clearurls + duckduckgo-privacy-essentials + reddit-enhancement-suite + sponsorblock + ublock-origin + ]; + bookmarks = {}; + settings = { + "browser.startup.homepage" = "about:home"; + + # Disable irritating first-run stuff + "browser.disableResetPrompt" = true; + "browser.download.panel.shown" = true; + "browser.feeds.showFirstRunUI" = false; + "browser.messaging-system.whatsNewPanel.enabled" = false; + "browser.rights.3.shown" = true; + "browser.shell.checkDefaultBrowser" = false; + "browser.shell.defaultBrowserCheckCount" = 1; + "browser.startup.homepage_override.mstone" = "ignore"; + "browser.uitour.enabled" = false; + "startup.homepage_override_url" = ""; + "trailhead.firstrun.didSeeAboutWelcome" = true; + "browser.bookmarks.restore_default_bookmarks" = false; + "browser.bookmarks.addedImportButton" = true; + + # Don't ask for download dir + "browser.download.useDownloadDir" = false; + + # Disable crappy home activity stream page + "browser.newtabpage.activity-stream.feeds.topsites" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false; + "browser.newtabpage.blocked" = lib.genAttrs [ + # Youtube + "26UbzFJ7qT9/4DhodHKA1Q==" + # Facebook + "4gPpjkxgZzXPVtuEoAL9Ig==" + # Wikipedia + "eV8/WsSLxHadrTL1gAxhug==" + # Reddit + "gLv0ja2RYVgxKdp0I5qwvA==" + # Amazon + "K00ILysCaEq8+bEqV/3nuw==" + # Twitter + "T9nJot5PurhJSy8n038xGA==" + ] (_: 1); + + # Disable some telemetry + "app.shield.optoutstudies.enabled" = false; + "browser.discovery.enabled" = false; + "browser.newtabpage.activity-stream.feeds.telemetry" = false; + "browser.newtabpage.activity-stream.telemetry" = false; + "browser.ping-centre.telemetry" = false; + "datareporting.healthreport.service.enabled" = false; + "datareporting.healthreport.uploadEnabled" = false; + "datareporting.policy.dataSubmissionEnabled" = false; + "datareporting.sessions.current.clean" = true; + "devtools.onboarding.telemetry.logged" = false; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.bhrPing.enabled" = false; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.firstShutdownPing.enabled" = false; + "toolkit.telemetry.hybridContent.enabled" = false; + "toolkit.telemetry.newProfilePing.enabled" = false; + "toolkit.telemetry.prompted" = 2; + "toolkit.telemetry.rejected" = true; + "toolkit.telemetry.reportingpolicy.firstRun" = false; + "toolkit.telemetry.server" = ""; + "toolkit.telemetry.shutdownPingSender.enabled" = false; + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.unifiedIsOptIn" = false; + "toolkit.telemetry.updatePing.enabled" = false; + + # Disable fx accounts + "identity.fxaccounts.enabled" = false; + # Disable "save password" prompt + "signon.rememberSignons" = false; + # Harden + "privacy.trackingprotection.enabled" = true; + "dom.security.https_only_mode" = true; + "browser.tabs.loadInBackground" = true; + "gfx.canvas.accelerated" = true; + "gfx.webrender.enabled" = true; + "gfx.x11-egl.force-enabled" = true; + "layers.acceleration.force-enabled" = true; + "media.av1.enabled" = false; + "media.ffmpeg.vaapi.enabled" = true; + "media.hardware-video-decoding.force-enabled" = true; + "media.rdd-ffmpeg.enabled" = true; + "widget.dmabuf.force-enabled" = true; + "svg.context-properties.content.enabled" = true; + }; + }; + }; + }; + + # Run firefox in wayland. + home.sessionVariables.MOZ_ENABLE_WAYLAND = "1"; +} diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index b8254d9..7be461c 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -78,8 +78,6 @@ WLR_DRM_NO_ATOMIC = "1"; QT_AUTO_SCREEN_SCALE_FACTOR = "1"; QT_QPA_PLATFORM = "wayland;xcb"; - # Run firefox in wayland. - MOZ_ENABLE_WAYLAND = "1"; WLR_BACKEND = "vulkan"; WLR_RENDERER = "vulkan"; XDG_SESSION_TYPE = "wayland";