# Manage mime-types via home-manager. Sadly the file gets overwritten by some applications and also not all of the desktop file paths are correct
# Use from home-manager like this:
#
# xdg.mimeApps.enable = true;
# xdg.mimeApps.defaultApplications = import ./mimeapps.nix {
#   inherit pkgs;
#   inherit lib;
# };

{ lib, pkgs, ... }:
let
  package-names = with pkgs; {
    "x-scheme-handler/tg" = telegram-desktop;
    "x-scheme-handler/mailto" = thunderbird;
    "message/rfc822" = thunderbird;
    "x-scheme-handler/mid" = thunderbird;
    "x-scheme-handler/webcal" = thunderbird;
    "text/calendar" = thunderbird;
    "application/x-extension-ics" = thunderbird;
    "x-scheme-handler/webcals" = thunderbird;
    "application/zip" = mate.engrampa;
    "text/plain" = xfce.mousepad;
    "image/jpeg" = nomacs;
    "application/pdf" = evince;
    "text/html" = firefox;
    "x-scheme-handler/http" = firefox;
    "x-scheme-handler/https" = firefox;
    "x-scheme-handler/chrome" = firefox;
    "application/x-extension-htm" = firefox;
    "application/x-extension-html" = firefox;
    "application/x-extension-shtml" = firefox;
    "application/xhtml+xml" = firefox;
    "application/x-extension-xhtml" = firefox;
    "application/x-extension-xht" = firefox;
    "image/svg+xml" = inkscape;
    "image/png" = nomacs;
    "x-scheme-handler/eclipse+command" = dbeaver-bin;
    "video/mp4" = vlc;
    "audio/mpeg" = vlc;
    "inode/directory" = pcmanfm;
  };
in
lib.mapAttrs (mimeType: package: [
  "${package}/share/applications/${package.pname}.desktop"
]) package-names