{
  description = "Hyprland test wrapper from nixpkgs only";

  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";

  outputs =
    { self, nixpkgs, ... }:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs {
        inherit system;
        config.allowUnfree = false;
      };

      hypr = pkgs.hyprland;

      configDir = pkgs.lib.cleanSource ./.;
      configFile = "${configDir}/hyprland.lua";

      runtimePackages = with pkgs; [
        swaybg
        quickshell
        waybar
        networkmanagerapplet
        blueman
      ];

      runtimePath = pkgs.lib.makeBinPath runtimePackages;

      verifyScript = pkgs.writeShellScript "hyprland-verify" ''
        export PATH=${runtimePath}:$PATH
        exec ${hypr}/bin/Hyprland --config ${configFile} --verify-config
      '';

      runScript = pkgs.writeShellScript "hyprland-run" ''
        export PATH=${runtimePath}:$PATH
        exec ${hypr}/bin/Hyprland --config ${configFile}
      '';
    in
    {
      apps.${system} = {
        default = {
          type = "app";
          program = "${verifyScript}";
        };

        run = {
          type = "app";
          program = "${runScript}";
        };
      };

      packages.${system}.default = pkgs.runCommand "hyprland-config-check" { } ''
        ${verifyScript}
        touch $out
      '';
    };
}
