From 7631eee402124b7f05c1c2792b98d5edf9540bf3 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Thu, 6 Jul 2023 15:21:05 -0400 Subject: [PATCH] feat: make own derivation of tutanota from AppImage --- nixos/home/packages.nix | 3 +- nixos/overlays/tutanota.nix | 55 +++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 nixos/overlays/tutanota.nix diff --git a/nixos/home/packages.nix b/nixos/home/packages.nix index 12bd479..1cf68e0 100644 --- a/nixos/home/packages.nix +++ b/nixos/home/packages.nix @@ -72,10 +72,12 @@ exec env SUDO_ASKPASS=${pkgs.plasma5Packages.ksshaskpass}/bin/${pkgs.plasma5Packages.ksshaskpass.pname} sudo -k -EA "${gparted}/bin/${gparted.pname}" "$@" '') + (with import {}; callPackage ../overlays/tutanota.nix {}) swayosd blueberry libayatana-appindicator papirus-icon-theme + steam-run qt5.qtwayland qt6.qtwayland httrack @@ -113,7 +115,6 @@ rofi-wayland networkmanagerapplet nextcloud-client - tutanota-desktop galaxy-buds-client swaynotificationcenter swayidle diff --git a/nixos/overlays/tutanota.nix b/nixos/overlays/tutanota.nix new file mode 100644 index 0000000..21384b9 --- /dev/null +++ b/nixos/overlays/tutanota.nix @@ -0,0 +1,55 @@ +{ lib +, pkgs +, stdenv +, appimageTools +, makeWrapper +, fetchurl +, libGL +, libsecret +, xorg +, ffmpeg +, curl +, alsa-lib +, udev +}: + +let + pname = "tutanota-desktop"; + version = "3.114.1"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage"; + hash = "sha256-cWK95F3/zRyKt2fN/uN/dfDNnSiXgJq6mlGjtD3W7VY="; + }; + + extracted = appimageTools.extractType2 { + inherit pname version src; + }; + +in appimageTools.wrapType2 { + inherit name src; + + profile = '' + export LD_LIBRARY_PATH=${libGL}:${libsecret}:${ffmpeg}:${curl}:${alsa-lib}:${udev}:$LD_LIBRARY_PATH + ''; + + targetPkgs = pkgs: [ libGL libsecret ffmpeg curl alsa-lib udev ]; + + extraInstallCommands = '' + mkdir -p $out/bin + + cp -r ${extracted}/* $out/ + + ln -s $out/tutanota-desktop $out/bin/tutanota-desktop + + substituteInPlace $out/tutanota-desktop.desktop \ + --replace AppRun ${pname} + + source "${makeWrapper}/nix-support/setup-hook" + wrapProgram $out/bin/${pname} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret stdenv.cc.cc.lib ]} + + sed -i 's#exec -a "$0"#exec -a "$0" "${pkgs.steam-run}/bin/steam-run"#' "$out/bin/${pname}" + ''; +}