diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/kuro/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/misc/kuro/default.nix | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/kuro/default.nix b/nixpkgs/pkgs/applications/misc/kuro/default.nix new file mode 100644 index 000000000000..50a773b5c518 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kuro/default.nix @@ -0,0 +1,89 @@ +{ lib +, fetchFromGitHub +, fetchYarnDeps +, makeWrapper +, makeDesktopItem +, copyDesktopItems +, mkYarnPackage +, electron +}: + +mkYarnPackage rec { + pname = "kuro"; + version = "9.0.0"; + + src = fetchFromGitHub { + owner = "davidsmorais"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-9Z/r5T5ZI5aBghHmwiJcft/x/wTRzDlbIupujN2RFfU="; + }; + + packageJSON = ./package.json; + + offlineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + hash = "sha256-GTiNv7u1QK/wjQgpka7REuoLn2wjZG59kYJQaZZPycI="; + }; + + ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + + nativeBuildInputs = [ + makeWrapper + copyDesktopItems + ]; + + postBuild = '' + pushd deps/kuro + + yarn --offline run electron-builder \ + --dir \ + -c.electronDist=${electron}/libexec/electron \ + -c.electronVersion=${electron.version} + + popd + ''; + + installPhase = '' + runHook preInstall + + # resources + mkdir -p "$out/share/lib/kuro" + cp -r ./deps/kuro/dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/kuro" + + # icons + install -Dm644 ./deps/kuro/static/Icon.png $out/share/icons/hicolor/1024x1024/apps/kuro.png + + # executable wrapper + makeWrapper '${electron}/bin/electron' "$out/bin/kuro" \ + --add-flags "$out/share/lib/kuro/resources/app.asar" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ + --inherit-argv0 + + runHook postInstall + ''; + # Do not attempt generating a tarball for contents again. + # note: `doDist = false;` does not work. + distPhase = "true"; + + desktopItems = [ + (makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + desktopName = "Kuro"; + genericName = "Microsoft To-Do Client"; + comment = meta.description; + categories = [ "Office" ]; + startupWMClass = pname; + }) + ]; + + meta = with lib; { + description = "An unofficial, featureful, open source, community-driven, free Microsoft To-Do app"; + homepage = "https://github.com/davidsmorais/kuro"; + license = licenses.mit; + maintainers = with maintainers; [ ChaosAttractor ]; + inherit (electron.meta) platforms; + }; +} |