{
  description = "A very basic flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    nixos-hardware.url = "github:NixOS/nixos-hardware/master";
    nix-colors.url = "github:misterio77/nix-colors";
    xdph = {
      url = "github:hyprwm/xdg-desktop-portal-hyprland?ref=b9b97e5ba23fe7bd5fa4df54696102e8aa863cf6";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    ronema = {
      url = "/home/chrigi/private-dev/rofi-network-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs =
    {
      self,
      nixpkgs,
      nixos-hardware,
      home-manager,
      nix-colors,
      ronema,
      xdph,
      ...
    }@inputs:
    let
      username = "chrigi";
      lib = nixpkgs.lib;
      system = "x86_64-linux";

      pkgs = import nixpkgs {
        inherit system;
        config.allowUnfree = true;
      };
    in
    {
      nixosConfigurations.nix-fw16 = lib.nixosSystem {
        specialArgs = {
          inherit pkgs ronema xdph;
        };
        modules = [
          ./configuration.nix
          ./greeter.nix
          nixos-hardware.nixosModules.framework-16-7040-amd
          home-manager.nixosModules.home-manager
          {
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.users.${username} = import ./home.nix;
            home-manager.extraSpecialArgs = {
              inherit username nix-colors;
            };
          }
        ];
      };
    };
}
