{ description = "kenryuS nixos configurations/dotfiles"; inputs = { nixpkgs.url = "nixpkgs/nixos-24.05"; home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; }; outputs = inputs@{ nixpkgs, home-manager, ... }: let systemSettings = { system = "x86_64-linux"; hostname = "kenryu-nixos"; machine = "workstation"; timezone = "Asia/Tokyo"; locale = "ja_JP.UTF-8"; bootConf = { mode = "uefi"; mountPath = "/boot"; grubDev = ""; }; gpuType = "nvidia"; }; userSettings = { username = "kenryus"; name = "Kenryu Shibata"; email-dev = "kenryudev5894@gmail.com"; dotfilesDir = "/etc/nixos"; editor = "nvim"; editor-pkg = pkgs.neovim; }; pkgs = import inputs.nixpkgs { system = systemSettings.system; config = { allowUnfree = true; allowUnfreePredicate = (_: true ); }; }; lib = inputs.nixpkgs.lib; home-manager = inputs.home-manager; in { nixosConfigurations.system = lib.nixosSystem { system = systemSettings.system; modules = [ (./. + "/machines" + ("/" + systemSettings.machine) + "/configuration.nix") home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.${userSettings.username} = import (./. + "/machines" + ("/" + systemSettings.machine) + "/home.nix"); home-manager.extraSpecialArgs = { inherit userSettings; }; } ]; specialArgs = { inherit systemSettings; inherit userSettings; inherit inputs; }; }; }; }