diff --git a/flake.lock b/flake.lock index dab0030..61740fe 100644 --- a/flake.lock +++ b/flake.lock @@ -1372,7 +1372,8 @@ "sops-nix": "sops-nix", "spacemacs": "spacemacs", "stylix": "stylix", - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix", + "zen-browser": "zen-browser" } }, "rust-overlay": { @@ -1761,6 +1762,29 @@ "repo": "xwayland-satellite", "type": "github" } + }, + "zen-browser": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763616019, + "narHash": "sha256-yCNgkYovgIpOZankp38BxKFISmdc2b34vtEuVuxhTuk=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "a0a29968bccb2f118b33360697d5cc5fdae30cfa", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 15fabc8..907e7cf 100644 --- a/flake.nix +++ b/flake.nix @@ -83,6 +83,15 @@ nixpkgs.follows = "nixpkgs"; }; }; + zen-browser = { + type = "github"; + owner = "0xc000022070"; + repo = "zen-browser-flake"; + inputs = { + nixpkgs.follows = "nixpkgs"; + home-manager.follows = "home-manager"; + }; + }; niri-flake = { type = "github"; diff --git a/home/david/configurations/Tytonidae/default.nix b/home/david/configurations/Tytonidae/default.nix index d9662cb..fa709d1 100644 --- a/home/david/configurations/Tytonidae/default.nix +++ b/home/david/configurations/Tytonidae/default.nix @@ -51,6 +51,7 @@ alacritty.enable = true; zed-editor.enable = true; firefox.enable = true; + zen-browser.enable = true; openssh.enable = true; helix.enable = true; nvchad.enable = true; diff --git a/home/david/modules/programs/zen-browser.nix b/home/david/modules/programs/zen-browser.nix new file mode 100644 index 0000000..5e4d21f --- /dev/null +++ b/home/david/modules/programs/zen-browser.nix @@ -0,0 +1,229 @@ +{ + lib, + config, + pkgs, + ... +}: let + cfg = config.david.programs.zen-browser; +in { + options = { + david.programs.zen-browser = { + enable = lib.mkEnableOption "zen-browser"; + }; + }; + config = lib.mkIf cfg.enable { + programs.zen-browser = { + enable = true; + profiles.default = { + name = "default"; + isDefault = true; + extensions = { + packages = with pkgs.nur.repos.rycee.firefox-addons; [ + immersive-translate + tridactyl + redirector + ]; + }; + search = { + force = true; + default = "ddg"; + engines = { + "Guix Packages" = { + urls = [ + { + template = "https://packages.guix.gnu.org/search/"; + params = [ + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@gp"]; + }; + "Nix Packages" = { + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "type"; + value = "packages"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = ["@np"]; + }; + "Nix Options" = { + urls = [ + { + template = "https://search.nixos.org/options"; + params = [ + { + name = "channel"; + value = "unstable"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@no"]; + }; + "Home Manager Options" = { + urls = [ + { + template = "https://home-manager-options.extranix.com"; + params = [ + { + name = "query"; + value = "{searchTerms}"; + } + { + name = "release"; + value = "master"; + } + ]; + } + ]; + definedAliases = ["@hm"]; + }; + "Nix Flakes" = { + urls = [ + { + template = "https://search.nixos.org/flakes"; + params = [ + { + name = "channel"; + value = "unstable"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@nf"]; + }; + "NixOS Wiki" = { + urls = [ + { + template = "https://wiki.nixos.org/w/index.php"; + params = [ + { + name = "search"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@nw"]; + }; + "Rust Stdandard Lib" = { + urls = [ + { + template = "https://doc.rust-lang.org/nightly/std/index.html"; + params = [ + { + name = "search"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@rs"]; + }; + "GitHub" = { + urls = [ + { + template = "https://github.com/search"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + { + name = "type"; + value = "repositories"; + } + ]; + } + ]; + definedAliases = ["@gh"]; + }; + "Rust Reference" = { + urls = [ + { + template = "https://doc.rust-lang.org/nightly/reference"; + params = [ + { + name = "search"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@rr"]; + }; + "Rust Crates" = { + urls = [ + { + temaplte = "https://crates.io/search"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@rc"]; + }; + "C++ Reference" = { + urls = [ + { + template = "https://duckduckgo.com/"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + { + name = "sites"; + value = "cppreference.com"; + } + ]; + } + ]; + definedAliases = ["@cr"]; + }; + "bing".metaData.hidden = true; + "google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias + }; + }; + }; + policies = { + DisableAppUpdate = true; + Preferences = let + mkLockedAttrs = builtins.mapAttrs (_: value: { + Value = value; + Status = "locked"; + }); + in + mkLockedAttrs { + "browser.tabs.closeTabByDblclick" = true; + }; + }; + }; + }; +} diff --git a/home/modules/default.nix b/home/modules/default.nix index 5f2bbef..53d02e7 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -9,6 +9,7 @@ betterfox-nix.homeModules.betterfox nix4nvchad.homeManagerModule noctalia.homeModules.default + zen-browser.homeModules.twilight ]) ++ lib.youthlic.loadImports ./.;