{ description = "NixOS configuration"; inputs = { # nixpkgs nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # home manager home-manager.url = "github:nix-community/home-manager/master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; # hyprland hyprland.url = "github:hyprwm/Hyprland"; hyprland.inputs.nixpkgs.follows = "nixpkgs"; # hyprland plugins hyprland-plugins.url = "github:hyprwm/hyprland-plugins"; hyprland-plugins.inputs.hyprland.follows = "hyprland"; # hyprland hy3 hy3.url = "github:outfoxxed/hy3"; hy3.inputs.hyprland.follows = "hyprland"; # sops sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; # astal astal.url = "github:aylur/astal"; astal.inputs.nixpkgs.follows = "nixpkgs"; # talc talc.url = "git+https://g.trimill.xyz/trimill/talc"; talc.inputs.nixpkgs.follows = "nixpkgs"; # unofficial-homestuck-collection unofficial-homestuck-collection.url = "git+https://g.freya.cat/freya/unofficial-homestuck-collection-nix"; unofficial-homestuck-collection.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = {nixpkgs, ...} @ inputs: let options = import ./options.nix; systems = ["x86_64-linux"]; perSystem = func: builtins.listToAttrs (map ( system: let pkgs = nixpkgs.legacyPackages.${system}; in { name = system; value = func pkgs system; } ) systems); in rec { nixosConfigurations = { shinji = import ./hosts/shinji.nix {inherit inputs options;}; kaworu = import ./hosts/kaworu.nix {inherit inputs options;}; }; homeConfigurations = { shinji = nixosConfigurations.shinji.config.home-manager.users.${options.user}.home; kaworu = nixosConfigurations.kaworu.config.home-manager.users.${options.user}.home; }; lib = import ./lib { inherit inputs options; inherit (nixpkgs) lib; }; packages = perSystem ( pkgs: system: import ./pkgs { inherit pkgs inputs system options; inherit (nixpkgs) lib; } ); legacyPackages = packages; formatter = perSystem ( pkgs: system: pkgs.alejandra ); }; }