2022-06-09 21:50:24 +00:00
|
|
|
# docs:
|
|
|
|
# https://rycee.gitlab.io/home-manager/
|
|
|
|
# https://rycee.gitlab.io/home-manager/options.html
|
|
|
|
# man home-configuration.nix
|
|
|
|
#
|
|
|
|
|
2022-07-06 21:36:14 +00:00
|
|
|
{ lib, config, pkgs, ... }:
|
2022-06-09 21:50:24 +00:00
|
|
|
|
|
|
|
with lib;
|
|
|
|
let
|
2022-08-01 07:23:49 +00:00
|
|
|
cfg = config.sane.home-manager;
|
2023-01-02 07:45:05 +00:00
|
|
|
# extract `pkg` from `sane.packages.enabledUserPkgs`
|
2023-01-02 07:16:16 +00:00
|
|
|
pkg-list = pkgspec: builtins.map (e: e.pkg) pkgspec;
|
2022-06-09 21:50:24 +00:00
|
|
|
in
|
2022-05-22 08:27:02 +00:00
|
|
|
{
|
2022-06-09 21:50:24 +00:00
|
|
|
options = {
|
2022-11-22 05:28:41 +00:00
|
|
|
sane.home-manager.enable = mkOption {
|
|
|
|
default = false;
|
|
|
|
type = types.bool;
|
|
|
|
};
|
2022-08-03 08:23:23 +00:00
|
|
|
# attributes to copy directly to home-manager's `wayland.windowManager` option
|
2022-08-01 07:23:49 +00:00
|
|
|
sane.home-manager.windowManager = mkOption {
|
2022-06-09 22:01:38 +00:00
|
|
|
default = {};
|
|
|
|
type = types.attrs;
|
|
|
|
};
|
2022-06-09 21:50:24 +00:00
|
|
|
};
|
|
|
|
|
2022-11-22 05:28:41 +00:00
|
|
|
config = lib.mkIf cfg.enable {
|
2022-06-09 21:50:24 +00:00
|
|
|
home-manager.useGlobalPkgs = true;
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
|
2023-01-28 09:31:09 +00:00
|
|
|
home-manager.users.colin = {
|
2022-08-03 08:51:15 +00:00
|
|
|
|
2022-10-06 22:56:37 +00:00
|
|
|
# run `home-manager-help` to access manpages
|
|
|
|
# or `man home-configuration.nix`
|
2022-10-21 07:05:19 +00:00
|
|
|
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
|
2022-10-06 22:56:37 +00:00
|
|
|
|
2023-01-28 09:31:09 +00:00
|
|
|
home.packages = pkg-list config.sane.packages.enabledUserPkgs;
|
2022-08-03 08:51:15 +00:00
|
|
|
wayland.windowManager = cfg.windowManager;
|
|
|
|
|
2022-06-09 21:50:24 +00:00
|
|
|
home.stateVersion = "21.11";
|
|
|
|
home.username = "colin";
|
|
|
|
home.homeDirectory = "/home/colin";
|
|
|
|
|
2023-01-28 09:58:18 +00:00
|
|
|
programs = {
|
|
|
|
# XXX: unsure what this does?
|
|
|
|
home-manager.enable = true;
|
|
|
|
};
|
2022-06-09 21:50:24 +00:00
|
|
|
};
|
|
|
|
};
|
2022-05-22 08:27:02 +00:00
|
|
|
}
|