From e058c9eb0d01ffcd28ac93fe5b94e0c7bcf54e40 Mon Sep 17 00:00:00 2001 From: Komo Date: Fri, 3 Jan 2025 09:39:53 +0800 Subject: [PATCH] openutau: Provide desktop file --- pkgs/applications/audio/openutau/default.nix | 30 ++++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/audio/openutau/default.nix b/pkgs/applications/audio/openutau/default.nix index d1cc40671cf1..b49f61bde195 100644 --- a/pkgs/applications/audio/openutau/default.nix +++ b/pkgs/applications/audio/openutau/default.nix @@ -6,6 +6,8 @@ , dbus , fontconfig , portaudio +, copyDesktopItems +, makeDesktopItem }: buildDotnetModule rec { @@ -19,6 +21,21 @@ buildDotnetModule rec { hash = "sha256-HE0KxPKU7tYZbYiCL8sm6I/NZiX0MJktt+5d6qB1A2E="; }; + nativeBuildInputs = [ copyDesktopItems ]; + + desktopItems = [ + (makeDesktopItem { + name = "openutau"; + desktopName = "OpenUtau"; + startupWMClass = "openutau"; + icon = "openutau"; + genericName = "Utau"; + comment = "Open source UTAU successor"; + exec = "OpenUtau"; + categories = [ "Music" ]; + }) + ]; + dotnet-sdk = dotnetCorePackages.sdk_8_0; dotnet-runtime = dotnetCorePackages.runtime_8_0; @@ -58,9 +75,16 @@ buildDotnetModule rec { else if (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) then "linux-arm64" else if stdenv.hostPlatform.isDarwin then "osx" else null; - in lib.optionalString (runtime != null) '' - cp runtimes/${runtime}/native/libworldline${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/OpenUtau/ - ''; + shouldInstallResampler = lib.optionalString (runtime != null) '' + cp runtimes/${runtime}/native/libworldline${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/OpenUtau/ + ''; + shouldInstallDesktopItem = lib.optionalString stdenv.hostPlatform.isLinux '' + cp Logo/openutau.svg $out/share/icons/hicolor/scalable/apps + ''; + in '' + ${shouldInstallResampler} + ${shouldInstallDesktopItem} + ''; passthru.updateScript = ./update.sh;