So, I started modularizing my nix config and using vimjoyer videos + online tutorials i managed to get started with creating a basic structure from a flake that will handle both my desktop workstation and my ideapad laptop using a global config and home manager for a user.
below it’s what i did so far.
description = "my nixos config for both my laptop and my workstation";
inputs = {
nixpkgs.url = "nixpkgs/nixos-24.11";
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, ... }:
let
lib = nixpkgs.lib;
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
in {
nixosConfigurations = {
ideapad = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
"./ideapad/modules/global/bootloader.nix"
];
};
workstation = nixpkgs.lib.nixosSystem {
inherit system;
modules = [];
};
};
homeConfigurations = {
ideapad = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [./ideapad/home.nix];
};
workstation = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [];
};
};
};
}
Problem is that when i use nix flake update and then nix flake show
i get unknown homeConfiguration and I don’t believe it is intended.
What will be the painless way to
continue modularizing my monolithic configuration.nix into modules related on topis [ as of now i just modularized specific grub options for my laptop]
decide what programs i have to install via global pkgs and what via home manager (e.g. alacritty discord nodejs)
i really can’t get how overlays and external flakes works, even with guides, can you give me a direct example of advantages and all?
thank you so much, I’m really sorry if i suounded dumb