diff --git a/home.nix b/home.nix index 59942f3..09c612c 100644 --- a/home.nix +++ b/home.nix @@ -7,7 +7,81 @@ ]; xsession.enable = true; - xdg.userDirs.enable = true; + + xdg = { + userDirs.enable = true; + + mimeApps = { + enable = true; + + defaultApplications = + let + applications = { + telegram = { + mimeApp = "org.telegram.desktop.desktop"; + mimeTypes = [ "x-scheme-handler/tg" ]; + }; + + librewolf = { + mimeApp = "librewolf.desktop"; + + mimeTypes = [ + "x-scheme-handler/http" + "text/html" + "application/xhtml+xml" + "x-scheme-handler/https" + "application/pdf" + ]; + }; + + gnomeTextEditor = { + mimeApp = "org.gnome.TextEditor.desktop"; + mimeTypes = [ "text/plain" ]; + }; + + thunderbird = { + mimeApp = "thunderbird.desktop"; + mimeTypes = [ "x-scheme-handler/mailto" ]; + }; + + loupe = { + mimeApp = "org.gnome.Loupe.desktop"; + mimeTypes = [ + "image/jpeg" + "image/png" + "image/gif" + "image/webp" + "image/tiff" + "image/x-tga" + "image/vnd-ms.dds" + "image/x-dds" + "image/bmp" + "image/vnd.microsoft.icon" + "image/vnd.radiance" + "image/x-exr" + "image/x-portable-bitmap" + "image/x-portable-graymap" + "image/x-portable-pixmap" + "image/x-portable-anymap" + "image/x-qoi" + "image/svg+xml" + "image/svg+xml-compressed" + "image/avif" + "image/heic" + "image/jxl" + ]; + }; + }; + + mimeTypesForApp = { mimeApp, mimeTypes }: map + ( + mimeType: { "${mimeType}" = mimeApp; } + ) + mimeTypes; + in + lib.zipAttrs (lib.flatten (map mimeTypesForApp (builtins.attrValues applications))); + }; + }; home = { username = "pim";