{ config, lib, ... }: let cfg = config.modules.system.desktop.mimeapps; avApp = "io.github.celluloid_player.Celluloid.desktop"; imageApp = "org.gnome.eog.desktop"; in { options.modules.system.desktop.mimeapps = { enable = lib.mkOption { default = false; example = true; }; }; config = lib.mkIf cfg.enable { xdg.mime.defaultApplications = { # Audio/video "audio/x-vorbis+ogg" = avApp; "audio/3gpp" = avApp; "audio/3gpp2" = avApp; "audio/aac" = avApp; "audio/ac3" = avApp; "audio/amr" = avApp; "audio/amr-wb" = avApp; "audio/basic" = avApp; "audio/dv" = avApp; "audio/eac3" = avApp; "audio/flac" = avApp; "audio/m4a" = avApp; "audio/midi" = avApp; "audio/mp1" = avApp; "audio/mp2" = avApp; "audio/mp3" = avApp; "audio/mp4" = avApp; "audio/mpeg" = avApp; "audio/mpegurl" = avApp; "audio/mpg" = avApp; "audio/ogg" = avApp; "audio/opus" = avApp; "audio/scpls" = avApp; "audio/vnd.dolby.heaac.1" = avApp; "audio/vnd.dolby.heaac.2" = avApp; "audio/vnd.dolby.mlp" = avApp; "audio/vnd.dts" = avApp; "audio/vnd.dts.hd" = avApp; "audio/vnd.rn-realaudio" = avApp; "audio/wav" = avApp; "audio/webm" = avApp; "audio/x-aac" = avApp; "audio/x-aiff" = avApp; "audio/x-ape" = avApp; "audio/x-flac" = avApp; "audio/x-gsm" = avApp; "audio/x-it" = avApp; "audio/x-m4a" = avApp; "audio/x-matroska" = avApp; "audio/x-mod" = avApp; "audio/x-mp1" = avApp; "audio/x-mp2" = avApp; "audio/x-mp3" = avApp; "audio/x-mpeg" = avApp; "audio/x-mpegurl" = avApp; "audio/x-mpg" = avApp; "audio/x-ms-asf" = avApp; "audio/x-ms-wma" = avApp; "audio/x-musepack" = avApp; "audio/x-pn-aiff" = avApp; "audio/x-pn-au" = avApp; "audio/x-pn-realaudio" = avApp; "audio/x-pn-wav" = avApp; "audio/x-real-audio" = avApp; "audio/x-realaudio" = avApp; "audio/x-s3m" = avApp; "audio/x-scpls" = avApp; "audio/x-shorten" = avApp; "audio/x-speex" = avApp; "audio/x-tta" = avApp; "audio/x-vorbis" = avApp; "audio/x-wav" = avApp; "audio/x-wavpack" = avApp; "audio/x-xm" = avApp; "video/x-ogm+ogg" = avApp; "video/3gp" = avApp; "video/3gpp" = avApp; "video/3gpp2" = avApp; "video/divx" = avApp; "video/dv" = avApp; "video/fli" = avApp; "video/flv" = avApp; "video/mp2t" = avApp; "video/mp4" = avApp; "video/mp4v-es" = avApp; "video/mpeg" = avApp; "video/mpeg-system" = avApp; "video/msvideo" = avApp; "video/ogg" = avApp; "video/quicktime" = avApp; "video/vnd.mpegurl" = avApp; "video/vnd.rn-realvideo" = avApp; "video/webm" = avApp; "video/x-avi" = avApp; "video/x-flc" = avApp; "video/x-fli" = avApp; "video/x-flv" = avApp; "video/x-m4v" = avApp; "video/x-matroska" = avApp; "video/x-mpeg" = avApp; "video/x-mpeg-system" = avApp; "video/x-mpeg2" = avApp; "video/x-ms-asf" = avApp; "video/x-ms-wm" = avApp; "video/x-ms-wmv" = avApp; "video/x-ms-wmx" = avApp; "video/x-msvideo" = avApp; "video/x-nsv" = avApp; "video/x-theora" = avApp; "video/x-theora+ogg" = avApp; # Images "image/jpeg" = imageApp; "image/bmp" = imageApp; "image/gif" = imageApp; "image/jpg" = imageApp; "image/pjpeg" = imageApp; "image/png" = imageApp; "image/tiff" = imageApp; "image/webp" = imageApp; "image/x-bmp" = imageApp; "image/x-gray" = imageApp; "image/x-icb" = imageApp; "image/x-ico" = imageApp; "image/x-png" = imageApp; "image/x-portable-anymap" = imageApp; "image/x-portable-bitmap" = imageApp; "image/x-portable-graymap" = imageApp; "image/x-portable-pixmap" = imageApp; "image/x-xbitmap" = imageApp; "image/x-xpixmap" = imageApp; "image/x-pcx" = imageApp; "image/svg+xml" = imageApp; "image/svg+xml-compressed" = imageApp; "image/vnd.wap.wbmp" = imageApp; "image/x-icns" = imageApp; }; }; }