From 464da9f44f5389e877ab60f11cd7c81ab5bd5db0 Mon Sep 17 00:00:00 2001 From: wi11-holdsworth <83637728+wi11-holdsworth@users.noreply.github.com> Date: Thu, 2 Oct 2025 14:46:50 +1000 Subject: [PATCH] feat: install and configure zen --- flake.lock | 45 +++++++++++- flake.nix | 6 ++ modules/home-manager/bundles/desktop.nix | 1 + modules/home-manager/features/zen-browser.nix | 72 +++++++++++++++++++ 4 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 modules/home-manager/features/zen-browser.nix diff --git a/flake.lock b/flake.lock index 873a7ff..ca5d548 100644 --- a/flake.lock +++ b/flake.lock @@ -159,6 +159,27 @@ "type": "github" } }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "zen-browser", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1752603129, + "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "ixx": { "inputs": { "flake-utils": [ @@ -270,7 +291,8 @@ "copyparty": "copyparty", "home-manager": "home-manager_2", "nixpkgs": "nixpkgs_2", - "nixvim": "nixvim" + "nixvim": "nixvim", + "zen-browser": "zen-browser" } }, "systems": { @@ -317,6 +339,27 @@ "repo": "default", "type": "github" } + }, + "zen-browser": { + "inputs": { + "home-manager": "home-manager_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1759353433, + "narHash": "sha256-g3+737nvjYu3WrxLOiW6Wwtu4Ncdsy1KW9AGSTfzGOM=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "480746c469a2e14551c73940bd096aa9a9cc7cbd", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 9083e5b..f7ef7f8 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,10 @@ url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # keep-sorted end }; @@ -25,6 +29,7 @@ nixpkgs, home-manager, agenix, + zen-browser, ... }@inputs: let @@ -43,6 +48,7 @@ users.${userName}.imports = [ ./hosts/${hostName}/home.nix agenix.homeManagerModules.default + zen-browser.homeModules.twilight ]; backupFileExtension = "backup"; extraSpecialArgs = { diff --git a/modules/home-manager/bundles/desktop.nix b/modules/home-manager/bundles/desktop.nix index c7365cb..6b2c63e 100644 --- a/modules/home-manager/bundles/desktop.nix +++ b/modules/home-manager/bundles/desktop.nix @@ -14,6 +14,7 @@ in mail.enable = true; obsidian.enable = true; zellij.enable = true; + zen-browser.enable = true; # keep-sorted end }; diff --git a/modules/home-manager/features/zen-browser.nix b/modules/home-manager/features/zen-browser.nix new file mode 100644 index 0000000..b5f5628 --- /dev/null +++ b/modules/home-manager/features/zen-browser.nix @@ -0,0 +1,72 @@ +{ + config, + lib, + ... +}: +let + feature = "zen-browser"; +in +{ + config = lib.mkIf config.${feature}.enable { + programs.zen-browser = { + enable = true; + policies = + let + mkLockedAttrs = builtins.mapAttrs ( + _: value: { + Value = value; + Status = "locked"; + } + ); + mkExtensionSettings = builtins.mapAttrs ( + _: pluginId: { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/${pluginId}/latest.xpi"; + installation_mode = "force_installed"; + } + ); + in + { + # keep-sorted start block=yes + AutofillCreditCardEnabled = false; + NoDefaultBookmarks = true; + OfferToSaveLogins = false; + EnableTrackingProtection = { + Value = true; + Category = "strict"; + }; + RequestedLocales = [ + "en-AU" + "en-GB" + "en-US" + ]; + ExtensionSettings = mkExtensionSettings { + "uBlock0@raymondhill.net" = "ublock-origin"; + "{446900e4-71c2-419f-a6a7-df9c091e268b}" = "bitwarden-password-manager"; + "sponsorBlocker@ajay.app" = "sponsor-block"; + "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = "return-youtube-dislikes"; + "deArrow@ajay.app" = "dearrow"; + }; + SearchEngines = { + Default = "duckduckgo"; + DefaultPrivate = "duckduckgo"; + }; + Preferences = mkLockedAttrs { + "intl.accept_languages" = "en-AU,en-GB,en-US,en"; + "general.autoScroll" = true; + # disable google safebrowsing + "browser.safebrowsing.malware.enabled" = false; + "browser.safebrowsing.phishing.enabled" = false; + "browser.warnOnQuit" = false; + "browser.tabs.warnOnClose" = false; + # continue where you left off + "browser.startup.page" = 3; + }; + HttpsOnlyMode = "enabled"; + SearchSuggestEnabled = true; + # keep-sorted end + }; + }; + }; + + options.${feature}.enable = lib.mkEnableOption "enables ${feature}"; +}