From 981fa9ae78d0673ce54615826ae8647ad5546b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Sun, 16 Mar 2025 17:24:56 +0100 Subject: [PATCH] refactor(home-manager): use flake-parts module This is only available in the unstable HM branch, so we are stuck with the non flake-parts version --- flake-modules/default.nix | 1 + flake-modules/home-modules.nix | 34 +++++++++++++ flake-modules/nixos-modules.nix | 85 +++++++++++---------------------- 3 files changed, 64 insertions(+), 56 deletions(-) create mode 100644 flake-modules/home-modules.nix diff --git a/flake-modules/default.nix b/flake-modules/default.nix index d7b79eb..ce3e3c5 100644 --- a/flake-modules/default.nix +++ b/flake-modules/default.nix @@ -10,6 +10,7 @@ in ./docs.nix ./example-vm.nix ./nixos-modules.nix + ./home-modules.nix ./nixvim-modules.nix ./overlays.nix ./scripts.nix diff --git a/flake-modules/home-modules.nix b/flake-modules/home-modules.nix new file mode 100644 index 0000000..8d8ca71 --- /dev/null +++ b/flake-modules/home-modules.nix @@ -0,0 +1,34 @@ +{ self, inputs, ... }: +let + modules = ../modules; +in +{ + # FIXME(25.05): this version of HM should have the flake module + # imports = [ inputs.home-manager.flakeModules.home-manager ]; + + flake.homeModules = + let + defaultModules = [ + inputs.nixvim.homeManagerModules.nixvim + self.nixvimModules.homeManager + (modules + "/hm") + ]; + nixos = { + imports = defaultModules; + }; + standalone = { + imports = defaultModules ++ [ + inputs.stylix.homeManagerModules.stilyx + ( + { config, ... }: + { + stylix.image = config.jhome.sway.background; + } + ) + ]; + }; + in + { + inherit standalone nixos; + }; +} diff --git a/flake-modules/nixos-modules.nix b/flake-modules/nixos-modules.nix index c0acb54..41bd64f 100644 --- a/flake-modules/nixos-modules.nix +++ b/flake-modules/nixos-modules.nix @@ -8,63 +8,36 @@ let modules = ../modules; in { - flake = { - homeManagerModules = - let - defaultModules = [ - inputs.nixvim.homeManagerModules.nixvim - self.nixvimModules.homeManager - (modules + "/hm") - ]; - nixos = { - imports = defaultModules; + flake.nixosModules = + let + nixosModule = { + imports = [ + inputs.stylix.nixosModules.stylix + inputs.home-manager.nixosModules.home-manager + (modules + "/nixos") + ] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + sharedModules = [ self.homeModules.nixos ]; }; - standalone = { - imports = defaultModules ++ [ - inputs.stylix.homeManagerModules.stilyx - ( - { config, ... }: - { - stylix.image = config.jhome.sway.background; - } - ) - ]; - }; - in - { - inherit standalone nixos; + # Pin nixpkgs + nix.registry.nixpkgs.flake = inputs.nixpkgs; }; - nixosModules = - let - nixosModule = { - imports = [ - inputs.stylix.nixosModules.stylix - inputs.home-manager.nixosModules.home-manager - (modules + "/nixos") - ] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default; - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - sharedModules = [ self.homeManagerModules.nixos ]; - }; - # Pin nixpkgs - nix.registry.nixpkgs.flake = inputs.nixpkgs; - }; - machines = [ "vm" ]; - mkMachine = hostname: { - imports = [ - nixosModule - (import (../machines + "/${hostname}")) - ]; - home-manager.sharedModules = [ { jhome.hostName = hostname; } ]; - }; - machineModules = lib.genAttrs machines mkMachine; - in - { - default = nixosModule; - inherit nixosModule; - } - // machineModules; - }; + machines = [ "vm" ]; + mkMachine = hostname: { + imports = [ + nixosModule + (import (../machines + "/${hostname}")) + ]; + home-manager.sharedModules = [ { jhome.hostName = hostname; } ]; + }; + machineModules = lib.genAttrs machines mkMachine; + in + { + default = nixosModule; + inherit nixosModule; + } + // machineModules; }