base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / ku / kuro / package.nix
blob95126d1ba1f1aa5908c6c5efdfa28c6a16b4ce37
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchYarnDeps
5 , yarnConfigHook
6 , yarnBuildHook
7 , nodejs
8 , makeWrapper
9 , makeDesktopItem
10 , copyDesktopItems
11 , electron
14 stdenv.mkDerivation rec {
15   pname = "kuro";
16   version = "9.0.0";
18   src = fetchFromGitHub {
19     owner = "davidsmorais";
20     repo = "kuro";
21     rev = "v${version}";
22     hash = "sha256-9Z/r5T5ZI5aBghHmwiJcft/x/wTRzDlbIupujN2RFfU=";
23   };
25   offlineCache = fetchYarnDeps {
26     yarnLock = "${src}/yarn.lock";
27     hash = "sha256-GTiNv7u1QK/wjQgpka7REuoLn2wjZG59kYJQaZZPycI=";
28   };
30   env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
32   nativeBuildInputs = [
33     yarnConfigHook
34     yarnBuildHook
35     nodejs
36     makeWrapper
37     copyDesktopItems
38   ];
40   yarnBuildScript = "electron-builder";
41   yarnBuildFlags = [
42     "--dir"
43     "-c.electronDist=${electron.dist}"
44     "-c.electronVersion=${electron.version}"
45   ];
47   installPhase = ''
48     runHook preInstall
50     # resources
51     mkdir -p "$out/share/lib/kuro"
52     cp -r ./dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/kuro"
54     # icons
55     install -Dm644 ./static/Icon.png $out/share/icons/hicolor/1024x1024/apps/kuro.png
57     # executable wrapper
58     makeWrapper '${electron}/bin/electron' "$out/bin/kuro" \
59       --add-flags "$out/share/lib/kuro/resources/app.asar" \
60       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
61       --inherit-argv0
63     runHook postInstall
64   '';
66   desktopItems = [
67     (makeDesktopItem {
68       name = "kuro";
69       exec = "kuro";
70       icon = "kuro";
71       desktopName = "Kuro";
72       genericName = "Microsoft To-Do Client";
73       comment = meta.description;
74       categories = [ "Office" ];
75       startupWMClass = "kuro";
76     })
77   ];
79   meta = with lib; {
80     changelog = "https://github.com/davidsmorais/kuro/releases/tag/${src.rev}";
81     description = "An unofficial, featureful, open source, community-driven, free Microsoft To-Do app";
82     homepage = "https://github.com/davidsmorais/kuro";
83     license = licenses.mit;
84     mainProgram = "kuro";
85     maintainers = with maintainers; [ ChaosAttractor ];
86     inherit (electron.meta) platforms;
87   };