{ lib , makeDesktopItem , copyDesktopItems , stdenvNoCC , fetchurl , appimageTools , makeWrapper }: let version = "1.8.6"; pname = "session-desktop-appimage"; src = fetchurl { url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage"; sha256 = "h7uEdxBuqPNWGFp5wWWRI9VsK3HYOtLVgj7rIbeO9kY="; }; appimage = appimageTools.wrapType2 { inherit version pname src; }; appimage-contents = appimageTools.extractType2 { inherit version pname src; }; in stdenvNoCC.mkDerivation { inherit version pname; src = appimage; nativeBuildInputs = [ copyDesktopItems makeWrapper ]; desktopItems = [ (makeDesktopItem { name = "Session"; desktopName = "Session"; comment = "Onion routing based messenger"; exec = "${appimage}/bin/session-desktop-appimage-${version}"; icon = "${appimage-contents}/session-desktop.png"; terminal = false; type = "Application"; categories = [ "Network" ]; }) ]; installPhase = '' runHook preInstall mkdir -p $out/ cp -r bin $out/bin wrapProgram $out/bin/session-desktop-appimage-${version} \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" runHook postInstall ''; meta = with lib; { description = "Onion routing based messenger"; homepage = "https://getsession.org/"; license = licenses.gpl3Only; maintainers = with maintainers; [ alexnortung ]; platforms = [ "x86_64-linux" ]; }; }