{ config, lib, ... }: let cfg = config.hm.conf.xdg-dirs; in { options.hm.conf.xdg-dirs = { enable = lib.mkEnableOption "enables xdg dirs"; mediaPath = lib.mkOption { type = lib.types.path; default = config.home.homeDirectory; description = "base path for media"; }; }; config = lib.mkIf cfg.enable { xdg.userDirs = { enable = true; createDirectories = true; download = "${config.home.homeDirectory}/dl"; documents = "${config.home.homeDirectory}/docs"; pictures = "${toString cfg.mediaPath}/pics"; videos = "${toString cfg.mediaPath}/vids"; desktop = null; music = null; publicShare = null; templates = null; extraConfig = { PROJECTS = "${config.home.homeDirectory}/proj"; GAMES = "${config.home.homeDirectory}/games"; MEDIA = "${toString cfg.mediaPath}"; SS = "${toString cfg.mediaPath}/pics/ss"; CLIPS = "${toString cfg.mediaPath}/vids/clips"; MOVIES = "${toString cfg.mediaPath}/movies"; ANIME = "${toString cfg.mediaPath}/anime"; ARCHIVE = "${toString cfg.mediaPath}/archive"; }; }; home.sessionVariables = { PROJECTS = "${config.home.homeDirectory}/proj"; GAMES = "${config.home.homeDirectory}/games"; MEDIA = "${toString cfg.mediaPath}"; SS = "${toString cfg.mediaPath}/pics/ss"; CLIPS = "${toString cfg.mediaPath}/vids/clips"; MOVIES = "${toString cfg.mediaPath}/movies"; ANIME = "${toString cfg.mediaPath}/anime"; ARCHIVE = "${toString cfg.mediaPath}/archive"; }; }; }