diff --git a/homes/x86_64-linux/julian@aspi/mimeapps.nix b/homes/x86_64-linux/julian@aspi/mimeapps.nix new file mode 100644 index 0000000..0cd6d8f --- /dev/null +++ b/homes/x86_64-linux/julian@aspi/mimeapps.nix @@ -0,0 +1,45 @@ +# 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