{ description = "System configuration for panacea"; nixConfig = { extra-substituters = "https://cachix.cachix.org https://nix-community.cachix.org"; extra-trusted-public-keys = '' cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=''; }; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; openconnect-sso = { url = "github:vlaci/openconnect-sso"; inputs.nixpkgs.follows = "nixpkgs"; }; cyrus-sasl-xoauth2 = { url = "github:robn/sasl2-oauth"; flake = false; }; nix-index-database = { url = "github:Mic92/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; local-bitwig = { url = "path:/home/coolneng/Projects/panacea/assets/bitwig"; flake = false; }; }; outputs = { self, nixpkgs, agenix, nix-index-database, ... }@inputs: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; overlays = [ inputs.openconnect-sso.overlay (final: prev: { emacs-vterm = ((pkgs.emacsPackagesFor pkgs.emacs29-pgtk).emacsWithPackages (epkgs: with epkgs; [ vterm ])); }) ]; }; lib = nixpkgs.lib; in { nixosConfigurations.panacea = lib.nixosSystem { inherit system; modules = [ (import ./configuration.nix) agenix.nixosModules.age nix-index-database.nixosModules.nix-index ]; specialArgs = { inherit inputs; inherit pkgs; }; }; }; }