Use Home Manager as a NixOS module
Replace the standalone homeConfigurations output with the Home Manager NixOS module, so a single nixos-rebuild applies both the system and the user configuration. - flake.nix: import home-manager.nixosModules.home-manager, set home-manager.users.leo, drop the now-unused pkgs let-binding (allowUnfree comes from configuration.nix via useGlobalPkgs) - home.nix: drop home.username/homeDirectory and programs.home-manager.enable, all provided by the module - README.md: remove the separate install and home-manager switch steps Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FStCxmGBXQUWjgN2xMSvjU
This commit is contained in:
parent
369502757e
commit
7c37492c69
3 changed files with 17 additions and 22 deletions
|
|
@ -6,6 +6,8 @@
|
|||
4. Add flakes support by appending `nix.settings.experimental-features = ["nix-command" "flakes"];`
|
||||
5. Rebuild `nixos-rebuild switch`
|
||||
6. Clone this repo to your destination of choice (I go with ~/.dotfiles for the time being)
|
||||
7. Install [home-manager](https://nix-community.github.io/home-manager/)
|
||||
8. Switch to the current version `nixos-rebuild switch --flake . --impure` (Impure, because we do not provide hardware configuration, since it is machine dependant)
|
||||
9. Switch to the current version of home-manager `home-manager switch --flake .`
|
||||
7. Switch to the current version `nixos-rebuild switch --flake . --impure` (Impure, because we do not provide hardware configuration, since it is machine dependant)
|
||||
|
||||
Home Manager is included as a NixOS module, so `nixos-rebuild` applies both the
|
||||
system and the user configuration. There is no separate `home-manager switch`
|
||||
step, and no home-manager channel is needed.
|
||||
|
|
|
|||
22
flake.nix
22
flake.nix
|
|
@ -11,22 +11,20 @@
|
|||
let
|
||||
lib = nixpkgs.lib;
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
nixos = lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [./configuration.nix];
|
||||
};
|
||||
};
|
||||
homeConfigurations = {
|
||||
leo = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
};
|
||||
modules = [
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.leo = import ./home.nix;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
9
home.nix
9
home.nix
|
|
@ -1,10 +1,8 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
home.username = "leo";
|
||||
home.homeDirectory = "/home/leo";
|
||||
# home.username and home.homeDirectory are set automatically by the
|
||||
# Home Manager NixOS module, from the home-manager.users.<name> attribute.
|
||||
|
||||
# This value determines the Home Manager release that your configuration is
|
||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||
|
|
@ -109,7 +107,4 @@
|
|||
count = "ls -1 | wc -l";
|
||||
};
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue