{ description = "NixOS from Scratch"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; oxwm = { url = "github:tonybanters/oxwm"; inputs.nixpkgs.follows = "nixpkgs"; }; # nwm = { # url = "github:tonybanters/nwm-flake"; # inputs.nixpkgs.follows = "nixpkgs"; # }; mango = { url = "github:tonybanters/mangowc"; inputs.nixpkgs.follows = "nixpkgs"; }; # quickshell = { # url = "github:outfoxxed/quickshell"; # inputs.nixpkgs.follows = "nixpkgs"; # }; # noctalia = { # url = "github:noctalia-dev/noctalia-shell"; # inputs.nixpkgs.follows = "nixpkgs"; # inputs.quickshell.follows = "quickshell"; # }; }; outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, oxwm, mango, # nwm, # noctalia, ... }: let system = "x86_64-linux"; pkgs = import nixpkgs { system = system; }; unstable_pkgs = import nixpkgs-unstable { system = system; config.allowUnfree = true; # Sorry Uncle Richard }; mkHost = hostname: nixpkgs.lib.nixosSystem { system = system; specialArgs = {inherit unstable_pkgs oxwm;}; modules = [ ./configuration.nix ./hosts/${hostname}/hardware-configuration.nix {networking.hostName = hostname;} # ./modules/noctalia.nix oxwm.nixosModules.default # nwm.nixosModules.default mango.nixosModules.mango home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.tony = import ./home.nix; users.sandbox = import ./home-sandbox.nix; backupFileExtension = "backup"; extraSpecialArgs = {inherit unstable_pkgs;}; }; } ]; }; in { devShells.${system}.st = pkgs.mkShell { # toolchain + headers/libs packages = with pkgs; [ pkg-config xorg.libX11 xorg.libXft xorg.libXinerama fontconfig freetype harfbuzz ]; shellHook = '' export PS1="(suckless-dev) $PS1" ''; }; nixosConfigurations = { nixos-btw = mkHost "nixos-btw"; nixos-srv = mkHost "nixos-srv"; }; }; }