summaryrefslogtreecommitdiff
path: root/common/programs
diff options
context:
space:
mode:
Diffstat (limited to 'common/programs')
-rw-r--r--common/programs/default.nix4
-rw-r--r--common/programs/firefox.nix159
-rw-r--r--common/programs/zenBrowser.nix115
3 files changed, 278 insertions, 0 deletions
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";
+ }
+ ];
+ };
+ };
+ }
+ )
+ ];
+}