{ config, pkgs, ... }:

let
  version = "1.8.2b";

  zenbrowser = pkgs.appimageTools.wrapType2 {
    name = "zen";
    src = pkgs.fetchurl {
      url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen-x86_64.AppImage";
      hash = "sha256-hZiJ8JLzLhtD1W8DAso3yBAJYhFE+nJEbQJa59AWjnU=";
    };
    extraInstallCommands = ''
      mkdir -p $out/share/applications
      cat > $out/share/applications/zenbrowser.desktop <<EOF
      [Desktop Entry]
      Type=Application
      Name=Zen Browser
      Icon=zen-browser
      Exec=zen %F
      Comment=Internet Browser
      EOF
    '';
  };

  # Fetch and convert the icon
  icon =
    pkgs.runCommand "zenbrowser-icon"
      {
        nativeBuildInputs = [ pkgs.imagemagick ];
        src = pkgs.fetchurl {
          url = "https://raw.githubusercontent.com/zen-browser/desktop/163cc6b6bdfbf81673a0b5ea55ee7bf2eba46a42/configs/branding/release/logo.png";
          sha256 = "9e27e02a924c73c0101757aa6f726ec6a91f7e908bcc900e9a4dab2c8cd3e61a";
        };
      }
      ''
        mkdir -p $out/share/icons/hicolor/512x512/apps
        convert $src $out/share/icons/hicolor/512x512/apps/zen-browser.png
      '';

in
{
  environment.systemPackages = with pkgs; [
    zenbrowser
  ];
}