diff options
Diffstat (limited to 'common')
| -rw-r--r-- | common/default.nix | 2 | ||||
| -rw-r--r-- | common/programs/default.nix | 4 | ||||
| -rw-r--r-- | common/programs/firefox.nix | 159 | ||||
| -rw-r--r-- | common/programs/zenBrowser.nix | 115 |
4 files changed, 279 insertions, 1 deletions
diff --git a/common/default.nix b/common/default.nix index c6d3f68..6f1f7b4 100644 --- a/common/default.nix +++ b/common/default.nix @@ -5,5 +5,5 @@ inputs: (lib.modules.importApply ./modules { inherit inputs; }) ]; # flake.templates = import ./templates inputs; - # flake.homeModules.programs = import ./programs; + flake.homeModules.programs = import ./programs; } diff --git a/common/programs/default.nix b/common/programs/default.nix new file mode 100644 index 0000000..d170adb --- /dev/null +++ b/common/programs/default.nix @@ -0,0 +1,4 @@ +{ importer, ... }: +{ + imports = importer ./.; +} diff --git a/common/programs/firefox.nix b/common/programs/firefox.nix new file mode 100644 index 0000000..b63fc8d --- /dev/null +++ b/common/programs/firefox.nix @@ -0,0 +1,159 @@ +{ + pkgs, + lib, + config, + ... +}: +{ + programs.firefox = { + enable = false; + + policies = { + DisableTelemetry = true; + BlockAboutConfig = false; + DisableFirefoxAccounts = true; + DisablePocket = true; + DisableSetDesktopBackground = true; + DisableSystemAddonUpdate = true; + AutofillCreditCardEnabled = false; + AutofillAddressEnabled = false; + DisableFirefoxScreenshots = true; + DisableMasterPasswordCreation = true; + DontCheckDefaultBrowser = true; + NoDefaultBookmarks = true; + OfferToSaveLogins = false; + UserMessaging = { + WhatsNew = false; + ExtensionRecommendations = false; + FeatureRecommendations = false; + UrlbarInterventions = false; + SkipOnboarding = true; + MoreFromMozilla = false; + Locked = true; + }; + FirefoxHome = { + Search = false; + TopSites = false; + SponsoredTopSites = false; + Highlights = false; + Pocket = false; + Stories = false; + SponsoredPocket = false; + SponsoredStories = false; + Snippets = false; + Locked = true; + }; + FirefoxSuggest = { + WebSuggestions = false; + SponsoredSuggestions = false; + ImproveSuggest = false; + Locked = true; + }; + ExtensionSettings = { + "uBlock0@raymondhill.net" = { + default_area = "menupanel"; + installation_mode = "force_installed"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + private_browsing = true; + }; + # "addon@darkreader.org" = { + # installation_mode = "force_installed"; + # install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; + # }; + } + // lib.optionalAttrs config.hyprland.enable { + "pywalfox@frewacom.org" = { + installation_mode = "force_installed"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/pywalfox/latest.xpi"; + }; + }; + }; + + profiles.default = { + settings = { + # Always start fresh, no tab restore + "browser.aboutConfig.showWarning" = false; + "browser.sessionstore.resume_from_crash" = false; + "browser.sessionstore.restore_on_demand" = false; + "browser.sessionstore.max_tabs_undo" = 0; + "browser.sessionstore.max_windows_undo" = 0; + + # "userChrome.theme-material" = true; + + # "browser.startup.page" = 1; # Blank page + # "browser.newtabpage.enabled" = false; + + "privacy.trackingprotection.enabled" = true; + "privacy.trackingprotection.socialtracking.enabled" = true; + "privacy.globalprivacycontrol.enabled" = true; + "network.cookie.cookieBehavior" = 2; # Block all cookies + "browser.contentblocking.category" = "strict"; + + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + "svg.context-properties.content.enabled" = true; + + # "beacon.enabled" = false; + + # Performance + "gfx.webrender.all" = true; # Enable WebRender + "layers.acceleration.enabled" = true; + # "dom.ipc.processCount" = 8; # Adjust based on CPU cores + "browser.cache.disk.enable" = false; # Disable disk cache + "browser.cache.memory.enable" = true; # Use memory cache + "browser.cache.memory.capacity" = 1048576; # 1gb memory cache + "browser.preferences.defaultPerformanceSettings.enabled" = false; + "media.hardware-video-decoding.force-enabled" = true; + "media.hardware-video-decoding.enabled" = true; + "browser.tabs.unloadOnLowMemory" = true; + "browser.low_commit_space_threshold_percent" = 100; + "browser.tabs.min_inactive_duration_before_unload" = 3600000; + + # Disable unnecessary features + "browser.aboutwelcome.enabled" = false; + "browser.discovery.enabled" = false; + "browser.onboarding.enabled" = false; + + "browser.tabs.inTitlebar" = 0; + "browser.toolbars.bookmarks.visibility" = "never"; + "widget.use-xdg-desktop-portal.file-picker" = 1; + }; + + search = { + force = true; + default = "ddg"; + engines = { + duck-duck-go = { + name = "DuckDuckGo"; + urls = [ { template = "https://duckduckgo.com/?q={searchTerms}"; } ]; + iconMapObj."16" = "https://duckduckgo.com/favicon.ico"; + definedAliases = [ ":ddg" ]; + }; + startpage = { + name = "Startpage"; + urls = [ { template = "https://www.startpage.com/do/search?query={searchTerms}"; } ]; + iconMapObj."16" = "https://www.startpage.com/favicon.ico"; + definedAliases = [ ":sp" ]; + }; + nixos-packages = { + name = "NixOS Packages"; + urls = [ { template = "https://search.nixos.org/packages?query={searchTerms}"; } ]; + iconMapObj."16" = "https://nixos.org/favicon.ico"; + definedAliases = [ ":n" ]; + }; + nixos-wiki = { + name = "NixOS Wiki"; + urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ]; + iconMapObj."16" = "https://wiki.nixos.org/favicon.ico"; + definedAliases = [ ":nw" ]; + }; + amazon.metaData.hidden = true; + ebay.metaData.hidden = true; + perplexity.metaData.hidden = true; + + google.metaData.alias = ":g"; + bing.metaData.alias = ":b"; + }; + }; + }; + }; +} diff --git a/common/programs/zenBrowser.nix b/common/programs/zenBrowser.nix new file mode 100644 index 0000000..60a4ae3 --- /dev/null +++ b/common/programs/zenBrowser.nix @@ -0,0 +1,115 @@ +{ + inputs, + pkgs, + lib, + ... +}: +let + extension = shortId: guid: { + name = guid; + value = { + install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi"; + installation_mode = "normal_installed"; + private_browsing = true; + default_area = "menupanel"; # menupanel = unpin, navbar = pin + }; + }; + + prefs = { + "browser.aboutConfig.showWarning" = false; + "browser.sessionstore.resume_from_crash" = false; + "browser.sessionstore.restore_on_demand" = false; + "browser.sessionstore.restore_tabs_lazily" = false; + "browser.sessionstore.restore_windows_to_virtual_desktop" = false; + "browser.sessionstore.max_resumed_crashes" = 0; + "gfx.webrender.all" = true; + "gfx.webrender.compositor" = true; + "gfx.x11-egl.force-enabled" = true; + "layers.acceleration.force-enabled" = true; + "media.ffmpeg.vaapi.enabled" = true; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + "zen.welcome-screen.seen" = true; + }; + + extensions = [ + (extension "ublock-origin" "uBlock0@raymondhill.net") + (extension "darkreader" "addon@darkreader.org") + ]; +in +{ + home.packages = [ + (pkgs.wrapFirefox + inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped + { + extraPrefs = lib.concatLines ( + lib.mapAttrsToList ( + name: value: "lockPref(${lib.strings.toJSON name}, ${lib.strings.toJSON value});" + ) prefs + ); + + extraPolicies = { + DisableTelemetry = true; + AutofillAddressEnabled = true; + AutofillCreditCardEnabled = false; + DisableAppUpdate = true; + DisableFeedbackCommands = true; + DisableFirefoxStudies = true; + DisablePocket = true; + DontCheckDefaultBrowser = true; + NoDefaultBookmarks = true; + DisableFirefoxScreenshots = true; + OfferToSaveLogins = false; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + DNSOverHTTPS = { + Enabled = true; + ProviderURL = "https://dns.quad9.net/dns-query"; + Locked = true; + Fallback = true; + }; + + ExtensionSettings = builtins.listToAttrs extensions; + + SearchEngines = { + Default = "DuckDuckGo"; + PreventInstalls = true; + Remove = [ + "Google" + "Bing" + ]; + Add = [ + { + Name = "nixpkgs packages"; + URLTemplate = "https://search.nixos.org/packages?query={searchTerms}"; + IconURL = "https://wiki.nixos.org/favicon.ico"; + Alias = ":np"; + } + { + Name = "NixOS options"; + URLTemplate = "https://search.nixos.org/options?query={searchTerms}"; + IconURL = "https://wiki.nixos.org/favicon.ico"; + Alias = ":no"; + } + { + Name = "NixOS Wiki"; + URLTemplate = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; + IconURL = "https://wiki.nixos.org/favicon.ico"; + Alias = ":nw"; + } + { + Name = "noogle"; + URLTemplate = "https://noogle.dev/q?term={searchTerms}"; + IconURL = "https://noogle.dev/favicon.ico"; + Alias = ":ng"; + } + ]; + }; + }; + } + ) + ]; +} |
