Files
zen-browser-flake/flake.nix
2025-04-02 21:33:26 +05:00

77 lines
2.0 KiB
Nix

{
description = "Zen Browser";
inputs.nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
inputs.home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
{
self,
nixpkgs,
home-manager,
}:
let
mkZen =
name: system: entry:
let
pkgs = nixpkgs.legacyPackages.${system};
variant = (builtins.fromJSON (builtins.readFile ./sources.json)).${entry}.${system};
desktopFile = if name == "beta" then "zen.desktop" else "zen_${name}.desktop";
in
pkgs.callPackage ./package.nix {
inherit name desktopFile variant;
};
mkZenWrapped =
name: system: entry:
let
pkgs = nixpkgs.legacyPackages.${system};
in
pkgs.wrapFirefox entry {
icon = "zen-${name}";
wmClass = "zen-${name}";
hasMozSystemDirPatch = false;
};
supportedSystems = [
"x86_64-linux"
"aarch64-linux"
];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
in
{
packages = forAllSystems (system: rec {
beta-unwrapped = mkZen "beta" system "beta";
twilight-unwrapped = mkZen "twilight" system "twilight";
twilight-official-unwrapped = mkZen "twilight" system "twilight-official";
beta = mkZenWrapped "beta" system beta-unwrapped;
twilight = mkZenWrapped "twilight" system twilight-unwrapped;
twilight-official = mkZenWrapped "twilight" system twilight-official-unwrapped;
default = beta;
});
homeModules = rec {
beta = import ./hm-module.nix {
inherit self home-manager;
name = "beta";
};
twilight = import ./hm-module.nix {
inherit self home-manager;
name = "twilight";
};
twilight-official = import ./hm-module.nix {
inherit self home-manager;
name = "twilight-official";
};
default = beta;
};
};
}