{
  "id": "ddcutil",
  "name": "ddcutil",
  "homepage": "https://www.ddcutil.com/",
  "description": "Control monitor settings using DDC/CI and USB.",
  "executables": [
    "ddcutil",
    "ddcui"
  ],
  "platforms": [
    "linux"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/ddcutil/ddcutilrc",
      "[configHome]/ddcutil/ddcuirc"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Monitor settings",
    "description": "Query and change monitor settings over DDC/CI. Relative +/- changes, dumpvcp/loadvcp, diagnostics and USB options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "detect"
        ],
        "label": "Detect monitors",
        "source": [
          {
            "id": "man",
            "kind": "manual",
            "url": "https://manpages.debian.org/bookworm/ddcutil/ddcutil.1.en.html",
            "evidence": "detect\n\"Report monitors\"\n-v, --verbose\nShow extended detail\n"
          }
        ],
        "field": [
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "man"
            ]
          }
        ],
        "task": [
          {
            "id": "detect",
            "label": "Detect monitors",
            "fields": [
              "verbose"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "verbose"
            ]
          }
        ]
      },
      {
        "path": [
          "getvcp"
        ],
        "label": "Read a feature",
        "source": [
          {
            "id": "man",
            "kind": "manual",
            "url": "https://manpages.debian.org/bookworm/ddcutil/ddcutil.1.en.html",
            "evidence": "getvcp [ feature-code | feature-group ]\nReport a single VCP feature value, or a group of feature values\nfeature-code\nA feature-code is specified by its 2 character hex feature number,\nwith or without a leading \"0x\", e.g. 0x10, 10\nALL|KNOWN\nCOLOR\nPROFILE\nSCAN\n-t, --terse,\n--brief\nShow brief detail. For command getvcp, the output is in machine\nreadable form.\n-v, --verbose\nShow extended detail\n-d , --dis , --display\ndisplay-number logical display number (starting from 1)\n-b,--bus\nbus-number I2C bus number\n"
          }
        ],
        "field": [
          {
            "id": "feature",
            "label": "Feature code or group",
            "description": "Hex code such as 10 (brightness) or a group such as ALL, KNOWN, COLOR, PROFILE, SCAN.",
            "type": "string",
            "position": 0,
            "suggestions": [
              {
                "value": "10",
                "label": "Brightness (0x10)"
              },
              {
                "value": "12",
                "label": "Contrast (0x12)"
              },
              {
                "value": "ALL",
                "label": "All known features"
              },
              {
                "value": "COLOR",
                "label": "Color features"
              }
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "display",
            "label": "Display number",
            "description": "Logical display number, starting from 1. Default is the first detected monitor.",
            "type": "integer",
            "option": [
              "--display",
              "-d"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "bus",
            "label": "I2C bus number",
            "type": "integer",
            "option": [
              "--bus",
              "-b"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "terse",
            "label": "Machine-readable output",
            "type": "boolean",
            "option": [
              "--terse",
              "-t"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "man"
            ]
          }
        ],
        "task": [
          {
            "id": "brightness",
            "label": "Read brightness",
            "fields": [
              "feature",
              "display",
              "bus"
            ],
            "required": [],
            "set": {
              "feature": [
                "10"
              ]
            }
          },
          {
            "id": "get",
            "label": "Read a feature",
            "fields": [
              "feature",
              "display",
              "bus",
              "terse"
            ],
            "required": [
              "feature"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "feature",
              "display",
              "terse"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "bus",
              "verbose"
            ]
          }
        ]
      },
      {
        "path": [
          "setvcp"
        ],
        "label": "Set a feature",
        "source": [
          {
            "id": "man",
            "kind": "manual",
            "url": "https://manpages.debian.org/bookworm/ddcutil/ddcutil.1.en.html",
            "evidence": "setvcp feature-code [+|-] new-value\nSet a single VCP feature value. If + or - is specified, it must be\nsurrounded by blanks, and indicates a relative value change of a\nContinuous VCP feature.\nfeature-code\nnew-value\nNormally, this is a decimal number in the range 0..255, or a\nhexadecimal number in the range x00..xff.\n-d , --dis , --display\ndisplay-number logical display number (starting from 1)\n-b,--bus\nbus-number I2C bus number\n"
          }
        ],
        "field": [
          {
            "id": "feature",
            "label": "Feature code",
            "description": "Hex feature number such as 10 (brightness).",
            "type": "string",
            "position": 0,
            "suggestions": [
              {
                "value": "10",
                "label": "Brightness (0x10)"
              },
              {
                "value": "12",
                "label": "Contrast (0x12)"
              }
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "value",
            "label": "New value",
            "description": "Decimal 0..255 or hex x00..xff.",
            "type": "string",
            "position": 1,
            "sources": [
              "man"
            ]
          },
          {
            "id": "display",
            "label": "Display number",
            "description": "Logical display number, starting from 1. Default is the first detected monitor.",
            "type": "integer",
            "option": [
              "--display",
              "-d"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "bus",
            "label": "I2C bus number",
            "type": "integer",
            "option": [
              "--bus",
              "-b"
            ],
            "sources": [
              "man"
            ]
          }
        ],
        "task": [
          {
            "id": "set",
            "label": "Set a feature",
            "fields": [
              "feature",
              "value",
              "display",
              "bus"
            ],
            "required": [
              "feature",
              "value"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "feature",
              "value",
              "display"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "bus"
            ]
          }
        ]
      }
    ]
  }
}
