diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix new file mode 100644 index 000000000000..c274ef0440d7 --- /dev/null +++ b/pkgs/applications/office/trilium/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchurl, p7zip, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem }: + +let + description = "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases."; + desktopItem = makeDesktopItem { + name = "Trilium"; + exec = "trilium"; + icon = "trilium"; + comment = description; + desktopName = "Trilium Notes"; + categories = "Office"; + }; + +in stdenv.mkDerivation rec { + name = "trilium-${version}"; + version = "0.26.1"; + + src = fetchurl { + url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.7z"; + sha256 = "184b0b0s8q32h1mpkrin8x1q0kjvard7r7xqrclziwwxg4khp3cz"; + }; + + nativeBuildInputs = [ + p7zip /* for unpacking */ + autoPatchelfHook + makeWrapper + ]; + + buildInputs = atomEnv.packages; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/trilium + mkdir -p $out/share/{applications,icons/hicolor/scalable/apps} + + cp -r ./* $out/share/trilium + ln -s $out/share/trilium/trilium $out/bin/trilium + + ln -s $out/share/trilium/resources/app/src/public/images/trilium.svg $out/share/icons/hicolor/scalable/apps/trilium.svg + cp ${desktopItem}/share/applications/* $out/share/applications + ''; + + + # This "shouldn't" be needed, remove when possible :) + preFixup = '' + wrapProgram $out/bin/trilium --prefix LD_LIBRARY_PATH : "${atomEnv.libPath}" + ''; + + dontStrip = true; + + meta = with stdenv.lib; { + inherit description; + homepage = https://github.com/zadam/trilium; + license = licenses.agpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ emmanuelrosa dtzWill ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a2ca284f18dd..3960c659bb35 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5875,6 +5875,8 @@ in triggerhappy = callPackage ../tools/inputmethods/triggerhappy {}; + trilium = callPackage ../applications/office/trilium { }; + trousers = callPackage ../tools/security/trousers { }; tryton = callPackage ../applications/office/tryton { };