From 2c9bd5b0a7b78b3b986236f15c31a8dd28708801 Mon Sep 17 00:00:00 2001 From: chillcicada <2210227279@qq.com> Date: Sun, 12 Jul 2026 17:16:16 +0800 Subject: [PATCH] folia-major: init at 0.5.26 --- pkgs/by-name/fo/folia-major/package.nix | 115 ++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 pkgs/by-name/fo/folia-major/package.nix diff --git a/pkgs/by-name/fo/folia-major/package.nix b/pkgs/by-name/fo/folia-major/package.nix new file mode 100644 index 000000000000..83ade7f9518d --- /dev/null +++ b/pkgs/by-name/fo/folia-major/package.nix @@ -0,0 +1,115 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + fetchNpmDeps, + nodejs, + npmHooks, + makeWrapper, + electron, + copyDesktopItems, + makeDesktopItem, + nix-update-script, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "folia-major"; + version = "0.5.26"; + + strictDeps = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "chthollyphile"; + repo = "folia-major"; + tag = "v${finalAttrs.version}"; + hash = "sha256-0G7Mh34xW8kx3iP7V5u9qSqKdzqSsciVBW/g+0z7YVY="; + }; + + npmDeps = fetchNpmDeps { + inherit (finalAttrs) src; + hash = "sha256-ihFIXw9y2Ab+Z6CecBxFqcEGU4+sdy41hQoaknpCpb4="; + }; + + nativeBuildInputs = [ + nodejs + npmHooks.npmConfigHook + makeWrapper + copyDesktopItems + ]; + + env = { + ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + ELECTRON_DEV = "false"; + ELECTRON = "true"; + }; + + # workaround for https://github.com/electron/electron/issues/31121 + postPatch = '' + substituteInPlace electron/main.cjs \ + --replace-fail "process.resourcesPath" "'$out/lib/folia-major/resources'" + + substituteInPlace vite.config.ts \ + --replace-fail "git rev-parse --short HEAD" "echo unknown" \ + --replace-fail "git rev-parse --abbrev-ref HEAD" "echo main" + ''; + + buildPhase = '' + runHook preBuild + + npm run build + npm exec electron-builder -- \ + --dir \ + -c.electronDist=${electron.dist} \ + -c.electronVersion=${electron.version} + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib/folia-major + cp -r release/*-unpacked/{locales,resources{,.pak}} $out/lib/folia-major/ + + install -D build/icon.png $out/share/icons/hicolor/512x512/apps/folia-major.png + + makeWrapper '${lib.getExe electron}' $out/bin/folia-major \ + --add-flags $out/lib/folia-major/resources/app.asar \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true --wayland-text-input-version=3}}" \ + --set-default ELECTRON_FORCE_IS_PACKAGED 1 \ + --set-default ELECTRON_IS_DEV 0 \ + --inherit-argv0 + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "folia-major"; + desktopName = "Folia"; + exec = "folia-major"; + terminal = false; + type = "Application"; + icon = "folia-major"; + startupWMClass = "folia"; + comment = "Lyrics Reimagine"; + categories = [ + "AudioVideo" + "Player" + ]; + }) + ]; + + passthru.updateScript = nix-update-script { extraArgs = [ "--use-github-releases" ]; }; + + meta = { + description = "Lyrics Reimagine desktop app"; + homepage = "https://folia-site.vercel.app/"; + downloadPage = "https://github.com/chthollyphile/folia-major/releases"; + license = lib.licenses.agpl3Only; + mainProgram = "folia-major"; + maintainers = with lib.maintainers; [ chillcicada ]; + platforms = lib.platforms.linux; + }; +})