{ config, pkgs, ... }:

let
  # wrapper is needed because otherwise desktop file can't be accessed
  element-desktop = pkgs.symlinkJoin {
    inherit (pkgs.element-desktop) name src meta;
    paths = [ pkgs.element-desktop ];
    nativeBuildInputs = with pkgs; [ makeWrapper ];
    postBuild = ''
      rm -rf $out/share/applications
      mkdir $out/share/applications
      cat "${pkgs.element-desktop}/share/applications/element-desktop.desktop" \
        >"$out/share/applications/element-desktop.desktop"
    '';
  };
in
{
  home.packages = [ element-desktop ];

  xdg.configFile."autostart/element-desktop.desktop".text =
    builtins.replaceStrings [ "Exec=element-desktop" ] [ "Exec=element-desktop --hidden" ]
      (builtins.readFile "${element-desktop}/share/applications/element-desktop.desktop");
}