2024-01-15 14:06:12 +00:00
|
|
|
{ inputs
|
|
|
|
, lib
|
|
|
|
|
|
|
|
, defaultExtraArgs
|
|
|
|
, defaultNixConf
|
|
|
|
|
|
|
|
, ...
|
|
|
|
}:
|
|
|
|
|
2024-01-16 06:54:50 +00:00
|
|
|
{
|
|
|
|
setups.home-manager = {
|
|
|
|
configs = {
|
|
|
|
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
|
|
|
|
];
|
2024-01-17 09:33:31 +00:00
|
|
|
deploy = {
|
|
|
|
autoRollback = true;
|
|
|
|
magicRollback = true;
|
|
|
|
};
|
2024-01-16 06:54:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
plover.systems = [ "x86_64-linux" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
# This is to be used by the NixOS `home-manager.sharedModules` anyways.
|
2024-01-20 09:16:02 +00:00
|
|
|
sharedModules = [
|
2024-01-16 06:54:50 +00:00
|
|
|
# Import our own custom modules from here..
|
2024-01-20 09:16:02 +00:00
|
|
|
../../modules/home-manager
|
|
|
|
../../modules/home-manager/_private
|
2024-01-16 06:54:50 +00:00
|
|
|
|
|
|
|
# ...plus a bunch of third-party modules.
|
2024-01-20 09:16:02 +00:00
|
|
|
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-15 14:06:12 +00:00
|
|
|
|
2024-01-16 06:54:50 +00:00
|
|
|
standaloneConfigModules = [
|
|
|
|
defaultNixConf
|
2024-01-15 14:06:12 +00:00
|
|
|
|
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;
|
2024-01-17 09:32:34 +00:00
|
|
|
targets.genericLinux.enable = lib.mkDefault true;
|
2024-01-16 06:54:50 +00:00
|
|
|
})
|
|
|
|
];
|
|
|
|
};
|
2024-01-15 14:06:12 +00:00
|
|
|
|
|
|
|
flake = {
|
|
|
|
# Extending home-manager with my custom modules, if anyone cares.
|
2024-01-20 09:16:02 +00:00
|
|
|
homeModules.default = ../../modules/home-manager;
|
2024-01-15 14:06:12 +00:00
|
|
|
};
|
|
|
|
}
|