{ config, lib, ... }: let cfg = config.xdg; in { options.xdg = with lib; with types; { relativeCacheHome = mkOption { type = str; default = ".cache"; description = "Relative path to directory holding application caches."; }; cacheHome = mkOption { default = "${config.home.homeDirectory}/${cfg.relativeCacheHome}"; }; relativeConfigHome = mkOption { type = str; default = ".config"; description = "Relative path to directory holding application configurations."; }; configHome = mkOption { default = "${config.home.homeDirectory}/${cfg.relativeConfigHome}"; }; relativeDataHome = mkOption { type = str; default = ".local/share"; description = "Relative path to directory holding application data."; }; dataHome = mkOption { default = "${config.home.homeDirectory}/${cfg.relativeDataHome}"; }; relativeStateHome = mkOption { type = str; default = ".local/state"; description = "Relative path to directory holding application states."; }; stateHome = mkOption { default = "${config.home.homeDirectory}/${cfg.relativeStateHome}"; }; }; }