{ # config, # lib, pkgs, ... }: { home.packages = with pkgs; [ browsers # app chooser in rust (and without bugs) celluloid # mpv gui in libadwaita file-roller # archive manager gnome-text-editor # junction # app chooser loupe # image viewer and editor in rust nautilus # file manager papers # pdf reader in rust ]; xdg = { configFile."mimeapps.list".force = true; mime.enable = true; mimeApps = { enable = true; defaultApplications = let archive_manager = ["org.gnome.FileRoller.desktop"]; file_manager = ["org.gnome.Nautilus.desktop"]; image_viewer = ["org.gnome.Loupe.desktop"]; pdf_reader = ["org.gnome.Papers.desktop"]; video_player = ["io.github.celluloid_player.Celluloid.desktop"]; web_browser = ["software.Browsers.desktop"]; in { # TODO: add text/ mimetypes for gnome-editor "application/pdf" = pdf_reader; "application/vnd.rar" = archive_manager; "application/x-7z-compressed" = archive_manager; "application/x-bzip2-compressed-tar" = archive_manager; "application/x-compressed-tar" = archive_manager; "application/x-xz-compressed-tar" = archive_manager; "application/zip" = archive_manager; "image/jpeg" = image_viewer; "image/png" = image_viewer; "inode/directory" = file_manager; "text/html" = web_browser; "video/mp4" = video_player; "video/mpeg" = video_player; "video/x-matroska" = video_player; "video/x-mpeg" = video_player; "x-scheme-handler/about" = web_browser; "x-scheme-handler/http" = web_browser; "x-scheme-handler/https" = web_browser; "x-scheme-handler/unknown" = web_browser; }; }; }; }