python312Packages.lion-pytorch: 0.2.2 -> 0.2.3 (#364581)
[NixPkgs.git] / pkgs / applications / office / micropad / default.nix
blob1dd3394e63276b11d2c813cab2fd097ae01521dd
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   fetchYarnDeps,
6   yarnBuildHook,
7   fetchzip,
8   makeWrapper,
9   makeDesktopItem,
10   electron,
11   desktopToDarwinBundle,
12   copyDesktopItems,
15 stdenv.mkDerivation (finalAttrs: {
16   pname = "micropad";
17   version = "4.5.1";
19   src = fetchFromGitHub {
20     owner = "MicroPad";
21     repo = "Micropad-Electron";
22     rev = "v${finalAttrs.version}";
23     hash = "sha256-z+g+FwmoX4Qqf+v4BVLCtfrXwGiAUFlPLQQhp2CMhLU=";
24   };
26   # This project can't be built from source currently, because Nixpkgs lacks
27   # ecosystem for https://bun.sh
28   micropad-core = fetchzip {
29     url = "https://github.com/MicroPad/MicroPad-Core/releases/download/v${finalAttrs.version}/micropad.tar.xz";
30     hash = "sha256-y13PVA/AKKsc5q7NDwZFasb7fOo+56IW8qbTbsm2WWc=";
31   };
33   offlineCache = fetchYarnDeps {
34     yarnLock = "${finalAttrs.src}/yarn.lock";
35     hash = "sha256-ESYSHuHLNsn3EYKIe2p0kg142jyC0USB+Ef//oGeF08=";
36   };
38   nativeBuildInputs = [
39     yarnBuildHook
40     copyDesktopItems
41     makeWrapper
42   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ desktopToDarwinBundle ];
44   installPhase = ''
45     runHook preInstall
47     # resources
48     mkdir -p "$out/share/"
49     cp -r './deps/micropad' "$out/share/micropad"
50     ln -s '${finalAttrs.micropad-core}' "$out/share/micropad/core"
51     rm "$out/share/micropad/node_modules"
52     cp -r './node_modules' "$out/share/micropad"
54     # icons
55     for icon in $out/share/micropad/build/icons/*.png; do
56       mkdir -p "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps"
57       ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps/micropad.png"
58     done
60     # executable wrapper
61     makeWrapper '${electron}/bin/electron' "$out/bin/micropad" \
62       --add-flags "$out/share/micropad" \
63       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
65     runHook postInstall
66   '';
68   # Do not attempt generating a tarball for micropad again.
69   doDist = false;
71   # The desktop item properties should be kept in sync with data from upstream:
72   # https://github.com/MicroPad/MicroPad-Electron/blob/master/package.json
73   desktopItems = [
74     (makeDesktopItem {
75       name = "micropad";
76       exec = "micropad %u";
77       icon = "micropad";
78       desktopName = "µPad";
79       startupWMClass = "µPad";
80       comment = finalAttrs.meta.description;
81       categories = [ "Office" ];
82     })
83   ];
85   meta = {
86     description = "A powerful note-taking app that helps you organise + take notes without restrictions";
87     homepage = "https://getmicropad.com/";
88     license = lib.licenses.mpl20;
89     maintainers = with lib.maintainers; [ rhysmdnz ];
90     inherit (electron.meta) platforms;
91     mainProgram = "micropad";
92   };