{ inputs, ... }@flakeContext: let homeModule = { config, lib, pkgs, ... }: let # Paths beetsPath = "${config.xlib.dirs.storage}/beets/linux"; sshPath = "${config.xlib.dirs.storage}/ssh/${config.xlib.devices.server.hostname}"; musicPath = "${config.home.homeDirectory}/External/Music"; in { imports = [ ./minimal.nix ]; xdg = { configFile = { "beets" = { source = config.lib.file.mkOutOfStoreSymlink beetsPath; target = "beets"; }; }; enable = true; autostart.enable = true; userDirs = { enable = true; createDirectories = false; desktop = null; documents = null; download = null; music = null; pictures = null; publicShare = null; templates = null; videos = null; }; }; home = { file = { ".ssh" = { source = config.lib.file.mkOutOfStoreSymlink sshPath; target = ".ssh"; }; "Music" = { source = config.lib.file.mkOutOfStoreSymlink musicPath; target = "${config.home.homeDirectory}/Music"; }; }; username = "${config.xlib.devices.admin}"; }; }; nixosModule = { ... }: { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.${config.xlib.devices.admin} = homeModule; sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ]; }; }; in ( (inputs.home-manager.lib.homeManagerConfiguration { modules = [ homeModule ]; pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; }) // { inherit nixosModule; } )