{...}: { perSystem = {pkgs, ...}: { packages.handy = pkgs.appimageTools.wrapType2 rec { pname = "handy"; version = "0.8.2"; src = pkgs.fetchurl { url = "https://github.com/cjpais/Handy/releases/download/v${version}/Handy_${version}_amd64.AppImage"; hash = "sha256-+rRePge3ts87RiqZDF9/af2MDP5OBWs8yJSTHPe1fKM="; }; extraInstallCommands = let contents = pkgs.appimageTools.extract {inherit pname version src;}; in '' desktop_file=$(find ${contents} -name "*.desktop" | head -n1) if [ -n "$desktop_file" ]; then install -m 444 -D "$desktop_file" "$out/share/applications/${pname}.desktop" substituteInPlace "$out/share/applications/${pname}.desktop" \ --replace 'Exec=AppRun' 'Exec=${pname}' || true sed -i -E 's|^Exec=.*$|Exec=${pname}|g' "$out/share/applications/${pname}.desktop" || true fi if [ -d ${contents}/usr/share/icons ]; then cp -r ${contents}/usr/share/icons $out/share fi ''; }; }; }