flake.nix 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. {
  2. description = "my home manager configuration";
  3. inputs = {
  4. nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
  5. nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-24.11-darwin";
  6. nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
  7. home-manager.url = "github:nix-community/home-manager/release-24.11";
  8. home-manager.inputs.nixpkgs.follows = "nixpkgs";
  9. nixvim.url = "github:nix-community/nixvim/nixos-24.11";
  10. nixvim.inputs.nixpkgs.follows = "nixpkgs";
  11. };
  12. outputs = { self, nixpkgs, nixpkgs-darwin, nixpkgs-unstable, home-manager, ... }@inputs:
  13. let
  14. inherit (self) outputs;
  15. forAllSystems = nixpkgs.lib.genAttrs [
  16. "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin"
  17. ];
  18. in
  19. {
  20. homeManagerModules = import ./modules;
  21. packages = forAllSystems (system:
  22. let
  23. pkgs = if builtins.elem "darwin" (builtins.split "\\." system) then
  24. nixpkgs-darwin.legacyPackages.${system}
  25. else
  26. nixpkgs.legacyPackages.${system};
  27. in {
  28. homeConfigurations = {
  29. thomas = home-manager.lib.homeManagerConfiguration {
  30. inherit pkgs;
  31. extraSpecialArgs = { inherit inputs; inherit outputs; };
  32. modules = [
  33. ./users/thomas
  34. ./users/thomas/desktop
  35. ./users/thomas/nvim
  36. ];
  37. };
  38. thomas-slim = home-manager.lib.homeManagerConfiguration {
  39. inherit pkgs;
  40. extraSpecialArgs = { inherit inputs; inherit outputs; };
  41. modules = [ ./users/thomas ];
  42. };
  43. };
  44. }
  45. );
  46. };
  47. }