Refactor home-manager module imports
This commit is contained in:
parent
7b502cc207
commit
05d9dd9808
4 changed files with 67 additions and 44 deletions
62
flake.nix
62
flake.nix
|
@ -11,57 +11,75 @@
|
|||
nixos-hardware.url = github:NixOS/nixos-hardware;
|
||||
};
|
||||
|
||||
outputs = args@{ home-manager, nixpkgs, agenix, nixos-hardware, ... }: with nixpkgs; {
|
||||
outputs = args@{ self, home-manager, nixpkgs, agenix, nixos-hardware, ... }: with nixpkgs; {
|
||||
|
||||
# Configurations for NixOS machines.
|
||||
nixosConfigurations =
|
||||
let mkUserConfig = path: {
|
||||
imports = [ home-manager.nixosModules.home-manager ];
|
||||
config = {
|
||||
home-manager.users."riley" = (import "${path}/home.nix");
|
||||
};
|
||||
nixosConfigurations = let
|
||||
# Generate a user configuration for the given user, based on the given home manager
|
||||
# configuration.
|
||||
userConfig = user: home: [
|
||||
home-manager.nixosModules.home-manager
|
||||
({ config, ... }: {
|
||||
home-manager.users."${user}" = (home // {
|
||||
config.home = {
|
||||
inherit (config.system) stateVersion;
|
||||
username = user;
|
||||
};
|
||||
}).config;
|
||||
})
|
||||
];
|
||||
in {
|
||||
|
||||
# Desktop system
|
||||
"strawberry" = lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
(mkUserConfig ./system/strawberry)
|
||||
agenix.nixosModules.default
|
||||
./system/strawberry/core.nix
|
||||
./shared/core
|
||||
./shared/secrets.nix
|
||||
];
|
||||
] ++ (userConfig "riley" self.homeConfigurations."strawberry");
|
||||
specialArgs = args;
|
||||
};
|
||||
|
||||
# Thinkpad
|
||||
"lime" = lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
(mkUserConfig ./system/lime)
|
||||
agenix.nixosModules.default
|
||||
nixos-hardware.nixosModules.lenovo-thinkpad-x390
|
||||
nixos-hardware.nixosModules.common-gpu-nvidia-disable
|
||||
./system/lime/core.nix
|
||||
./shared/core
|
||||
./shared/secrets.nix
|
||||
];
|
||||
] ++ (userConfig "riley" self.homeConfigurations."lime");
|
||||
specialArgs = args;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
# Configurations for non-NixOS machines.
|
||||
homeConfigurations = with home-manager.lib; {
|
||||
homeConfigurations = with home-manager.lib; let
|
||||
pkgs = import nixpkgs {
|
||||
system = "x86_64-linux";
|
||||
overlays = [ self.overlays.default ];
|
||||
};
|
||||
in {
|
||||
# riley @ dev-lt-63
|
||||
"dev-lt-63" = homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
||||
inherit pkgs;
|
||||
modules = [
|
||||
./system/dev-lt-63/home.nix
|
||||
./shared/home
|
||||
];
|
||||
};
|
||||
# riley @ strawberry
|
||||
"strawberry" = homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [
|
||||
./system/strawberry/home.nix
|
||||
./shared/home
|
||||
];
|
||||
};
|
||||
# riley @ lime
|
||||
"lime" = homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [
|
||||
./system/lime/home.nix
|
||||
./shared/home
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
overlays = {
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, agenix, ... }:
|
||||
|
||||
{
|
||||
|
||||
imports = [
|
||||
agenix.nixosModules.default
|
||||
../secrets.nix
|
||||
./services.nix
|
||||
./backups.nix
|
||||
./users.nix
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
{ lib, modulesPath, ... }: {
|
||||
{ lib, modulesPath, nixos-hardware, ... }: {
|
||||
|
||||
imports = [./hardware-configuration.nix];
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
nixos-hardware.nixosModules.lenovo-thinkpad-x390
|
||||
nixos-hardware.nixosModules.common-gpu-nvidia-disable
|
||||
];
|
||||
|
||||
custom = {
|
||||
gui.enable = true;
|
||||
|
@ -15,7 +19,5 @@
|
|||
system.stateVersion = "22.11";
|
||||
services.xserver.libinput.enable = true;
|
||||
|
||||
home-manager.users."riley".home.stateVersion = "22.11";
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -9,4 +9,5 @@
|
|||
};
|
||||
};
|
||||
programs.iamb.enable = true;
|
||||
home.stateVersion = "22.11";
|
||||
}
|
Loading…
Reference in a new issue