# 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"; }; 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, ... } @ inputs: { nixosConfigurations.Tiamat = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = inputs; 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 strip_js_comments; inherit user_js; inherit system; inherit neovim_config; inherit impermanence; inherit 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 {pkgs = nixpkgs.legacyPackages;}; apps."x86_64-linux"."install" = { type = "app"; program = "${self.packages."x86_64-linux".default}"; }; apps."x86_64-linux".default = self.apps."x86_64-linux".install; }; }