nixos-config/configs/flake-parts/home-manager.nix

90 lines
2.4 KiB
Nix
Raw Normal View History

{ inputs
, lib
, defaultExtraArgs
, defaultNixConf
, ...
}:
2024-01-16 06:54:50 +00:00
{
setups.home-manager = {
configs = {
2024-01-20 09:22:49 +00:00
# The typical user in desktop environments.
2024-01-16 06:54:50 +00:00
foo-dogsquared = {
systems = [ "aarch64-linux" "x86_64-linux" ];
overlays = [
# Neovim nightly!
inputs.neovim-nightly-overlay.overlays.default
# Emacs unstable version!
inputs.emacs-overlay.overlays.default
# Helix master!
inputs.helix-editor.overlays.default
# Get all of the NUR.
inputs.nur.overlay
];
modules = [
inputs.nix-colors.homeManagerModules.default
inputs.nur.hmModules.nur
];
nixvim.instance = "fiesta";
2024-01-17 09:33:31 +00:00
deploy = {
autoRollback = true;
magicRollback = true;
};
2024-01-16 06:54:50 +00:00
};
2024-01-20 09:22:49 +00:00
# The typical user in server environments.
2024-01-16 06:54:50 +00:00
plover.systems = [ "x86_64-linux" ];
};
# Pretty much the baseline home-manager configuration for the whole
# cluster.
sharedModules = [
2024-01-16 06:54:50 +00:00
# ...plus a bunch of third-party modules.
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.hmModules.nix-index
# The default shared config for our home-manager configurations. This
# is also to be used for sharing modules among home-manager users from
# NixOS configurations with `nixpkgs.useGlobalPkgs` set to `true` so
# avoid setting nixpkgs-related options here.
({ pkgs, config, lib, ... }: {
# Set some extra, yeah?
_module.args = defaultExtraArgs;
manual = lib.mkDefault {
html.enable = true;
json.enable = true;
manpages.enable = true;
};
home.stateVersion = lib.mkDefault "23.11";
})
];
2024-01-16 06:54:50 +00:00
standaloneConfigModules = [
defaultNixConf
../../modules/home-manager/profiles/nix-conf.nix
2024-01-16 06:54:50 +00:00
({ config, lib, ... }: {
# Don't create the user directories since they are assumed to
# be already created by a pre-installed system (which should
# already handle them).
xdg.userDirs.createDirectories = lib.mkForce false;
programs.home-manager.enable = lib.mkForce true;
targets.genericLinux.enable = lib.mkDefault true;
2024-01-16 06:54:50 +00:00
})
];
};
flake = {
# Extending home-manager with my custom modules, if anyone cares.
homeModules.default = ../../modules/home-manager;
};
}