summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrustybee <bee@4d2.org>2026-03-07 03:29:12 +0530
committerbrustybee <bee@4d2.org>2026-03-07 03:29:12 +0530
commitb7ab4668c6dd7d6b153b9bf7ea3923ebe93f1ddd (patch)
tree3bf53c774892f46c51c3b32189cc6fcca9fb5272
parent867ecf6308390acf8188880c34e0312e75619fae (diff)
Add firefox and zen browser
-rw-r--r--common/default.nix2
-rw-r--r--common/programs/default.nix4
-rw-r--r--common/programs/firefox.nix159
-rw-r--r--common/programs/zenBrowser.nix115
-rw-r--r--flake.lock201
-rw-r--r--flake.nix4
-rw-r--r--users/bee/default.nix1
-rw-r--r--users/common.nix2
8 files changed, 486 insertions, 2 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";
+ }
+ ];
+ };
+ };
+ }
+ )
+ ];
+}
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..a53d028
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,201 @@
+{
+ "nodes": {
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": "nixpkgs-lib"
+ },
+ "locked": {
+ "lastModified": 1772408722,
+ "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_2": {
+ "inputs": {
+ "nixpkgs-lib": "nixpkgs-lib_2"
+ },
+ "locked": {
+ "lastModified": 1749398372,
+ "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1772807318,
+ "narHash": "sha256-Qjw6ILt8cb2HQQpCmWNLMZZ63wEo1KjTQt+1BcQBr7k=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "daa2c221320809f5514edde74d0ad0193ad54ed8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "mango": {
+ "inputs": {
+ "flake-parts": "flake-parts_2",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "scenefx": "scenefx"
+ },
+ "locked": {
+ "lastModified": 1772792509,
+ "narHash": "sha256-c2X+x/D8txqV5UaN6TYYh9PEXyMaWVZl4mAQ0Sl21f8=",
+ "owner": "DreamMaoMao",
+ "repo": "mango",
+ "rev": "9a17a0279c39b330d155d50282d1d2641d519dc3",
+ "type": "github"
+ },
+ "original": {
+ "owner": "DreamMaoMao",
+ "repo": "mango",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1772624091,
+ "narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "80bdc1e5ce51f56b19791b52b2901187931f5353",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-lib": {
+ "locked": {
+ "lastModified": 1772328832,
+ "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
+ "nixpkgs-lib_2": {
+ "locked": {
+ "lastModified": 1748740939,
+ "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "656a64127e9d791a334452c6b6606d17539476e2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-parts": "flake-parts",
+ "home-manager": "home-manager",
+ "mango": "mango",
+ "nixpkgs": "nixpkgs",
+ "sops-nix": "sops-nix",
+ "zen-browser": "zen-browser"
+ }
+ },
+ "scenefx": {
+ "inputs": {
+ "nixpkgs": [
+ "mango",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1750785057,
+ "narHash": "sha256-tGX6j4W91rcb+glXJo43sjPI9zQvPotonknG1BdihR4=",
+ "owner": "wlrfx",
+ "repo": "scenefx",
+ "rev": "3a6cfb12e4ba97b43326357d14f7b3e40897adfc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "wlrfx",
+ "repo": "scenefx",
+ "type": "github"
+ }
+ },
+ "sops-nix": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1772495394,
+ "narHash": "sha256-hmIvE/slLKEFKNEJz27IZ8BKlAaZDcjIHmkZ7GCEjfw=",
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "rev": "1d9b98a29a45abe9c4d3174bd36de9f28755e3ff",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "type": "github"
+ }
+ },
+ "zen-browser": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1772685307,
+ "narHash": "sha256-5xthZHeqwBeXNhnRIlxnCuaZLky0SZ6vQsxtd+eqhTU=",
+ "owner": "youwen5",
+ "repo": "zen-browser-flake",
+ "rev": "dc92d88524ee83308795bc90f6a9f1d965265aaa",
+ "type": "github"
+ },
+ "original": {
+ "owner": "youwen5",
+ "repo": "zen-browser-flake",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
index 9a13fba..100ac9a 100644
--- a/flake.nix
+++ b/flake.nix
@@ -21,6 +21,10 @@
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
+ zen-browser = {
+ url = "github:youwen5/zen-browser-flake";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
outputs =
diff --git a/users/bee/default.nix b/users/bee/default.nix
index 064ff78..fd37ca1 100644
--- a/users/bee/default.nix
+++ b/users/bee/default.nix
@@ -13,6 +13,7 @@
imports = with inputs.self.homeModules; [
../common.nix
beeMods
+ programs
];
beeMods = {
diff --git a/users/common.nix b/users/common.nix
index 6c95959..1e0670d 100644
--- a/users/common.nix
+++ b/users/common.nix
@@ -9,7 +9,7 @@
package = pkgs.git.override { withLibsecret = true; };
settings = {
user = {
- name = "beeb5k";
+ name = "brustybee";
email = "bee@4d2.org";
signingkey = "42177A22EA630575";
};