{ description = "Emile's Nix Dotfiles"; inputs = { # nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; #home-manager = { # url = "github:nix-community/home-manager"; # inputs.nixpkgs.follows = "nixpkgs"; #}; spicetify-nix = { url = "github:Gerg-L/spicetify-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; nixcord.url = "github:kaylorben/nixcord"; grub2-themes.url = "github:vinceliuice/grub2-themes"; # is this necessary? (aren't I enabling it in `configuration.nix` anyways?) hyprland.url = "github:hyprwm/Hyprland"; hyprpanel = { url = "github:Jas-SinghFSU/HyprPanel"; #inputs.nixpkgs.follows = "nixpkgs"; }; swww.url = "github:LGFae/swww"; # TODO: declarative flatpak management nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; ags.url = "github:Aylur/ags"; # colmena.url = "github:zhaofengli/colmena"; colmena.url = "github:zhaofengli/colmena/?rev=47b6414d800c8471e98ca072bc0835345741a56a"; }; outputs = { self, nixpkgs, #home-manager, hyprland, grub2-themes, nixcord, hyprpanel, colmena, ... } @ inputs: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config = { allowUnfree = true; }; overlays = [ inputs.hyprpanel.overlay ]; }; # TODO: come back to this its really cool # this is just something I'm experimenting with PROJECT_ROOT = builtins.toString ./.; in { # `nix develop` shell devShells."x86_64-linux".default = pkgs.mkShell { buildInputs = [ #colmena-new ]; }; nixosConfigurations = { # i be on my puter fr myputer = nixpkgs.lib.nixosSystem { # nix passes these to every single module specialArgs = {inherit inputs pkgs;}; modules = [ ./hosts/myputer grub2-themes.nixosModules.default ]; }; # my laptop 0w0 lolcathost = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs pkgs;}; modules = [ ./hosts/lolcathost grub2-themes.nixosModules.default ]; }; }; # remote deployment to my servers!! colmenaHive = colmena.lib.makeHive { meta = { # set nixpkgs global nixpkgs = pkgs; # set nixpkgs per server nodeNixpkgs = { hyrule = import nixpkgs { system = "x86_64-linux"; config.allowUnfree = false; }; }; # we can use `specialArgs.inputs` to inject wishlist into hyrule's module #specialArgs.inputs = with inputs; {inherit wishlist;}; }; # meine vps hyrule = import ./hosts/hyrule; }; }; }