runelite: use copyDesktopItems for desktop entry installation

This commit is contained in:
夜坂雅
2026-09-19 22:37:14 +08:00
parent 1f137ed9f9
commit 48cb251ae6

View File

@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
copyDesktopItems,
makeDesktopItem,
makeWrapper,
gradle,
@@ -23,21 +24,24 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-1IUjbZEvoHb2Fer16rIvi6shMsol+hiPLQleXHRVLEU=";
};
desktop = makeDesktopItem {
name = "RuneLite";
type = "Application";
exec = "runelite";
icon = "runelite";
comment = "Open source Old School RuneScape client";
desktopName = "RuneLite";
genericName = "Oldschool Runescape";
categories = [ "Game" ];
startupWMClass = "net-runelite-client-RuneLite";
};
desktopItems = [
(makeDesktopItem {
name = "RuneLite";
type = "Application";
exec = "runelite";
icon = "runelite";
comment = "Open source Old School RuneScape client";
desktopName = "RuneLite";
genericName = "Oldschool Runescape";
categories = [ "Game" ];
startupWMClass = "net-runelite-client-RuneLite";
})
];
nativeBuildInputs = [
gradle
makeWrapper
copyDesktopItems
];
mitmCache = gradle.fetchDeps {
@@ -50,14 +54,14 @@ stdenv.mkDerivation (finalAttrs: {
gradleBuildTask = "shadowJar";
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
mkdir -p $out/share/applications
cp build/libs/RuneLite.jar $out/share
cp appimage/runelite.png $out/share/icons
ln -s ${finalAttrs.desktop}/share/applications/RuneLite.desktop $out/share/applications/RuneLite.desktop
makeWrapper ${jre}/bin/java $out/bin/runelite \
--prefix LD_LIBRARY_PATH : "${
lib.makeLibraryPath [
@@ -66,6 +70,8 @@ stdenv.mkDerivation (finalAttrs: {
]
}" \
--add-flags "-jar $out/share/RuneLite.jar"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };