style: nix code with alejandra format

This commit is contained in:
Luis Quiñones
2025-04-03 18:14:58 -05:00
parent fa21b2402e
commit e356572091
3 changed files with 134 additions and 144 deletions

120
flake.nix
View File

@@ -7,70 +7,66 @@
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};
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;
desktopFile =
if name == "beta"
then "zen.desktop"
else "zen_${name}.desktop";
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;
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;
};
};
}

View File

@@ -2,14 +2,12 @@
home-manager,
self,
name,
}:
{
}: {
pkgs,
config,
lib,
...
}:
let
}: let
applicationName = "Zen Browser";
modulePath = [
"programs"
@@ -17,8 +15,7 @@ let
];
mkFirefoxModule = import "${home-manager.outPath}/modules/programs/firefox/mkFirefoxModule.nix";
in
{
in {
imports = [
(mkFirefoxModule {
inherit modulePath;

View File

@@ -2,7 +2,6 @@
name,
variant,
desktopFile,
lib,
stdenv,
config,
@@ -22,18 +21,15 @@
applicationName ?
"Zen Browser"
+ (
if name == "beta" then
" (Beta)"
else if name == "twilight" then
" (Twilight)"
else if name == "twilight-official" then
" (Twilight)"
else
""
if name == "beta"
then " (Beta)"
else if name == "twilight"
then " (Twilight)"
else if name == "twilight-official"
then " (Twilight)"
else ""
),
}:
let
}: let
binaryName = "zen-${name}";
mozillaPlatforms = {
@@ -41,79 +37,80 @@ let
aarch64-linux = "linux-aarch64";
};
policies = {
DisableAppUpdate = true;
} // config.firefox.policies or { };
policies =
{
DisableAppUpdate = true;
}
// config.firefox.policies or {};
policiesJson = writeText "firefox-policies.json" (builtins.toJSON { inherit policies; });
policiesJson = writeText "firefox-policies.json" (builtins.toJSON {inherit policies;});
pname = "zen-${name}-bin-unwrapped";
in
stdenv.mkDerivation {
inherit pname;
inherit (variant) version;
stdenv.mkDerivation {
inherit pname;
inherit (variant) version;
src = builtins.fetchTarball {inherit (variant) url sha256;};
desktopSrc = ./.;
src = builtins.fetchTarball { inherit (variant) url sha256; };
desktopSrc = ./.;
nativeBuildInputs = [
wrapGAppsHook3
autoPatchelfHook
patchelfUnstable
];
buildInputs = [
gtk3
adwaita-icon-theme
alsa-lib
dbus-glib
libXtst
];
runtimeDependencies = [
curl
libva.out
pciutils
];
appendRunpaths = [
"${pipewire}/lib"
];
# Firefox uses "relrhack" to manually process relocations from a fixed offset
patchelfFlags = ["--no-clobber-old-sections"];
nativeBuildInputs = [
wrapGAppsHook3
autoPatchelfHook
patchelfUnstable
];
buildInputs = [
gtk3
adwaita-icon-theme
alsa-lib
dbus-glib
libXtst
];
runtimeDependencies = [
curl
libva.out
pciutils
];
appendRunpaths = [
"${pipewire}/lib"
];
# Firefox uses "relrhack" to manually process relocations from a fixed offset
patchelfFlags = [ "--no-clobber-old-sections" ];
installPhase = ''
mkdir -p "$prefix/lib/zen-bin-${variant.version}"
cp -r "$src"/* "$prefix/lib/zen-bin-${variant.version}"
installPhase = ''
mkdir -p "$prefix/lib/zen-bin-${variant.version}"
cp -r "$src"/* "$prefix/lib/zen-bin-${variant.version}"
mkdir -p "$out/bin"
ln -s "$prefix/lib/zen-bin-${variant.version}/zen" "$out/bin/${binaryName}"
mkdir -p "$out/bin"
ln -s "$prefix/lib/zen-bin-${variant.version}/zen" "$out/bin/${binaryName}"
mkdir -p "$out/lib/zen-${variant.version}/distribution"
ln -s ${policiesJson} "$out/lib/zen-${variant.version}/distribution/policies.json"
mkdir -p "$out/lib/zen-${variant.version}/distribution"
ln -s ${policiesJson} "$out/lib/zen-${variant.version}/distribution/policies.json"
install -D $src/browser/chrome/icons/default/default16.png $out/share/icons/hicolor/16x16/apps/zen-${name}.png
install -D $src/browser/chrome/icons/default/default32.png $out/share/icons/hicolor/32x32/apps/zen-${name}.png
install -D $src/browser/chrome/icons/default/default48.png $out/share/icons/hicolor/48x48/apps/zen-${name}.png
install -D $src/browser/chrome/icons/default/default64.png $out/share/icons/hicolor/64x64/apps/zen-${name}.png
install -D $src/browser/chrome/icons/default/default128.png $out/share/icons/hicolor/128x128/apps/zen-${name}.png
'';
install -D $src/browser/chrome/icons/default/default16.png $out/share/icons/hicolor/16x16/apps/zen-${name}.png
install -D $src/browser/chrome/icons/default/default32.png $out/share/icons/hicolor/32x32/apps/zen-${name}.png
install -D $src/browser/chrome/icons/default/default48.png $out/share/icons/hicolor/48x48/apps/zen-${name}.png
install -D $src/browser/chrome/icons/default/default64.png $out/share/icons/hicolor/64x64/apps/zen-${name}.png
install -D $src/browser/chrome/icons/default/default128.png $out/share/icons/hicolor/128x128/apps/zen-${name}.png
'';
passthru = {
inherit applicationName binaryName;
libName = "zen-bin-${variant.version}";
ffmpegSupport = true;
gssSupport = true;
gtk3 = gtk3;
};
passthru = {
inherit applicationName binaryName;
libName = "zen-bin-${variant.version}";
ffmpegSupport = true;
gssSupport = true;
gtk3 = gtk3;
};
meta = {
inherit desktopFile;
description = "Experience tranquillity while browsing the web without people tracking you!";
homepage = "https://zen-browser.app";
downloadPage = "https://zen-browser.app/download/";
changelog = "https://github.com/zen-browser/desktop/releases";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
platforms = builtins.attrNames mozillaPlatforms;
hydraPlatforms = [ ];
mainProgram = binaryName;
};
}
meta = {
inherit desktopFile;
description = "Experience tranquillity while browsing the web without people tracking you!";
homepage = "https://zen-browser.app";
downloadPage = "https://zen-browser.app/download/";
changelog = "https://github.com/zen-browser/desktop/releases";
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
platforms = builtins.attrNames mozillaPlatforms;
hydraPlatforms = [];
mainProgram = binaryName;
};
}