{ description = "NixOS Configuration"; inputs = { # General NixOS config nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-24-11.url = "github:NixOS/nixpkgs/nixos-24.11"; # Colmena unstable colmena = { url = "github:zhaofengli/colmena"; # inputs.nixpkgs.follows = "nixpkgs"; }; # Nixpkgs index for command-not-found support nix-index-database = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; # NixOS Grub Themes (hyperfluent) nixos-grub-themes = { url = "github:jeslie0/nixos-grub-themes"; inputs.nixpkgs.follows = "nixpkgs"; }; # SDDM Sugar Candy sddm-sugar-candy-nix = { url = "github:Zhaith-Izaliel/sddm-sugar-candy-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; # Home Manager + Plasma home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; # Firefox Nightly + Addons firefox-nightly = { url = "github:nix-community/flake-firefox-nightly"; inputs.nixpkgs.follows = "nixpkgs"; }; firefox-addons = { type = "gitlab"; owner = "rycee"; repo = "nur-expressions"; dir = "/pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; # VSCode extensions vscode-extensions = { url = "github:nix-community/nix-vscode-extensions"; inputs.nixpkgs.follows = "nixpkgs"; }; # VSCode server support vscode-server.url = "github:nix-community/nixos-vscode-server"; }; outputs = inputs@{ self, colmena, ... }: let utils = import ./utils { inherit inputs; secrets = import ./secrets.nix; }; in { # Setup nixos-rebuild configurations nixosConfigurations = { "ty-nixos" = utils.createNixosSystem { entrypoint = ./hosts/laptop; }; "ty-laptop-server" = utils.createNixosSystem { entrypoint = ./hosts/laptop-server; }; }; # Setup colmena configurations colmena = utils.createColmenaHive { hostConfigs = [ { name = "ty-nixos"; entrypoint = ./hosts/laptop; } { name = "ty-laptop-server"; entrypoint = ./hosts/laptop-server; sshHost = "old-lenovo-laptop"; } ]; }; # Enable direct flake support for colmena colmenaHive = colmena.lib.makeHive self.outputs.colmena; }; }