# vim: ts=2 { description = "Nixos system config"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; impermanence = { url = "github:nix-community/impermanence"; }; neovim_config = { url = "git+https://codeberg.org/ene/neovim-config.git"; flake = false; }; strip_js_comments = { url = "git+https://codeberg.org/ene/strip_js_comments.git"; inputs.nixpkgs.follows = "nixpkgs"; }; shell-library = { url = "git+https://git.sils.li/ene/lib-sh.git"; flake = false; }; user_js = { url = "github:arkenfox/user.js"; flake = false; }; snap-sync = { url = "github:qubidt/snap-sync"; flake = false; }; }; outputs = { self, nixpkgs, home-manager, neovim_config, strip_js_comments, user_js, impermanence, agenix, snap-sync, shell-library, ... } @ inputs: let pkgs = nixpkgs.legacyPackages.x86_64-linux; in { nixosConfigurations.Tiamat = let sysLib = import ./lib {inherit pkgs shell-library;}; system = "x86_64-linux"; in nixpkgs.lib.nixosSystem { inherit system; specialArgs = pkgs.lib.recursiveUpdate inputs sysLib; modules = [ ./hosts/desktop/configuration.nix agenix.nixosModules.default home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.soispha = import ./home-manager; extraSpecialArgs = { inherit sysLib strip_js_comments user_js system neovim_config impermanence snap-sync ; }; }; } ]; }; nixosConfigurations.Spawn = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = inputs; modules = [./hosts/spawn/configuration.nix]; }; packages."x86_64-linux".default = import ./bootstrap { inherit pkgs shell-library; }; apps."x86_64-linux"."install" = { type = "app"; program = "${self.packages."x86_64-linux".default}/bin/install"; }; apps."x86_64-linux".default = self.apps."x86_64-linux".install; }; }