diff --git a/flake.lock b/flake.lock index 43dad4a..1d294ff 100644 --- a/flake.lock +++ b/flake.lock @@ -60,7 +60,31 @@ "inputs": { "home-manager": "home-manager", "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "zen-browser": "zen-browser" + } + }, + "zen-browser": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1765895443, + "narHash": "sha256-yftYGV0skUwV5neT1BJrs7RRbXPKozQTzC7d9c7kEFs=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "bc7dfff92cb7919dfb213ea78c11ea0a4d265a56", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 3e3a05d..911cf7d 100644 --- a/flake.nix +++ b/flake.nix @@ -16,6 +16,16 @@ url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; + + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs = { + # IMPORTANT: we're using "libgbm" and is only available in unstable so ensure + # to have it up-to-date or simply don't specify the nixpkgs input + nixpkgs.follows = "nixpkgs"; + home-manager.follows = "home-manager"; + }; + }; }; outputs = { @@ -102,4 +112,4 @@ }; }); }; -} \ No newline at end of file +} diff --git a/home/default.nix b/home/default.nix index 2cb6a32..7e3cb83 100644 --- a/home/default.nix +++ b/home/default.nix @@ -7,10 +7,13 @@ pkgs, lib, username, + inputs, ... }: { # Import shared modules imports = [ + inputs.zen-browser.homeModules.beta + # Shell configuration (zsh, starship, atuin, direnv, zoxide, fzf, pyenv) ../modules/home/shell.nix @@ -80,4 +83,4 @@ aerospace.enable = true; # jellyfin-tui is configured per-profile in personal.nix }; -} \ No newline at end of file +} diff --git a/modules/home/apps.nix b/modules/home/apps.nix index f9b402e..16ff524 100644 --- a/modules/home/apps.nix +++ b/modules/home/apps.nix @@ -64,6 +64,41 @@ in { }; config = lib.mkIf cfg.enable { + programs.zen-browser = lib.mkIf cfg.zen-browser.enable { + enable = true; + policies = let + mkExtensionSettings = builtins.mapAttrs (_: pluginId: { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/${pluginId}/latest.xpi"; + installation_mode = "force_installed"; + }); + in { + AutofillAddressEnabled = true; + AutofillCreditCardEnabled = false; + DisableAppUpdate = true; + DisableFeedbackCommands = true; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DontCheckDefaultBrowser = true; + NoDefaultBookmarks = true; + OfferToSaveLogins = false; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + + ExtensionSettings = mkExtensionSettings { + "78272b6fa58f4a1abaac99321d503a20@proton.me" = "proton-pass"; + "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = "vimium-ff"; + "readeck@readeck.com" = "readeck"; + "@testpilot-containers" = "multi-account-containers"; + "uBlock0@raymondhill.net" = "ublock-origin"; + }; + }; + }; + # Aerospace window manager configuration (macOS) # Placed at ~/.aerospace.toml home.file = lib.mkMerge [ diff --git a/modules/home/packages.nix b/modules/home/packages.nix index 3b18b13..6d20da1 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -30,6 +30,7 @@ duf # A better df alternative hyperfine # A command-line benchmarking tool. choose # A human-friendly and fast alternative to cut and (sometimes) awk + coreutils yazi # File manager # ======================================================================== @@ -88,6 +89,7 @@ k9s # Kubernetes TUI istioctl # Istio service mesh CLI fluxcd # GitOps toolkit + popeye # # ======================================================================== # Infrastructure and Cloud Tools diff --git a/modules/home/shell.nix b/modules/home/shell.nix index 0563bf5..ce11c90 100644 --- a/modules/home/shell.nix +++ b/modules/home/shell.nix @@ -69,9 +69,6 @@ "--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc" "--color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8" ]; - - # NVM directory - NVM_DIR = "$HOME/.nvm"; }; # Shell aliases (migrated from 01-env.sh and 01-nvim.sh) @@ -237,12 +234,6 @@ enableZshIntegration = true; }; - # ========================================================================== - # NVM - Node Version Manager - # ========================================================================== - # NVM is installed via Homebrew and sourced in the shell - # This allows managing multiple Node.js versions per project - # ========================================================================== # Pyenv - Python version management # ==========================================================================