{ description = "NixOS configuration of Ryan Yin"; ################################################################################################################## # # Want to know Nix in details? Looking for a beginner-friendly tutorial? # Check out https://github.com/ryan4yin/nixos-and-flakes-book ! # ################################################################################################################## # the nixConfig here only affects the flake itself, not the system configuration! nixConfig = { # substituers will be appended to the default substituters when fetching packages # nix com extra-substituters = [munity's cache server extra-substituters = [ "https://nix-community.cachix.org" ]; extra-trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; hyprland.url = "github:hyprwm/Hyprland"; home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; }; catppuccin-bat = { url = "github:catppuccin/bat"; flake = false; }; }; outputs = inputs @ { self, nixpkgs, home-manager, ... }: { nixosConfigurations = { iso = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ({ pkgs, modulesPath, ... }: { imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ]; environment.systemPackages = [ pkgs.neovim pkgs.git ]; }) ]; }; m920q = let username = "phil"; specialArgs = {inherit username;}; in nixpkgs.lib.nixosSystem { inherit specialArgs; system = "x86_64-linux"; modules = [ ./hosts/m920q ./users/${username}/nixos.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = inputs // specialArgs; home-manager.users.${username} = import ./users/${username}/home.nix; } ]; }; }; }; }