{ config, ... }:

{
  wayland.windowManager.hyprland = {
    enable = true;
    package = null;
    plugins = [
      "/path/to/plugin1"
      (config.lib.test.mkStubPackage { name = "foo"; })
    ];
    settings = {
      cursor = {
        enable_hyprcursor = true;
        sync_gsettings_theme = true;
      };
    };
  };

  test.asserts.warnings.expected = [
    ''
      xdg-desktop-portal 1.17 reworked how portal implementations are loaded, you
      should either set `xdg.portal.config` or `xdg.portal.configPackages`
      to specify which portal backend to use for the requested interface.

      https://github.com/flatpak/xdg-desktop-portal/blob/1.18.1/doc/portals.conf.rst.in

      If you simply want to keep the behaviour in < 1.17, which uses the first
      portal implementation found in lexicographical order, use the following:

      xdg.portal.config.common.default = "*";
    ''
  ];
  test.asserts.warnings.enable = true;

  nmt.script = ''
    config=home-files/.config/hypr/hyprland.conf
    assertFileExists "$config"

    normalizedConfig=$(normalizeStorePaths "$config")
    assertFileContent "$normalizedConfig" ${./null-package-config.conf}
  '';
}
