From bbd20d955d7e36b5b1ab85f664f093439f5acb3e Mon Sep 17 00:00:00 2001 From: Alexander Miroshnichenko Date: Tue, 9 Jun 2026 13:17:16 +0300 Subject: [PATCH] feat(loop): extract desktop file and icons from AppImage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use appimageTools.extractType2 to access embedded assets - Install loop-desktop.desktop and rewrite Exec=AppRun → Exec=loop - Copy hicolor icons (16–1024px) from AppImage tree --- packages/loop/package.nix | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/packages/loop/package.nix b/packages/loop/package.nix index d9c7d6b..82cefcd 100644 --- a/packages/loop/package.nix +++ b/packages/loop/package.nix @@ -6,22 +6,35 @@ let version = "6.0.3"; -in - -appimageTools.wrapType2 { - pname = "loop"; - inherit version; - src = fetchurl { url = "https://artifacts.wilix.dev/repository/loop-files/loop-${version}/loop-desktop-${version}-linux-x86_64.AppImage"; hash = "sha256-zGWKlY6XwuL0e2mDpB/1t0UnW73bhCPcg6XkBJBCEFY="; }; + appimageContents = appimageTools.extractType2 { + pname = "loop"; + inherit version src; + }; +in + +appimageTools.wrapType2 { + pname = "loop"; + inherit version src; extraPkgs = pkgsWith: [ pkgsWith.gtk3 pkgsWith.glib ]; + extraInstallCommands = '' + mkdir -p $out/share/applications + install -m 444 ${appimageContents}/loop-desktop.desktop $out/share/applications/loop.desktop + substituteInPlace $out/share/applications/loop.desktop \ + --replace-fail 'Exec=AppRun %U' 'Exec=loop %U' + + mkdir -p $out/share/icons/hicolor + cp -r ${appimageContents}/usr/share/icons/hicolor/* $out/share/icons/hicolor/ + ''; + passthru = { category = "Communication"; updateScript = [ @@ -31,13 +44,13 @@ appimageTools.wrapType2 { ]; }; - meta = with lib; { + meta = { description = "Corporate messenger for your team"; homepage = "https://loop.ru"; - license = licenses.unfree; - maintainers = with maintainers; [ ]; + license = lib.licenses.unfree; + maintainers = [ ]; platforms = [ "x86_64-linux" ]; mainProgram = "loop"; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; }; }