{ description = "My Nixos"; inputs = { # all nix packages (version unstable) nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; # home manager home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; # flake hyprland (git version) hyprland.url = "github:hyprwm/Hyprland"; nixos-hardware.url = "github:NixOS/nixos-hardware"; # zen browser (communautaire) — follows pour partager les libs système zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; #stylix stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; # ici : # - inputs@ capture l'ensemble des inputs dans une variable "inputs" accessible par # "specialArgs" et "extraSpecialArgs". inputs.hyprland pourra être utilisé dans n'importe # quel fichier importé sans avoir à redéclarer dans flake.nix # - ajouter dans la ligne d'outputs les nouveaux packages ajoutés en input ! outputs = inputs@{ self, nixpkgs, home-manager, hyprland, nixos-hardware, zen-browser, stylix, ... }: # pour la configuration nixos-home { nixosConfigurations.nixos-home = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ./hosts/nixos-home/configuration.nix stylix.nixosModules.stylix home-manager.nixosModules.home-manager { # default config home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; # emplacement de la config home-manager.users.afoucaultc = import ./home/afoucaultc/home.nix; home-manager.backupFileExtension = "backup"; } ]; }; # pour la configuration home-laptop nixosConfigurations.nixos-laptop = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ./hosts/nixos-laptop/configuration.nix stylix.nixosModules.stylix home-manager.nixosModules.home-manager { # default config home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; # emplacement de la config home-manager.users.afoucaultc = import ./home/afoucaultc/home-laptop.nix; home-manager.backupFileExtension = "backup"; } ]; }; }; }