1
0
Fork 0
nix-homemanager-laptop/home-manager/default.nix

54 lines
1.6 KiB
Nix

# SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
#
# SPDX-License-Identifier: MIT
{ inputs, withSystem, ... }:
let
entries = builtins.attrNames (builtins.readDir ./.);
modules = builtins.filter (dir: builtins.pathExists (./. + "/${dir}/default.nix")) entries;
in
{
imports = [
inputs.home-manager.flakeModules.home-manager
] ++ builtins.map (name: (./. + "/${name}")) modules;
perSystem =
{ config, system, ... }:
let
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [
inputs.nur.overlays.default
inputs.nixgl.overlays.default
];
};
in
{
_module.args.pkgs = pkgs;
devshells.default = {
commands =
[
{
help = "󰘥 show home-manager documentation";
name = "man-home";
command = "${pkgs.man}/bin/man home-configuration.nix";
category = " home-manager";
}
]
++ builtins.concatMap (name: [
{
help = " `home-manager switch` for ${name}";
name = "hm-${name}";
command = "${pkgs.home-manager}/bin/home-manager switch --flake .#${name}";
category = " home-manager (${name})";
}
{
help = "󰸨 `home-manager switch` for ${name} with backup";
name = "hm-${name}-backup";
command = "${pkgs.home-manager}/bin/home-manager switch --flake .#${name} -b backup";
category = " home-manager (${name})";
}
]) modules;
packages = [ pkgs.home-manager ];
};
};
}