nixos-config/packages/filen-desktop.nix

45 lines
1.3 KiB
Nix
Raw Normal View History

2025-02-18 13:01:44 -05:00
{ lib
, fetchurl
, makeWrapper
, appimageTools
, libappindicator-gtk3
, pkgs
}:
let
pname = "filen-desktop";
version = "latest";
src = pkgs.fetchurl {
url =
"https://cdn.filen.io/@filen/desktop/release/latest/Filen_linux_x86_64.AppImage";
sha256 = "sha256-keaD5PUjkoFrFTCuap4DvmYq5X3Tjnq+njtiLgAZ9W8=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
name = "filendesktop";
# Needed for the tray to function
libPath = lib.makeLibraryPath [ libappindicator-gtk3 ];
in
appimageTools.wrapType2 rec {
inherit pname version src name;
extraInstallCommands = ''
source "${pkgs.makeWrapper}/nix-support/setup-hook"
wrapProgram $out/bin/${pname} \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" \
--prefix LD_LIBRARY_PATH : ${libPath}
install -m 444 -D ${appimageContents}/@${name}.desktop $out/share/applications/${pname}.desktop
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=filen-desktop'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
meta = with lib; {
description = "Desktop client for Filen.io";
homepage = "https://filen.io/";
license = licenses.agpl3Plus;
platforms = [ "x86_64-linux" ];
};
}