about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/session-desktop
diff options
context:
space:
mode:
authorAlexander Nortung <alex_nortung@live.dk>2022-08-21 19:45:25 +0200
committerAlexander Nortung <alex_nortung@live.dk>2022-08-21 19:46:48 +0200
commitbc3d4bb2956eadef8452b06542b2d3b9ecdf5a40 (patch)
tree4d58ca55966292e55b6a95000378b729dde69e17 /pkgs/applications/networking/instant-messengers/session-desktop
parent03317d0edb637b3106327f2ac2343dbdd7b9bdda (diff)
session-desktop: refactor
Renamed session-desktop-appimage to session-desktop
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/session-desktop')
-rw-r--r--pkgs/applications/networking/instant-messengers/session-desktop/default.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/session-desktop/default.nix b/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
new file mode 100644
index 0000000000000..0f1e9f9e8ad9f
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, makeDesktopItem
+, copyDesktopItems
+, stdenvNoCC
+, fetchurl
+, appimageTools
+, makeWrapper
+}:
+
+let
+  version = "1.9.1";
+  pname = "session-desktop";
+
+  src = fetchurl {
+    url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage";
+    sha256 = "sha256-Zc3btkvN4ic47IGigeFJGx4dwbM+b7iuIOxpmcWmrRQ=";
+  };
+  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-${version}";
+      icon = "${appimage-contents}/session-desktop.png";
+      terminal = false;
+      type = "Application";
+      categories = [ "Network" ];
+    })
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mv bin/session-desktop-${version} bin/session-desktop
+
+    mkdir -p $out/
+    cp -r bin $out/bin
+
+    wrapProgram $out/bin/session-desktop \
+      --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" ];
+  };
+}