# Taken from [misterio's config](https://github.com/Misterio77/nix-config/blob/main/modules/home-manager/monitors.nix)
# This is meant to provide a wm-independent way of specifying the monitor configuration of each machine.
{ lib, ... }:
{
  options.satellite.monitors = lib.mkOption {
    default = [ ];
    type = lib.types.listOf (
      lib.types.submodule {
        options = {
          name = lib.mkOption {
            type = lib.types.str;
            example = "DP-1";
          };

          width = lib.mkOption {
            type = lib.types.int;
            example = 1920;
          };

          height = lib.mkOption {
            type = lib.types.int;
            example = 1080;
          };

          refreshRate = lib.mkOption {
            type = lib.types.int;
            default = 60;
          };

          x = lib.mkOption {
            type = lib.types.int;
            default = 0;
          };

          y = lib.mkOption {
            type = lib.types.int;
            default = 0;
          };

          workspace = lib.mkOption {
            type = lib.types.nullOr lib.types.str;
            default = null;
          };
        };
      }
    );
  };
}