{ config, lib, pkgs, ... }: lib.mkIf config.u.has.graphical { xdg.mimeApps.enable = true; xdg.mimeApps.defaultApplications = let image = "nsxiv-rifle.desktop"; browser = "firefox.desktop"; text = "nvim.desktop"; media = "mpv.desktop"; in { "image/jpeg" = image; "image/png" = image; "image/gif" = image; "image/webp" = image; "image/avif" = image; "audio/mpeg" = media; "audio/ogg" = media; "audio/vorbis" = media; "audio/x-vorbis+ogg" = media; "video/mp4" = media; "video/mpeg" = media; "video/x-matroska" = media; "text/plain" = text; "application/xml" = text; "inode/directory" = "org.kde.dolphin.desktop"; }; xdg.portal = { enable = true; configPackages = [pkgs.kdePackages.xdg-desktop-portal-kde]; extraPortals = [pkgs.kdePackages.xdg-desktop-portal-kde]; config.common.default = "kde"; }; home.file = let ln = config.u.lib.lnh; in { ".local/home/.cache".source = ln ".cache"; ".local/home/.config".source = ln ".config"; ".local/home/.local".source = ln ".local"; ".local/home/Desktop".source = ln "Desktop"; ".local/home/Downloads".source = ln "Downloads"; }; }