{ description = "Emile's Nix Dotfiles"; inputs = { # nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; #nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; #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"; 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"; hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; # colmena.url = "github:zhaofengli/colmena"; colmena.url = "github:zhaofengli/colmena/?rev=47b6414d800c8471e98ca072bc0835345741a56a"; # alternative to colmena (currently in testing) #deploy-rs.url = "github:serokell/deploy-rs"; #wishlist.url = "path:/home/me/nixdots/flakes/wishlist"; }; outputs = { self, nixpkgs, #home-manager, hyprland, grub2-themes, nixcord, colmena, #deploy-rs, ... } @ inputs: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config = { allowUnfree = true; }; }; # 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 ]; }; # meine vps # hyrule = nixpkgs.lib.nixosSystem { # # manually set system architecture since # # this is for a remote deployment # system = "x86_64-linux"; # specialargs = {inherit inputs pkgs;}; # # modules = [ # ./hosts/hyrule # ]; # }; }; # remote deployment with deploy-rs # deploy.nodes.hyrule = { # hostname = "imbored.dev"; # # create a primary profile called "system" # profiles.system = { # user = "root"; # user to deploy to # path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.hyrule; # # # ssh configuration for reaching the server # sshUser = "ae"; # #interactiveSudo = true; # TODO: use this and revoke passwordless sudo for ae # sshOpts = ["-i" "/home/me/.ssh/id_hyrule"]; # remoteBuild = false; # build locally then deploy to remote host # }; # }; # 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; }; }; }