# docs: # https://rycee.gitlab.io/home-manager/ # https://rycee.gitlab.io/home-manager/options.html # man home-configuration.nix # { lib, config, pkgs, ... }: with lib; let cfg = config.sane.home-manager; # extract `pkg` from `sane.packages.enabledUserPkgs` pkg-list = pkgspec: builtins.map (e: e.pkg) pkgspec; in { options = { sane.home-manager.enable = mkOption { default = false; type = types.bool; }; # attributes to copy directly to home-manager's `wayland.windowManager` option sane.home-manager.windowManager = mkOption { default = {}; type = types.attrs; }; }; config = lib.mkIf cfg.enable { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.colin = { # run `home-manager-help` to access manpages # or `man home-configuration.nix` manual.html.enable = false; # TODO: set to true later (build failure) manual.manpages.enable = false; # TODO: enable after https://github.com/nix-community/home-manager/issues/3344 home.packages = pkg-list config.sane.packages.enabledUserPkgs; wayland.windowManager = cfg.windowManager; home.stateVersion = "21.11"; home.username = "colin"; home.homeDirectory = "/home/colin"; programs = { # XXX: unsure what this does? home-manager.enable = true; }; }; }; }