{ username ? throw "username argument is required", }: { config, lib, pkgs, ... }: let userConfig = config.users.users.${username}; hmConfig = config.home-manager.users.${username}; in { home-manager.users.${username} = { imports = [ ./options.nix ]; xdg = { enable = true; mimeApps.enable = true; portal.extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; userDirs = { enable = true; extraConfig = { XDG_VM_DIR = "${userConfig.home}/VMs"; XDG_GIT_DIR = "${userConfig.home}/git"; }; }; }; home.persistence."/persist${userConfig.home}".directories = with hmConfig.xdg.userDirs; [ relativeDesktop relativeDocuments relativeDownload relativeMusic relativePictures relativeTemplates relativeVideos "VMs" "git" ]; }; }