53 lines
1.4 KiB
Nix
53 lines
1.4 KiB
Nix
# 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;
|
|
};
|
|
};
|
|
};
|
|
}
|