{
  description = "nico's linux system.";

  inputs = {
    # NixOS official package source, using the unstable branch here
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    lanzaboote.url = "github:nix-community/lanzaboote/v0.4.1";
    lanzaboote.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = { self, nixpkgs, lanzaboote, ... }@inputs: {
    nixosConfigurations.pluto = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        ./hosts/nixos-common.nix

        ./modules/shell.nix
        ./modules/users.nix
        ./modules/hyprland.nix
        ./modules/applications.nix
        ./modules/firefox.nix
        ./modules/games.nix
        ./modules/stow.nix

        ./modules/secureboot.nix
        lanzaboote.nixosModules.lanzaboote

        ./hosts/pluto/conf.nix
        ./hosts/pluto/hardware-configuration.nix
      ];
    };
  };
}
