From 5da01d688fcfd4d1956197f7b7f9372e88687d05 Mon Sep 17 00:00:00 2001 From: Azat Bahawi Date: Sat, 4 Nov 2023 16:52:03 +0300 Subject: 2023-11-04 --- modules/nixos/common/xdg.nix | 104 ++++++++++++------------------------------- 1 file changed, 28 insertions(+), 76 deletions(-) (limited to 'modules/nixos/common/xdg.nix') diff --git a/modules/nixos/common/xdg.nix b/modules/nixos/common/xdg.nix index b46c350..668996f 100644 --- a/modules/nixos/common/xdg.nix +++ b/modules/nixos/common/xdg.nix @@ -7,85 +7,37 @@ with lib; let cfg = config.nixfiles.modules.common.xdg; in { - xdg.portal = mkIf this.isHeadful { - enable = true; + options.nixfiles.modules.common.xdg.defaultApplications = mkOption { + description = "Default applications."; + type = with types; attrsOf (listOf str); + default = {}; }; - hm.xdg = mkMerge [ - (with cfg; { + config = { + xdg.portal = mkIf this.isHeadful { enable = true; + }; - inherit cacheHome; - inherit configHome; - inherit dataHome; - inherit stateHome; - inherit userDirs; - }) - (mkIf this.isHeadful { - mimeApps = { + hm.xdg = mkMerge [ + (with cfg; { enable = true; - # https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types - defaultApplications = mkMerge (mapAttrsToList - (n: v: genAttrs v (_: ["${n}.desktop"])) - { - emacsclient = [ - "application/json" - "application/ld+json" - "application/vnd.ms-publisher" - "application/x-c" - "application/x-desktop" - "application/x-httpd-php" - "application/x-sh" - "application/x-tex" - "application/xhtml+xml" - "application/xml" - "text/css" - "text/csv" - "text/javascript" - "text/markdown" - "text/plain" - "text/x-lisp" - ]; - firefox = [ - "text/html" - "x-scheme-handler/http" - "x-scheme-handler/https" - ]; - mpv = [ - "audio/3gpp" - "audio/3gpp2" - "audio/aac" - "audio/flac" - "audio/mp3" - "audio/mpeg" - "audio/ogg" - "audio/opus" - "audio/wav" - "audio/webm" - "image/avif" - "image/bmp" - "image/gif" - "image/jpeg" - "image/jpg" - "image/png" - "image/tiff" - "image/vnd.microsoft.icon" - "image/webp" - "video/mkv" - "video/mp2t" - "video/mp4" - "video/mpeg" - "video/ogg" - "video/webm" - "video/x-matroska" - "video/x-msvideo" - ]; - "org.pwmt.zathura" = [ - "application/pdf" - "application/epub+zip" - ]; - }); - }; - }) - ]; + + inherit cacheHome; + inherit configHome; + inherit dataHome; + inherit stateHome; + inherit userDirs; + }) + (mkIf this.isHeadful { + mimeApps = { + enable = true; + defaultApplications = + mkMerge + (mapAttrsToList + (n: v: genAttrs v (_: ["${n}.desktop"])) + cfg.defaultApplications); + }; + }) + ]; + }; } -- cgit v1.2.3