1
1
Fork 0
nixos/options/custom/settings/xdg.nix
Myned ab485dec35
nix: format with alejandra
Signed-off-by: Myned <dev@bjork.tech>
2024-09-12 20:50:53 -05:00

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";
};
};
};
};
}