{ description = "nixconfig"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-26.05"; # Hardware and gaming nixos-hardware.url = "github:NixOS/nixos-hardware/master"; impermanence = { url = "github:nix-community/impermanence"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-mailserver = { # url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-26.05"; url = "gitlab:simple-nixos-mailserver/nixos-mailserver/main"; inputs.nixpkgs.follows = "nixpkgs"; }; microvm = { url = "github:microvm-nix/microvm.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; sls-steam = { url = "github:AceSLS/SLSsteam"; inputs.nixpkgs.follows = "nixpkgs"; }; openmw-nix = { url = "git+https://codeberg.org/adikro/openmw-nix.git"; 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"; }; # Other omnisearch = { url = "git+https://git.bwaaa.monster/omnisearch?shallow=0&rev=24f9909badd4e7aa1f3aeef717b93e9b71c20a4e"; inputs.nixpkgs.follows = "nixpkgs"; }; otter-launcher = { url = "github:kuokuo123/otter-launcher"; inputs.nixpkgs.follows = "nixpkgs"; }; fsel = { url = "github:Mjoyufull/fsel"; inputs.nixpkgs.follows = "nixpkgs"; }; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; nvf = { url = "github:NotAShelf/nvf"; 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; masterDomain = "bibus.top"; }; modules = [ path { networking.hostName = hostname; } ]; }; in { nixosConfigurations = { szpont = mkHost { hostname = "szpont"; path = ./hosts/desktop/configuration.nix; }; thinkpad = mkHost { hostname = "thinkpad"; }; pendrive = mkHost { hostname = "pendrive"; user = "user"; }; bibus-lab = mkHost { hostname = "bibus-lab"; user = "opc"; isStable = true; }; }; }; }