{ description = "nixconfig"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11"; # Hardware and gaming nixos-hardware.url = "github:NixOS/nixos-hardware/master"; openmw-nix = { url = "git+https://codeberg.org/PopeRigby/openmw-nix.git"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-gaming-edge = { url = "github:powerofthe69/nix-gaming-edge"; inputs.nixpkgs.follows = "nixpkgs"; }; # System Utilities sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; disko = { url = "github:nix-community/disko/latest"; inputs.nixpkgs.follows = "nixpkgs"; }; # UI and apps niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; waybar = { url = "github:Alexays/Waybar"; inputs.nixpkgs.follows = "nixpkgs"; }; yazi = { url = "github:sxyazi/yazi"; inputs.nixpkgs.follows = "nixpkgs"; }; satty = { url = "github:gabm/Satty"; inputs.nixpkgs.follows = "nixpkgs"; }; spicetify-nix = { url = "github:Gerg-L/spicetify-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; subtui = { url = "github:MattiaPun/SubTUI"; inputs.nixpkgs.follows = "nixpkgs"; }; # Editors nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; nvf = { url = "github:NotAShelf/nvf"; inputs.nixpkgs.follows = "nixpkgs"; }; neovim-nightly-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; # Other omnisearch = { # url = "git+https://git.bwaaa.monster/omnisearch"; url = "git+https://git.bwaaa.monster/omnisearch?shallow=0"; inputs.nixpkgs.follows = "nixpkgs"; }; otter-launcher = { url = "github:kuokuo123/otter-launcher"; inputs.nixpkgs.follows = "nixpkgs"; }; fsel = { url = "github:Mjoyufull/fsel"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, nixpkgs-stable, ... }@inputs: let unstablePkgs = import nixpkgs { }; stablePkgs = import nixpkgs-stable { }; mkHost = { hostname, user ? "adam", isStable ? false, path ? ./hosts/${hostname}/configuration.nix, }: nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; username = user; pkgs-unstable = unstablePkgs; pkgs-stable = stablePkgs; }; modules = [ path { networking.hostName = hostname; } ]; }; in { nixosConfigurations = { szpont = mkHost { hostname = "szpont"; path = ./hosts/desktop/configuration.nix; }; laptop = mkHost { hostname = "laptop"; }; thinkpad = mkHost { hostname = "thinkpad"; }; pendrive = mkHost { hostname = "pendrive"; user = "user"; }; }; }; }