66 lines
1.9 KiB
Nix
66 lines
1.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
with lib; let
|
|
evince = "org.gnome.Evince.desktop";
|
|
firefox-esr =
|
|
config.home-manager.users.${config.custom.username}.programs.firefox.package.desktopItem.name;
|
|
gnome-text-editor = "org.gnome.TextEditor.desktop";
|
|
loupe = "org.gnome.Loupe.desktop";
|
|
nautilus = "org.gnome.Nautilus.desktop";
|
|
|
|
cfg = config.custom.settings.xdg;
|
|
in {
|
|
options.custom.settings.xdg.enable = mkOption {default = false;};
|
|
|
|
config = mkIf cfg.enable {
|
|
# https://wiki.archlinux.org/title/XDG_Desktop_Portal
|
|
xdg.portal = {
|
|
enable = true;
|
|
|
|
# Use portal for xdg-open
|
|
# https://github.com/NixOS/nixpkgs/issues/160923
|
|
xdgOpenUsePortal = true;
|
|
};
|
|
|
|
home-manager.users.${config.custom.username}.xdg = {
|
|
configFile."mimeapps.list".force = true;
|
|
|
|
mimeApps = {
|
|
enable = true;
|
|
|
|
# https://www.iana.org/assignments/media-types/media-types.xhtml
|
|
#?? xdg-mime query <default|filetype>
|
|
defaultApplications = {
|
|
"application/json" = gnome-text-editor;
|
|
"application/pdf" = evince;
|
|
"application/xhtml+xml" = gnome-text-editor;
|
|
"application/xhtml_xml" = gnome-text-editor;
|
|
"application/xml" = gnome-text-editor;
|
|
"image/jpeg" = loupe;
|
|
"image/png" = loupe;
|
|
"inode/directory" = nautilus;
|
|
"text/html" = gnome-text-editor;
|
|
"text/plain" = gnome-text-editor;
|
|
"x-scheme-handler/http" = firefox-esr;
|
|
"x-scheme-handler/https" = firefox-esr;
|
|
};
|
|
};
|
|
|
|
userDirs = {
|
|
enable = true;
|
|
createDirectories = true;
|
|
desktop = null;
|
|
templates = "/home/${config.custom.username}/SYNC/linux/config/templates";
|
|
|
|
extraConfig = {
|
|
XDG_SCREENSHOTS_DIR = "${
|
|
config.home-manager.users.${config.custom.username}.xdg.userDirs.pictures
|
|
}/Screenshots";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|