From b9cef0950797c54f6df2c5602c46903668d0fb1e Mon Sep 17 00:00:00 2001 From: Dmitriy Kholkin Date: Fri, 4 Jul 2025 18:16:59 +0300 Subject: [PATCH] feat(wip): add mimeapps module --- modules/home/applications/mimeapps.nix | 93 ++++++++++++++++++++++++++ modules/home/roles/default.nix | 1 + 2 files changed, 94 insertions(+) create mode 100644 modules/home/applications/mimeapps.nix diff --git a/modules/home/applications/mimeapps.nix b/modules/home/applications/mimeapps.nix new file mode 100644 index 0000000..f76a18b --- /dev/null +++ b/modules/home/applications/mimeapps.nix @@ -0,0 +1,93 @@ +{ + config, + lib, + ... +}: +let + inherit (lib) mkEnableOption mkIf; + cfg = config.ataraxia.programs.mimeapps; + apps = config.defaultApplications; +in +{ + options.ataraxia.programs.mimeapps = { + enable = mkEnableOption "Enable mimeapps"; + }; + + config = mkIf cfg.enable { + xdg.mimeApps = { + enable = true; + defaultApplications = { + "text/html" = apps.browser.desktop; + "x-scheme-handler/http" = apps.browser.desktop; + "x-scheme-handler/https" = apps.browser.desktop; + "x-scheme-handler/about" = apps.browser.desktop; + "x-scheme-handler/unknown" = apps.browser.desktop; + + "message/rfc822" = apps.mail.desktop; + "x-scheme-handler/mailto" = apps.mail.desktop; + + "x-scheme-handler/tg" = apps.messenger.desktop; + + "application/x-bittorrent" = apps.torrent.desktop; + + "image/jpeg" = apps.image.desktop; + "image/png" = apps.image.desktop; + "image/gif" = apps.image.desktop; + "image/bmp" = apps.image.desktop; + "image/svg+xml" = apps.image.desktop; + "image/webp" = apps.image.desktop; + + "application/zip" = apps.archive.desktop; + "application/x-rar" = apps.archive.desktop; + "application/x-7z-compressed" = apps.archive.desktop; + "application/x-tar" = apps.archive.desktop; + "application/gzip" = apps.archive.desktop; + "application/x-bzip2" = apps.archive.desktop; + + "inode/directory" = apps.fm.desktop; + + "video/mp4" = apps.media-player.desktop; + "video/x-matroska" = apps.media-player.desktop; + "video/webm" = apps.media-player.desktop; + "video/x-flv" = apps.media-player.desktop; + "video/quicktime" = apps.media-player.desktop; + "video/x-msvideo" = apps.media-player.desktop; + "video/x-ms-wmv" = apps.media-player.desktop; + "audio/mpeg" = apps.media-player.desktop; + "audio/ogg" = apps.media-player.desktop; + "audio/x-wav" = apps.media-player.desktop; + "audio/flac" = apps.media-player.desktop; + "audio/x-ms-wma" = apps.media-player.desktop; + "audio/x-aac" = apps.media-player.desktop; + "audio/opus" = apps.media-player.desktop; + "video/x-m4v" = apps.media-player.desktop; + "video/3gpp" = apps.media-player.desktop; + "video/x-ms-asf" = apps.media-player.desktop; + + "application/pdf" = apps.document-viewer.desktop; + "application/epub+zip" = apps.document-viewer.desktop; + "image/vnd.djvu" = apps.document-viewer.desktop; + "application/postscript" = apps.document-viewer.desktop; + + "text/plain" = apps.editor.desktop; + "text/markdown" = apps.editor.desktop; + "text/x-shellscript" = apps.editor.desktop; + "text/css" = apps.editor.desktop; + "text/csv" = apps.editor.desktop; + "application/json" = apps.editor.desktop; + "text/xml" = apps.editor.desktop; + "application/xml" = apps.editor.desktop; + "application/javascript" = apps.editor.desktop; + "text/x-java-source" = apps.editor.desktop; + "text/x-python" = apps.editor.desktop; + "application/x-python-code" = apps.editor.desktop; + "text/x-csrc" = apps.editor.desktop; + "text/x-c++src" = apps.editor.desktop; + "text/x-h" = apps.editor.desktop; + "text/x-c++hdr" = apps.editor.desktop; + "application/x-desktop" = apps.editor.desktop; + "application/x-nix" = apps.editor.desktop; + }; + }; + }; +} diff --git a/modules/home/roles/default.nix b/modules/home/roles/default.nix index 02a16d8..00f13a0 100644 --- a/modules/home/roles/default.nix +++ b/modules/home/roles/default.nix @@ -82,6 +82,7 @@ in ataraxia.programs.default.enable = mkDefault true; ataraxia.programs.firefox.enable = mkDefault true; ataraxia.programs.kitty.enable = mkDefault true; + ataraxia.programs.mimeapps.enable = mkDefault true; ataraxia.programs.mpv.enable = mkDefault true; ataraxia.programs.rofi.enable = mkDefault false; ataraxia.programs.spotify.enable = mkDefault true;